#![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ALL_SERVICES: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ALL_SERVICE_TYPES: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C1_ALPHA: u32 = 256u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C1_BLANK: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C1_CNTRL: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C1_DEFINED: u32 = 512u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C1_DIGIT: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C1_LOWER: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C1_PUNCT: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C1_SPACE: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C1_UPPER: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C1_XDIGIT: u32 = 128u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_ARABICNUMBER: u32 = 6u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_BLOCKSEPARATOR: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_COMMONSEPARATOR: u32 = 7u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_EUROPENUMBER: u32 = 3u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_EUROPESEPARATOR: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_EUROPETERMINATOR: u32 = 5u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_LEFTTORIGHT: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_NOTAPPLICABLE: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_OTHERNEUTRAL: u32 = 11u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_RIGHTTOLEFT: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_SEGMENTSEPARATOR: u32 = 9u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C2_WHITESPACE: u32 = 10u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_ALPHA: u32 = 32768u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_DIACRITIC: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_FULLWIDTH: u32 = 128u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_HALFWIDTH: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_HIGHSURROGATE: u32 = 2048u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_HIRAGANA: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_IDEOGRAPH: u32 = 256u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_KASHIDA: u32 = 512u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_KATAKANA: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_LEXICAL: u32 = 1024u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_LOWSURROGATE: u32 = 4096u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_NONSPACING: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_NOTAPPLICABLE: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_SYMBOL: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const C3_VOWELMARK: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type CALINFO_ENUMPROCA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type CALINFO_ENUMPROCEXA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: u32) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type CALINFO_ENUMPROCEXEX = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: u32, param2: ::windows::core::PCWSTR, param3: super::Foundation::LPARAM) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type CALINFO_ENUMPROCEXW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: u32) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type CALINFO_ENUMPROCW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_GREGORIAN: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_GREGORIAN_ARABIC: u32 = 10u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_GREGORIAN_ME_FRENCH: u32 = 9u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_GREGORIAN_US: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_GREGORIAN_XLIT_ENGLISH: u32 = 11u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_GREGORIAN_XLIT_FRENCH: u32 = 12u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_HEBREW: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_HIJRI: u32 = 6u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_ICALINTVALUE: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_ITWODIGITYEARMAX: u32 = 48u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_IYEAROFFSETRANGE: u32 = 3u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_JAPAN: u32 = 3u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_KOREA: u32 = 5u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_NOUSEROVERRIDE: u32 = 2147483648u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_PERSIAN: u32 = 22u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_RETURN_GENITIVE_NAMES: u32 = 268435456u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_RETURN_NUMBER: u32 = 536870912u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVDAYNAME1: u32 = 14u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVDAYNAME2: u32 = 15u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVDAYNAME3: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVDAYNAME4: u32 = 17u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVDAYNAME5: u32 = 18u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVDAYNAME6: u32 = 19u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVDAYNAME7: u32 = 20u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVERASTRING: u32 = 57u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME1: u32 = 34u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME10: u32 = 43u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME11: u32 = 44u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME12: u32 = 45u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME13: u32 = 46u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME2: u32 = 35u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME3: u32 = 36u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME4: u32 = 37u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME5: u32 = 38u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME6: u32 = 39u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME7: u32 = 40u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME8: u32 = 41u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SABBREVMONTHNAME9: u32 = 42u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SCALNAME: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SDAYNAME1: u32 = 7u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SDAYNAME2: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SDAYNAME3: u32 = 9u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SDAYNAME4: u32 = 10u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SDAYNAME5: u32 = 11u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SDAYNAME6: u32 = 12u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SDAYNAME7: u32 = 13u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SENGLISHABBREVERANAME: u32 = 60u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SENGLISHERANAME: u32 = 59u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SERASTRING: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SJAPANESEERAFIRSTYEAR: u32 = 61u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SLONGDATE: u32 = 6u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHDAY: u32 = 56u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME1: u32 = 21u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME10: u32 = 30u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME11: u32 = 31u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME12: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME13: u32 = 33u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME2: u32 = 22u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME3: u32 = 23u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME4: u32 = 24u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME5: u32 = 25u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME6: u32 = 26u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME7: u32 = 27u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME8: u32 = 28u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SMONTHNAME9: u32 = 29u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SRELATIVELONGDATE: u32 = 58u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SSHORTDATE: u32 = 5u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SSHORTESTDAYNAME1: u32 = 49u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SSHORTESTDAYNAME2: u32 = 50u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SSHORTESTDAYNAME3: u32 = 51u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SSHORTESTDAYNAME4: u32 = 52u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SSHORTESTDAYNAME5: u32 = 53u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SSHORTESTDAYNAME6: u32 = 54u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SSHORTESTDAYNAME7: u32 = 55u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_SYEARMONTH: u32 = 47u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_TAIWAN: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_THAI: u32 = 7u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_UMALQURA: u32 = 23u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CAL_USE_CP_ACP: u32 = 1073741824u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CANITER_SKIP_ZEROES: u32 = 1u32;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct CHARSETINFO {
    pub ciCharset: u32,
    pub ciACP: u32,
    pub fs: FONTSIGNATURE,
}
impl ::core::marker::Copy for CHARSETINFO {}
impl ::core::clone::Clone for CHARSETINFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for CHARSETINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CHARSETINFO").field("ciCharset", &self.ciCharset).field("ciACP", &self.ciACP).field("fs", &self.fs).finish()
    }
}
unsafe impl ::windows::core::Abi for CHARSETINFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for CHARSETINFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CHARSETINFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for CHARSETINFO {}
impl ::core::default::Default for CHARSETINFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
pub const CMLangConvertCharset: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd66d6f99_cdaa_11d0_b822_00c04fc9b31f);
pub const CMLangString: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc04d65cf_b70d_11d0_b188_00aa0038c969);
pub const CMultiLanguage: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x275c23e2_3747_11d0_9fea_00aa003f8646);
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type CODEPAGE_ENUMPROCA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type CODEPAGE_ENUMPROCW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct COMPARE_STRING_FLAGS(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LINGUISTIC_IGNORECASE: COMPARE_STRING_FLAGS = COMPARE_STRING_FLAGS(16u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LINGUISTIC_IGNOREDIACRITIC: COMPARE_STRING_FLAGS = COMPARE_STRING_FLAGS(32u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NORM_IGNORECASE: COMPARE_STRING_FLAGS = COMPARE_STRING_FLAGS(1u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NORM_IGNOREKANATYPE: COMPARE_STRING_FLAGS = COMPARE_STRING_FLAGS(65536u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NORM_IGNORENONSPACE: COMPARE_STRING_FLAGS = COMPARE_STRING_FLAGS(2u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NORM_IGNORESYMBOLS: COMPARE_STRING_FLAGS = COMPARE_STRING_FLAGS(4u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NORM_IGNOREWIDTH: COMPARE_STRING_FLAGS = COMPARE_STRING_FLAGS(131072u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NORM_LINGUISTIC_CASING: COMPARE_STRING_FLAGS = COMPARE_STRING_FLAGS(134217728u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SORT_DIGITSASNUMBERS: COMPARE_STRING_FLAGS = COMPARE_STRING_FLAGS(8u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SORT_STRINGSORT: COMPARE_STRING_FLAGS = COMPARE_STRING_FLAGS(4096u32);
impl ::core::marker::Copy for COMPARE_STRING_FLAGS {}
impl ::core::clone::Clone for COMPARE_STRING_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for COMPARE_STRING_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for COMPARE_STRING_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for COMPARE_STRING_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("COMPARE_STRING_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for COMPARE_STRING_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for COMPARE_STRING_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for COMPARE_STRING_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for COMPARE_STRING_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for COMPARE_STRING_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct CORRECTIVE_ACTION(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CORRECTIVE_ACTION_NONE: CORRECTIVE_ACTION = CORRECTIVE_ACTION(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CORRECTIVE_ACTION_GET_SUGGESTIONS: CORRECTIVE_ACTION = CORRECTIVE_ACTION(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CORRECTIVE_ACTION_REPLACE: CORRECTIVE_ACTION = CORRECTIVE_ACTION(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CORRECTIVE_ACTION_DELETE: CORRECTIVE_ACTION = CORRECTIVE_ACTION(3i32);
impl ::core::marker::Copy for CORRECTIVE_ACTION {}
impl ::core::clone::Clone for CORRECTIVE_ACTION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for CORRECTIVE_ACTION {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for CORRECTIVE_ACTION {
    type Abi = Self;
}
impl ::core::fmt::Debug for CORRECTIVE_ACTION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CORRECTIVE_ACTION").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct CPINFO {
    pub MaxCharSize: u32,
    pub DefaultChar: [u8; 2],
    pub LeadByte: [u8; 12],
}
impl ::core::marker::Copy for CPINFO {}
impl ::core::clone::Clone for CPINFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for CPINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CPINFO").field("MaxCharSize", &self.MaxCharSize).field("DefaultChar", &self.DefaultChar).field("LeadByte", &self.LeadByte).finish()
    }
}
unsafe impl ::windows::core::Abi for CPINFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for CPINFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CPINFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for CPINFO {}
impl ::core::default::Default for CPINFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub struct CPINFOEXA {
    pub MaxCharSize: u32,
    pub DefaultChar: [u8; 2],
    pub LeadByte: [u8; 12],
    pub UnicodeDefaultChar: u16,
    pub CodePage: u32,
    pub CodePageName: [super::Foundation::CHAR; 260],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for CPINFOEXA {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for CPINFOEXA {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for CPINFOEXA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CPINFOEXA").field("MaxCharSize", &self.MaxCharSize).field("DefaultChar", &self.DefaultChar).field("LeadByte", &self.LeadByte).field("UnicodeDefaultChar", &self.UnicodeDefaultChar).field("CodePage", &self.CodePage).field("CodePageName", &self.CodePageName).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for CPINFOEXA {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for CPINFOEXA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CPINFOEXA>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for CPINFOEXA {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for CPINFOEXA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct CPINFOEXW {
    pub MaxCharSize: u32,
    pub DefaultChar: [u8; 2],
    pub LeadByte: [u8; 12],
    pub UnicodeDefaultChar: u16,
    pub CodePage: u32,
    pub CodePageName: [u16; 260],
}
impl ::core::marker::Copy for CPINFOEXW {}
impl ::core::clone::Clone for CPINFOEXW {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for CPINFOEXW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CPINFOEXW").field("MaxCharSize", &self.MaxCharSize).field("DefaultChar", &self.DefaultChar).field("LeadByte", &self.LeadByte).field("UnicodeDefaultChar", &self.UnicodeDefaultChar).field("CodePage", &self.CodePage).field("CodePageName", &self.CodePageName).finish()
    }
}
unsafe impl ::windows::core::Abi for CPINFOEXW {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for CPINFOEXW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CPINFOEXW>()) == 0 }
    }
}
impl ::core::cmp::Eq for CPINFOEXW {}
impl ::core::default::Default for CPINFOEXW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CPIOD_FORCE_PROMPT: i32 = -2147483648i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CPIOD_PEEK: i32 = 1073741824i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CP_ACP: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CP_MACCP: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CP_OEMCP: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CP_SYMBOL: u32 = 42u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CP_THREAD_ACP: u32 = 3u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CP_UTF7: u32 = 65000u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CP_UTF8: u32 = 65001u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CSTR_EQUAL: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CSTR_GREATER_THAN: u32 = 3u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CSTR_LESS_THAN: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ALBANIA: u32 = 355u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ALGERIA: u32 = 213u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ARGENTINA: u32 = 54u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ARMENIA: u32 = 374u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_AUSTRALIA: u32 = 61u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_AUSTRIA: u32 = 43u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_AZERBAIJAN: u32 = 994u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_BAHRAIN: u32 = 973u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_BELARUS: u32 = 375u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_BELGIUM: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_BELIZE: u32 = 501u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_BOLIVIA: u32 = 591u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_BRAZIL: u32 = 55u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_BRUNEI_DARUSSALAM: u32 = 673u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_BULGARIA: u32 = 359u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_CANADA: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_CARIBBEAN: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_CHILE: u32 = 56u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_COLOMBIA: u32 = 57u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_COSTA_RICA: u32 = 506u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_CROATIA: u32 = 385u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_CZECH: u32 = 420u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_DEFAULT: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_DENMARK: u32 = 45u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_DOMINICAN_REPUBLIC: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ECUADOR: u32 = 593u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_EGYPT: u32 = 20u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_EL_SALVADOR: u32 = 503u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ESTONIA: u32 = 372u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_FAEROE_ISLANDS: u32 = 298u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_FINLAND: u32 = 358u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_FRANCE: u32 = 33u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_GEORGIA: u32 = 995u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_GERMANY: u32 = 49u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_GREECE: u32 = 30u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_GUATEMALA: u32 = 502u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_HONDURAS: u32 = 504u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_HONG_KONG: u32 = 852u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_HUNGARY: u32 = 36u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ICELAND: u32 = 354u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_INDIA: u32 = 91u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_INDONESIA: u32 = 62u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_IRAN: u32 = 981u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_IRAQ: u32 = 964u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_IRELAND: u32 = 353u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ISRAEL: u32 = 972u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ITALY: u32 = 39u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_JAMAICA: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_JAPAN: u32 = 81u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_JORDAN: u32 = 962u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_KAZAKSTAN: u32 = 7u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_KENYA: u32 = 254u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_KUWAIT: u32 = 965u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_KYRGYZSTAN: u32 = 996u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_LATVIA: u32 = 371u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_LEBANON: u32 = 961u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_LIBYA: u32 = 218u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_LIECHTENSTEIN: u32 = 41u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_LITHUANIA: u32 = 370u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_LUXEMBOURG: u32 = 352u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_MACAU: u32 = 853u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_MACEDONIA: u32 = 389u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_MALAYSIA: u32 = 60u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_MALDIVES: u32 = 960u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_MEXICO: u32 = 52u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_MONACO: u32 = 33u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_MONGOLIA: u32 = 976u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_MOROCCO: u32 = 212u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_NETHERLANDS: u32 = 31u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_NEW_ZEALAND: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_NICARAGUA: u32 = 505u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_NORWAY: u32 = 47u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_OMAN: u32 = 968u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_PAKISTAN: u32 = 92u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_PANAMA: u32 = 507u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_PARAGUAY: u32 = 595u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_PERU: u32 = 51u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_PHILIPPINES: u32 = 63u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_POLAND: u32 = 48u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_PORTUGAL: u32 = 351u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_PRCHINA: u32 = 86u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_PUERTO_RICO: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_QATAR: u32 = 974u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ROMANIA: u32 = 40u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_RUSSIA: u32 = 7u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SAUDI_ARABIA: u32 = 966u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SERBIA: u32 = 381u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SINGAPORE: u32 = 65u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SLOVAK: u32 = 421u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SLOVENIA: u32 = 386u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SOUTH_AFRICA: u32 = 27u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SOUTH_KOREA: u32 = 82u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SPAIN: u32 = 34u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SWEDEN: u32 = 46u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SWITZERLAND: u32 = 41u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_SYRIA: u32 = 963u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_TAIWAN: u32 = 886u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_TATARSTAN: u32 = 7u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_THAILAND: u32 = 66u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_TRINIDAD_Y_TOBAGO: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_TUNISIA: u32 = 216u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_TURKEY: u32 = 90u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_UAE: u32 = 971u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_UKRAINE: u32 = 380u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_UNITED_KINGDOM: u32 = 44u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_UNITED_STATES: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_URUGUAY: u32 = 598u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_UZBEKISTAN: u32 = 7u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_VENEZUELA: u32 = 58u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_VIET_NAM: u32 = 84u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_YEMEN: u32 = 967u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CTRY_ZIMBABWE: u32 = 263u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CT_CTYPE1: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CT_CTYPE2: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CT_CTYPE3: u32 = 4u32;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct CURRENCYFMTA {
    pub NumDigits: u32,
    pub LeadingZero: u32,
    pub Grouping: u32,
    pub lpDecimalSep: ::windows::core::PSTR,
    pub lpThousandSep: ::windows::core::PSTR,
    pub NegativeOrder: u32,
    pub PositiveOrder: u32,
    pub lpCurrencySymbol: ::windows::core::PSTR,
}
impl ::core::marker::Copy for CURRENCYFMTA {}
impl ::core::clone::Clone for CURRENCYFMTA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for CURRENCYFMTA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CURRENCYFMTA").field("NumDigits", &self.NumDigits).field("LeadingZero", &self.LeadingZero).field("Grouping", &self.Grouping).field("lpDecimalSep", &self.lpDecimalSep).field("lpThousandSep", &self.lpThousandSep).field("NegativeOrder", &self.NegativeOrder).field("PositiveOrder", &self.PositiveOrder).field("lpCurrencySymbol", &self.lpCurrencySymbol).finish()
    }
}
unsafe impl ::windows::core::Abi for CURRENCYFMTA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for CURRENCYFMTA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CURRENCYFMTA>()) == 0 }
    }
}
impl ::core::cmp::Eq for CURRENCYFMTA {}
impl ::core::default::Default for CURRENCYFMTA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct CURRENCYFMTW {
    pub NumDigits: u32,
    pub LeadingZero: u32,
    pub Grouping: u32,
    pub lpDecimalSep: ::windows::core::PWSTR,
    pub lpThousandSep: ::windows::core::PWSTR,
    pub NegativeOrder: u32,
    pub PositiveOrder: u32,
    pub lpCurrencySymbol: ::windows::core::PWSTR,
}
impl ::core::marker::Copy for CURRENCYFMTW {}
impl ::core::clone::Clone for CURRENCYFMTW {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for CURRENCYFMTW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CURRENCYFMTW").field("NumDigits", &self.NumDigits).field("LeadingZero", &self.LeadingZero).field("Grouping", &self.Grouping).field("lpDecimalSep", &self.lpDecimalSep).field("lpThousandSep", &self.lpThousandSep).field("NegativeOrder", &self.NegativeOrder).field("PositiveOrder", &self.PositiveOrder).field("lpCurrencySymbol", &self.lpCurrencySymbol).finish()
    }
}
unsafe impl ::windows::core::Abi for CURRENCYFMTW {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for CURRENCYFMTW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CURRENCYFMTW>()) == 0 }
    }
}
impl ::core::cmp::Eq for CURRENCYFMTW {}
impl ::core::default::Default for CURRENCYFMTW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn CompareStringA(locale: u32, dwcmpflags: u32, lpstring1: *const i8, cchcount1: i32, lpstring2: *const i8, cchcount2: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn CompareStringA(locale: u32, dwcmpflags: u32, lpstring1: *const i8, cchcount1: i32, lpstring2: *const i8, cchcount2: i32) -> i32;
        }
        ::core::mem::transmute(CompareStringA(::core::mem::transmute(locale), ::core::mem::transmute(dwcmpflags), ::core::mem::transmute(lpstring1), ::core::mem::transmute(cchcount1), ::core::mem::transmute(lpstring2), ::core::mem::transmute(cchcount2)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn CompareStringEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param8: ::windows::core::IntoParam<'a, super::Foundation::LPARAM>>(lplocalename: Param0, dwcmpflags: COMPARE_STRING_FLAGS, lpstring1: Param2, cchcount1: i32, lpstring2: Param4, cchcount2: i32, lpversioninformation: *mut NLSVERSIONINFO, lpreserved: *mut ::core::ffi::c_void, lparam: Param8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn CompareStringEx(lplocalename: ::windows::core::PCWSTR, dwcmpflags: COMPARE_STRING_FLAGS, lpstring1: ::windows::core::PCWSTR, cchcount1: i32, lpstring2: ::windows::core::PCWSTR, cchcount2: i32, lpversioninformation: *mut NLSVERSIONINFO, lpreserved: *mut ::core::ffi::c_void, lparam: super::Foundation::LPARAM) -> i32;
        }
        ::core::mem::transmute(CompareStringEx(lplocalename.into_param().abi(), ::core::mem::transmute(dwcmpflags), lpstring1.into_param().abi(), ::core::mem::transmute(cchcount1), lpstring2.into_param().abi(), ::core::mem::transmute(cchcount2), ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(lpreserved), lparam.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn CompareStringOrdinal<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param4: ::windows::core::IntoParam<'a, super::Foundation::BOOL>>(lpstring1: Param0, cchcount1: i32, lpstring2: Param2, cchcount2: i32, bignorecase: Param4) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn CompareStringOrdinal(lpstring1: ::windows::core::PCWSTR, cchcount1: i32, lpstring2: ::windows::core::PCWSTR, cchcount2: i32, bignorecase: super::Foundation::BOOL) -> i32;
        }
        ::core::mem::transmute(CompareStringOrdinal(lpstring1.into_param().abi(), ::core::mem::transmute(cchcount1), lpstring2.into_param().abi(), ::core::mem::transmute(cchcount2), bignorecase.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn CompareStringW<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, dwcmpflags: u32, lpstring1: Param2, cchcount1: i32, lpstring2: Param4, cchcount2: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn CompareStringW(locale: u32, dwcmpflags: u32, lpstring1: ::windows::core::PCWSTR, cchcount1: i32, lpstring2: ::windows::core::PCWSTR, cchcount2: i32) -> i32;
        }
        ::core::mem::transmute(CompareStringW(::core::mem::transmute(locale), ::core::mem::transmute(dwcmpflags), lpstring1.into_param().abi(), ::core::mem::transmute(cchcount1), lpstring2.into_param().abi(), ::core::mem::transmute(cchcount2)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ConvertDefaultLocale(locale: u32) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ConvertDefaultLocale(locale: u32) -> u32;
        }
        ::core::mem::transmute(ConvertDefaultLocale(::core::mem::transmute(locale)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type DATEFMT_ENUMPROCA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type DATEFMT_ENUMPROCEXA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: u32) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type DATEFMT_ENUMPROCEXEX = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: u32, param2: super::Foundation::LPARAM) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type DATEFMT_ENUMPROCEXW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: u32) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type DATEFMT_ENUMPROCW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR) -> super::Foundation::BOOL>;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct DetectEncodingInfo {
    pub nLangID: u32,
    pub nCodePage: u32,
    pub nDocPercent: i32,
    pub nConfidence: i32,
}
impl ::core::marker::Copy for DetectEncodingInfo {}
impl ::core::clone::Clone for DetectEncodingInfo {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DetectEncodingInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DetectEncodingInfo").field("nLangID", &self.nLangID).field("nCodePage", &self.nCodePage).field("nDocPercent", &self.nDocPercent).field("nConfidence", &self.nConfidence).finish()
    }
}
unsafe impl ::windows::core::Abi for DetectEncodingInfo {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DetectEncodingInfo {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DetectEncodingInfo>()) == 0 }
    }
}
impl ::core::cmp::Eq for DetectEncodingInfo {}
impl ::core::default::Default for DetectEncodingInfo {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
pub const ELS_GUID_LANGUAGE_DETECTION: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcf7e00b1_909b_4d95_a8f4_611f7c377702);
pub const ELS_GUID_SCRIPT_DETECTION: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2d64b439_6caf_4f6b_b688_e5d0f4faa7d7);
pub const ELS_GUID_TRANSLITERATION_BENGALI_TO_LATIN: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf4dfd825_91a4_489f_855e_9ad9bee55727);
pub const ELS_GUID_TRANSLITERATION_CYRILLIC_TO_LATIN: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3dd12a98_5afd_4903_a13f_e17e6c0bfe01);
pub const ELS_GUID_TRANSLITERATION_DEVANAGARI_TO_LATIN: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc4a4dcfe_2661_4d02_9835_f48187109803);
pub const ELS_GUID_TRANSLITERATION_HANGUL_DECOMPOSITION: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4ba2a721_e43d_41b7_b330_536ae1e48863);
pub const ELS_GUID_TRANSLITERATION_HANS_TO_HANT: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3caccdc8_5590_42dc_9a7b_b5a6b5b3b63b);
pub const ELS_GUID_TRANSLITERATION_HANT_TO_HANS: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa3a8333b_f4fc_42f6_a0c4_0462fe7317cb);
pub const ELS_GUID_TRANSLITERATION_MALAYALAM_TO_LATIN: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd8b983b1_f8bf_4a2b_bcd5_5b5ea20613e1);
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
pub struct ENUMTEXTMETRICA {
    pub etmNewTextMetricEx: NEWTEXTMETRICEXA,
    pub etmAxesList: super::Graphics::Gdi::AXESLISTA,
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::marker::Copy for ENUMTEXTMETRICA {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::clone::Clone for ENUMTEXTMETRICA {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::fmt::Debug for ENUMTEXTMETRICA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("ENUMTEXTMETRICA").field("etmNewTextMetricEx", &self.etmNewTextMetricEx).field("etmAxesList", &self.etmAxesList).finish()
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
unsafe impl ::windows::core::Abi for ENUMTEXTMETRICA {
    type Abi = Self;
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::cmp::PartialEq for ENUMTEXTMETRICA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ENUMTEXTMETRICA>()) == 0 }
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::cmp::Eq for ENUMTEXTMETRICA {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::default::Default for ENUMTEXTMETRICA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
pub struct ENUMTEXTMETRICW {
    pub etmNewTextMetricEx: NEWTEXTMETRICEXW,
    pub etmAxesList: super::Graphics::Gdi::AXESLISTW,
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::marker::Copy for ENUMTEXTMETRICW {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::clone::Clone for ENUMTEXTMETRICW {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::fmt::Debug for ENUMTEXTMETRICW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("ENUMTEXTMETRICW").field("etmNewTextMetricEx", &self.etmNewTextMetricEx).field("etmAxesList", &self.etmAxesList).finish()
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
unsafe impl ::windows::core::Abi for ENUMTEXTMETRICW {
    type Abi = Self;
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::cmp::PartialEq for ENUMTEXTMETRICW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ENUMTEXTMETRICW>()) == 0 }
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::cmp::Eq for ENUMTEXTMETRICW {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::default::Default for ENUMTEXTMETRICW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ENUM_ALL_CALENDARS: u32 = 4294967295u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ENUM_DATE_FORMATS_FLAGS(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const DATE_SHORTDATE: ENUM_DATE_FORMATS_FLAGS = ENUM_DATE_FORMATS_FLAGS(1u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const DATE_LONGDATE: ENUM_DATE_FORMATS_FLAGS = ENUM_DATE_FORMATS_FLAGS(2u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const DATE_YEARMONTH: ENUM_DATE_FORMATS_FLAGS = ENUM_DATE_FORMATS_FLAGS(8u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const DATE_MONTHDAY: ENUM_DATE_FORMATS_FLAGS = ENUM_DATE_FORMATS_FLAGS(128u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const DATE_AUTOLAYOUT: ENUM_DATE_FORMATS_FLAGS = ENUM_DATE_FORMATS_FLAGS(64u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const DATE_LTRREADING: ENUM_DATE_FORMATS_FLAGS = ENUM_DATE_FORMATS_FLAGS(16u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const DATE_RTLREADING: ENUM_DATE_FORMATS_FLAGS = ENUM_DATE_FORMATS_FLAGS(32u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const DATE_USE_ALT_CALENDAR: ENUM_DATE_FORMATS_FLAGS = ENUM_DATE_FORMATS_FLAGS(4u32);
impl ::core::marker::Copy for ENUM_DATE_FORMATS_FLAGS {}
impl ::core::clone::Clone for ENUM_DATE_FORMATS_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ENUM_DATE_FORMATS_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ENUM_DATE_FORMATS_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for ENUM_DATE_FORMATS_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ENUM_DATE_FORMATS_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ENUM_SYSTEM_CODE_PAGES_FLAGS(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CP_INSTALLED: ENUM_SYSTEM_CODE_PAGES_FLAGS = ENUM_SYSTEM_CODE_PAGES_FLAGS(1u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const CP_SUPPORTED: ENUM_SYSTEM_CODE_PAGES_FLAGS = ENUM_SYSTEM_CODE_PAGES_FLAGS(2u32);
impl ::core::marker::Copy for ENUM_SYSTEM_CODE_PAGES_FLAGS {}
impl ::core::clone::Clone for ENUM_SYSTEM_CODE_PAGES_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ENUM_SYSTEM_CODE_PAGES_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ENUM_SYSTEM_CODE_PAGES_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for ENUM_SYSTEM_CODE_PAGES_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ENUM_SYSTEM_CODE_PAGES_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_INSTALLED: ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS = ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS(1u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_SUPPORTED: ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS = ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS(2u32);
impl ::core::marker::Copy for ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS {}
impl ::core::clone::Clone for ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumCalendarInfoA(lpcalinfoenumproc: CALINFO_ENUMPROCA, locale: u32, calendar: u32, caltype: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumCalendarInfoA(lpcalinfoenumproc: ::windows::core::RawPtr, locale: u32, calendar: u32, caltype: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumCalendarInfoA(::core::mem::transmute(lpcalinfoenumproc), ::core::mem::transmute(locale), ::core::mem::transmute(calendar), ::core::mem::transmute(caltype)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumCalendarInfoExA(lpcalinfoenumprocex: CALINFO_ENUMPROCEXA, locale: u32, calendar: u32, caltype: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumCalendarInfoExA(lpcalinfoenumprocex: ::windows::core::RawPtr, locale: u32, calendar: u32, caltype: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumCalendarInfoExA(::core::mem::transmute(lpcalinfoenumprocex), ::core::mem::transmute(locale), ::core::mem::transmute(calendar), ::core::mem::transmute(caltype)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumCalendarInfoExEx<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param5: ::windows::core::IntoParam<'a, super::Foundation::LPARAM>>(pcalinfoenumprocexex: CALINFO_ENUMPROCEXEX, lplocalename: Param1, calendar: u32, lpreserved: Param3, caltype: u32, lparam: Param5) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumCalendarInfoExEx(pcalinfoenumprocexex: ::windows::core::RawPtr, lplocalename: ::windows::core::PCWSTR, calendar: u32, lpreserved: ::windows::core::PCWSTR, caltype: u32, lparam: super::Foundation::LPARAM) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumCalendarInfoExEx(::core::mem::transmute(pcalinfoenumprocexex), lplocalename.into_param().abi(), ::core::mem::transmute(calendar), lpreserved.into_param().abi(), ::core::mem::transmute(caltype), lparam.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumCalendarInfoExW(lpcalinfoenumprocex: CALINFO_ENUMPROCEXW, locale: u32, calendar: u32, caltype: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumCalendarInfoExW(lpcalinfoenumprocex: ::windows::core::RawPtr, locale: u32, calendar: u32, caltype: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumCalendarInfoExW(::core::mem::transmute(lpcalinfoenumprocex), ::core::mem::transmute(locale), ::core::mem::transmute(calendar), ::core::mem::transmute(caltype)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumCalendarInfoW(lpcalinfoenumproc: CALINFO_ENUMPROCW, locale: u32, calendar: u32, caltype: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumCalendarInfoW(lpcalinfoenumproc: ::windows::core::RawPtr, locale: u32, calendar: u32, caltype: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumCalendarInfoW(::core::mem::transmute(lpcalinfoenumproc), ::core::mem::transmute(locale), ::core::mem::transmute(calendar), ::core::mem::transmute(caltype)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumDateFormatsA(lpdatefmtenumproc: DATEFMT_ENUMPROCA, locale: u32, dwflags: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumDateFormatsA(lpdatefmtenumproc: ::windows::core::RawPtr, locale: u32, dwflags: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumDateFormatsA(::core::mem::transmute(lpdatefmtenumproc), ::core::mem::transmute(locale), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumDateFormatsExA(lpdatefmtenumprocex: DATEFMT_ENUMPROCEXA, locale: u32, dwflags: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumDateFormatsExA(lpdatefmtenumprocex: ::windows::core::RawPtr, locale: u32, dwflags: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumDateFormatsExA(::core::mem::transmute(lpdatefmtenumprocex), ::core::mem::transmute(locale), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumDateFormatsExEx<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param3: ::windows::core::IntoParam<'a, super::Foundation::LPARAM>>(lpdatefmtenumprocexex: DATEFMT_ENUMPROCEXEX, lplocalename: Param1, dwflags: ENUM_DATE_FORMATS_FLAGS, lparam: Param3) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumDateFormatsExEx(lpdatefmtenumprocexex: ::windows::core::RawPtr, lplocalename: ::windows::core::PCWSTR, dwflags: ENUM_DATE_FORMATS_FLAGS, lparam: super::Foundation::LPARAM) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumDateFormatsExEx(::core::mem::transmute(lpdatefmtenumprocexex), lplocalename.into_param().abi(), ::core::mem::transmute(dwflags), lparam.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumDateFormatsExW(lpdatefmtenumprocex: DATEFMT_ENUMPROCEXW, locale: u32, dwflags: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumDateFormatsExW(lpdatefmtenumprocex: ::windows::core::RawPtr, locale: u32, dwflags: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumDateFormatsExW(::core::mem::transmute(lpdatefmtenumprocex), ::core::mem::transmute(locale), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumDateFormatsW(lpdatefmtenumproc: DATEFMT_ENUMPROCW, locale: u32, dwflags: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumDateFormatsW(lpdatefmtenumproc: ::windows::core::RawPtr, locale: u32, dwflags: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumDateFormatsW(::core::mem::transmute(lpdatefmtenumproc), ::core::mem::transmute(locale), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumLanguageGroupLocalesA(lplanggrouplocaleenumproc: LANGGROUPLOCALE_ENUMPROCA, languagegroup: u32, dwflags: u32, lparam: isize) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumLanguageGroupLocalesA(lplanggrouplocaleenumproc: ::windows::core::RawPtr, languagegroup: u32, dwflags: u32, lparam: isize) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumLanguageGroupLocalesA(::core::mem::transmute(lplanggrouplocaleenumproc), ::core::mem::transmute(languagegroup), ::core::mem::transmute(dwflags), ::core::mem::transmute(lparam)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumLanguageGroupLocalesW(lplanggrouplocaleenumproc: LANGGROUPLOCALE_ENUMPROCW, languagegroup: u32, dwflags: u32, lparam: isize) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumLanguageGroupLocalesW(lplanggrouplocaleenumproc: ::windows::core::RawPtr, languagegroup: u32, dwflags: u32, lparam: isize) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumLanguageGroupLocalesW(::core::mem::transmute(lplanggrouplocaleenumproc), ::core::mem::transmute(languagegroup), ::core::mem::transmute(dwflags), ::core::mem::transmute(lparam)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumSystemCodePagesA(lpcodepageenumproc: CODEPAGE_ENUMPROCA, dwflags: ENUM_SYSTEM_CODE_PAGES_FLAGS) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumSystemCodePagesA(lpcodepageenumproc: ::windows::core::RawPtr, dwflags: ENUM_SYSTEM_CODE_PAGES_FLAGS) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumSystemCodePagesA(::core::mem::transmute(lpcodepageenumproc), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumSystemCodePagesW(lpcodepageenumproc: CODEPAGE_ENUMPROCW, dwflags: ENUM_SYSTEM_CODE_PAGES_FLAGS) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumSystemCodePagesW(lpcodepageenumproc: ::windows::core::RawPtr, dwflags: ENUM_SYSTEM_CODE_PAGES_FLAGS) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumSystemCodePagesW(::core::mem::transmute(lpcodepageenumproc), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumSystemGeoID(geoclass: u32, parentgeoid: i32, lpgeoenumproc: GEO_ENUMPROC) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumSystemGeoID(geoclass: u32, parentgeoid: i32, lpgeoenumproc: ::windows::core::RawPtr) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumSystemGeoID(::core::mem::transmute(geoclass), ::core::mem::transmute(parentgeoid), ::core::mem::transmute(lpgeoenumproc)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumSystemGeoNames<'a, Param2: ::windows::core::IntoParam<'a, super::Foundation::LPARAM>>(geoclass: u32, geoenumproc: GEO_ENUMNAMEPROC, data: Param2) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumSystemGeoNames(geoclass: u32, geoenumproc: ::windows::core::RawPtr, data: super::Foundation::LPARAM) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumSystemGeoNames(::core::mem::transmute(geoclass), ::core::mem::transmute(geoenumproc), data.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumSystemLanguageGroupsA(lplanguagegroupenumproc: LANGUAGEGROUP_ENUMPROCA, dwflags: ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS, lparam: isize) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumSystemLanguageGroupsA(lplanguagegroupenumproc: ::windows::core::RawPtr, dwflags: ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS, lparam: isize) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumSystemLanguageGroupsA(::core::mem::transmute(lplanguagegroupenumproc), ::core::mem::transmute(dwflags), ::core::mem::transmute(lparam)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumSystemLanguageGroupsW(lplanguagegroupenumproc: LANGUAGEGROUP_ENUMPROCW, dwflags: ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS, lparam: isize) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumSystemLanguageGroupsW(lplanguagegroupenumproc: ::windows::core::RawPtr, dwflags: ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS, lparam: isize) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumSystemLanguageGroupsW(::core::mem::transmute(lplanguagegroupenumproc), ::core::mem::transmute(dwflags), ::core::mem::transmute(lparam)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumSystemLocalesA(lplocaleenumproc: LOCALE_ENUMPROCA, dwflags: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumSystemLocalesA(lplocaleenumproc: ::windows::core::RawPtr, dwflags: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumSystemLocalesA(::core::mem::transmute(lplocaleenumproc), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumSystemLocalesEx<'a, Param2: ::windows::core::IntoParam<'a, super::Foundation::LPARAM>>(lplocaleenumprocex: LOCALE_ENUMPROCEX, dwflags: u32, lparam: Param2, lpreserved: *const ::core::ffi::c_void) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumSystemLocalesEx(lplocaleenumprocex: ::windows::core::RawPtr, dwflags: u32, lparam: super::Foundation::LPARAM, lpreserved: *const ::core::ffi::c_void) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumSystemLocalesEx(::core::mem::transmute(lplocaleenumprocex), ::core::mem::transmute(dwflags), lparam.into_param().abi(), ::core::mem::transmute(lpreserved)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumSystemLocalesW(lplocaleenumproc: LOCALE_ENUMPROCW, dwflags: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumSystemLocalesW(lplocaleenumproc: ::windows::core::RawPtr, dwflags: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumSystemLocalesW(::core::mem::transmute(lplocaleenumproc), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumTimeFormatsA(lptimefmtenumproc: TIMEFMT_ENUMPROCA, locale: u32, dwflags: TIME_FORMAT_FLAGS) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumTimeFormatsA(lptimefmtenumproc: ::windows::core::RawPtr, locale: u32, dwflags: TIME_FORMAT_FLAGS) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumTimeFormatsA(::core::mem::transmute(lptimefmtenumproc), ::core::mem::transmute(locale), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumTimeFormatsEx<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param3: ::windows::core::IntoParam<'a, super::Foundation::LPARAM>>(lptimefmtenumprocex: TIMEFMT_ENUMPROCEX, lplocalename: Param1, dwflags: u32, lparam: Param3) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumTimeFormatsEx(lptimefmtenumprocex: ::windows::core::RawPtr, lplocalename: ::windows::core::PCWSTR, dwflags: u32, lparam: super::Foundation::LPARAM) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumTimeFormatsEx(::core::mem::transmute(lptimefmtenumprocex), lplocalename.into_param().abi(), ::core::mem::transmute(dwflags), lparam.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumTimeFormatsW(lptimefmtenumproc: TIMEFMT_ENUMPROCW, locale: u32, dwflags: TIME_FORMAT_FLAGS) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumTimeFormatsW(lptimefmtenumproc: ::windows::core::RawPtr, locale: u32, dwflags: TIME_FORMAT_FLAGS) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumTimeFormatsW(::core::mem::transmute(lptimefmtenumproc), ::core::mem::transmute(locale), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumUILanguagesA(lpuilanguageenumproc: UILANGUAGE_ENUMPROCA, dwflags: u32, lparam: isize) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumUILanguagesA(lpuilanguageenumproc: ::windows::core::RawPtr, dwflags: u32, lparam: isize) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumUILanguagesA(::core::mem::transmute(lpuilanguageenumproc), ::core::mem::transmute(dwflags), ::core::mem::transmute(lparam)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumUILanguagesW(lpuilanguageenumproc: UILANGUAGE_ENUMPROCW, dwflags: u32, lparam: isize) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn EnumUILanguagesW(lpuilanguageenumproc: ::windows::core::RawPtr, dwflags: u32, lparam: isize) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(EnumUILanguagesW(::core::mem::transmute(lpuilanguageenumproc), ::core::mem::transmute(dwflags), ::core::mem::transmute(lparam)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct FILEMUIINFO {
    pub dwSize: u32,
    pub dwVersion: u32,
    pub dwFileType: u32,
    pub pChecksum: [u8; 16],
    pub pServiceChecksum: [u8; 16],
    pub dwLanguageNameOffset: u32,
    pub dwTypeIDMainSize: u32,
    pub dwTypeIDMainOffset: u32,
    pub dwTypeNameMainOffset: u32,
    pub dwTypeIDMUISize: u32,
    pub dwTypeIDMUIOffset: u32,
    pub dwTypeNameMUIOffset: u32,
    pub abBuffer: [u8; 8],
}
impl ::core::marker::Copy for FILEMUIINFO {}
impl ::core::clone::Clone for FILEMUIINFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for FILEMUIINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("FILEMUIINFO")
            .field("dwSize", &self.dwSize)
            .field("dwVersion", &self.dwVersion)
            .field("dwFileType", &self.dwFileType)
            .field("pChecksum", &self.pChecksum)
            .field("pServiceChecksum", &self.pServiceChecksum)
            .field("dwLanguageNameOffset", &self.dwLanguageNameOffset)
            .field("dwTypeIDMainSize", &self.dwTypeIDMainSize)
            .field("dwTypeIDMainOffset", &self.dwTypeIDMainOffset)
            .field("dwTypeNameMainOffset", &self.dwTypeNameMainOffset)
            .field("dwTypeIDMUISize", &self.dwTypeIDMUISize)
            .field("dwTypeIDMUIOffset", &self.dwTypeIDMUIOffset)
            .field("dwTypeNameMUIOffset", &self.dwTypeNameMUIOffset)
            .field("abBuffer", &self.abBuffer)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for FILEMUIINFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for FILEMUIINFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<FILEMUIINFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for FILEMUIINFO {}
impl ::core::default::Default for FILEMUIINFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const FIND_ENDSWITH: u32 = 2097152u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const FIND_FROMEND: u32 = 8388608u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const FIND_FROMSTART: u32 = 4194304u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const FIND_STARTSWITH: u32 = 1048576u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct FOLD_STRING_MAP_FLAGS(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAP_COMPOSITE: FOLD_STRING_MAP_FLAGS = FOLD_STRING_MAP_FLAGS(64u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAP_EXPAND_LIGATURES: FOLD_STRING_MAP_FLAGS = FOLD_STRING_MAP_FLAGS(8192u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAP_FOLDCZONE: FOLD_STRING_MAP_FLAGS = FOLD_STRING_MAP_FLAGS(16u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAP_FOLDDIGITS: FOLD_STRING_MAP_FLAGS = FOLD_STRING_MAP_FLAGS(128u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAP_PRECOMPOSED: FOLD_STRING_MAP_FLAGS = FOLD_STRING_MAP_FLAGS(32u32);
impl ::core::marker::Copy for FOLD_STRING_MAP_FLAGS {}
impl ::core::clone::Clone for FOLD_STRING_MAP_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for FOLD_STRING_MAP_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for FOLD_STRING_MAP_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for FOLD_STRING_MAP_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("FOLD_STRING_MAP_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for FOLD_STRING_MAP_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for FOLD_STRING_MAP_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for FOLD_STRING_MAP_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for FOLD_STRING_MAP_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for FOLD_STRING_MAP_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct FONTSIGNATURE {
    pub fsUsb: [u32; 4],
    pub fsCsb: [u32; 2],
}
impl ::core::marker::Copy for FONTSIGNATURE {}
impl ::core::clone::Clone for FONTSIGNATURE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for FONTSIGNATURE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("FONTSIGNATURE").field("fsUsb", &self.fsUsb).field("fsCsb", &self.fsCsb).finish()
    }
}
unsafe impl ::windows::core::Abi for FONTSIGNATURE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for FONTSIGNATURE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<FONTSIGNATURE>()) == 0 }
    }
}
impl ::core::cmp::Eq for FONTSIGNATURE {}
impl ::core::default::Default for FONTSIGNATURE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn FindNLSString<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, dwfindnlsstringflags: u32, lpstringsource: Param2, cchsource: i32, lpstringvalue: Param4, cchvalue: i32, pcchfound: *mut i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn FindNLSString(locale: u32, dwfindnlsstringflags: u32, lpstringsource: ::windows::core::PCWSTR, cchsource: i32, lpstringvalue: ::windows::core::PCWSTR, cchvalue: i32, pcchfound: *mut i32) -> i32;
        }
        ::core::mem::transmute(FindNLSString(::core::mem::transmute(locale), ::core::mem::transmute(dwfindnlsstringflags), lpstringsource.into_param().abi(), ::core::mem::transmute(cchsource), lpstringvalue.into_param().abi(), ::core::mem::transmute(cchvalue), ::core::mem::transmute(pcchfound)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FindNLSStringEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param9: ::windows::core::IntoParam<'a, super::Foundation::LPARAM>>(lplocalename: Param0, dwfindnlsstringflags: u32, lpstringsource: Param2, cchsource: i32, lpstringvalue: Param4, cchvalue: i32, pcchfound: *mut i32, lpversioninformation: *const NLSVERSIONINFO, lpreserved: *const ::core::ffi::c_void, sorthandle: Param9) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn FindNLSStringEx(lplocalename: ::windows::core::PCWSTR, dwfindnlsstringflags: u32, lpstringsource: ::windows::core::PCWSTR, cchsource: i32, lpstringvalue: ::windows::core::PCWSTR, cchvalue: i32, pcchfound: *mut i32, lpversioninformation: *const NLSVERSIONINFO, lpreserved: *const ::core::ffi::c_void, sorthandle: super::Foundation::LPARAM) -> i32;
        }
        ::core::mem::transmute(FindNLSStringEx(lplocalename.into_param().abi(), ::core::mem::transmute(dwfindnlsstringflags), lpstringsource.into_param().abi(), ::core::mem::transmute(cchsource), lpstringvalue.into_param().abi(), ::core::mem::transmute(cchvalue), ::core::mem::transmute(pcchfound), ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(lpreserved), sorthandle.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FindStringOrdinal<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param5: ::windows::core::IntoParam<'a, super::Foundation::BOOL>>(dwfindstringordinalflags: u32, lpstringsource: Param1, cchsource: i32, lpstringvalue: Param3, cchvalue: i32, bignorecase: Param5) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn FindStringOrdinal(dwfindstringordinalflags: u32, lpstringsource: ::windows::core::PCWSTR, cchsource: i32, lpstringvalue: ::windows::core::PCWSTR, cchvalue: i32, bignorecase: super::Foundation::BOOL) -> i32;
        }
        ::core::mem::transmute(FindStringOrdinal(::core::mem::transmute(dwfindstringordinalflags), lpstringsource.into_param().abi(), ::core::mem::transmute(cchsource), lpstringvalue.into_param().abi(), ::core::mem::transmute(cchvalue), bignorecase.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn FoldStringA<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dwmapflags: FOLD_STRING_MAP_FLAGS, lpsrcstr: Param1, cchsrc: i32, lpdeststr: ::windows::core::PSTR, cchdest: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn FoldStringA(dwmapflags: FOLD_STRING_MAP_FLAGS, lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpdeststr: ::windows::core::PSTR, cchdest: i32) -> i32;
        }
        ::core::mem::transmute(FoldStringA(::core::mem::transmute(dwmapflags), lpsrcstr.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(lpdeststr), ::core::mem::transmute(cchdest)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn FoldStringW<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwmapflags: FOLD_STRING_MAP_FLAGS, lpsrcstr: Param1, cchsrc: i32, lpdeststr: ::windows::core::PWSTR, cchdest: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn FoldStringW(dwmapflags: FOLD_STRING_MAP_FLAGS, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpdeststr: ::windows::core::PWSTR, cchdest: i32) -> i32;
        }
        ::core::mem::transmute(FoldStringW(::core::mem::transmute(dwmapflags), lpsrcstr.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(lpdeststr), ::core::mem::transmute(cchdest)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEOID_NOT_AVAILABLE: i32 = -1i32;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type GEO_ENUMNAMEPROC = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: super::Foundation::LPARAM) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type GEO_ENUMPROC = ::core::option::Option<unsafe extern "system" fn(param0: i32) -> super::Foundation::BOOL>;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct GOFFSET {
    pub du: i32,
    pub dv: i32,
}
impl ::core::marker::Copy for GOFFSET {}
impl ::core::clone::Clone for GOFFSET {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for GOFFSET {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("GOFFSET").field("du", &self.du).field("dv", &self.dv).finish()
    }
}
unsafe impl ::windows::core::Abi for GOFFSET {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for GOFFSET {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<GOFFSET>()) == 0 }
    }
}
impl ::core::cmp::Eq for GOFFSET {}
impl ::core::default::Default for GOFFSET {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GSS_ALLOW_INHERITED_COMMON: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetACP() -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetACP() -> u32;
        }
        ::core::mem::transmute(GetACP())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetCPInfo(codepage: u32, lpcpinfo: *mut CPINFO) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetCPInfo(codepage: u32, lpcpinfo: *mut CPINFO) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetCPInfo(::core::mem::transmute(codepage), ::core::mem::transmute(lpcpinfo)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetCPInfoExA(codepage: u32, dwflags: u32, lpcpinfoex: *mut CPINFOEXA) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetCPInfoExA(codepage: u32, dwflags: u32, lpcpinfoex: *mut CPINFOEXA) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetCPInfoExA(::core::mem::transmute(codepage), ::core::mem::transmute(dwflags), ::core::mem::transmute(lpcpinfoex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetCPInfoExW(codepage: u32, dwflags: u32, lpcpinfoex: *mut CPINFOEXW) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetCPInfoExW(codepage: u32, dwflags: u32, lpcpinfoex: *mut CPINFOEXW) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetCPInfoExW(::core::mem::transmute(codepage), ::core::mem::transmute(dwflags), ::core::mem::transmute(lpcpinfoex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetCalendarInfoA(locale: u32, calendar: u32, caltype: u32, lpcaldata: ::windows::core::PSTR, cchdata: i32, lpvalue: *mut u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetCalendarInfoA(locale: u32, calendar: u32, caltype: u32, lpcaldata: ::windows::core::PSTR, cchdata: i32, lpvalue: *mut u32) -> i32;
        }
        ::core::mem::transmute(GetCalendarInfoA(::core::mem::transmute(locale), ::core::mem::transmute(calendar), ::core::mem::transmute(caltype), ::core::mem::transmute(lpcaldata), ::core::mem::transmute(cchdata), ::core::mem::transmute(lpvalue)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetCalendarInfoEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lplocalename: Param0, calendar: u32, lpreserved: Param2, caltype: u32, lpcaldata: ::windows::core::PWSTR, cchdata: i32, lpvalue: *mut u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetCalendarInfoEx(lplocalename: ::windows::core::PCWSTR, calendar: u32, lpreserved: ::windows::core::PCWSTR, caltype: u32, lpcaldata: ::windows::core::PWSTR, cchdata: i32, lpvalue: *mut u32) -> i32;
        }
        ::core::mem::transmute(GetCalendarInfoEx(lplocalename.into_param().abi(), ::core::mem::transmute(calendar), lpreserved.into_param().abi(), ::core::mem::transmute(caltype), ::core::mem::transmute(lpcaldata), ::core::mem::transmute(cchdata), ::core::mem::transmute(lpvalue)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetCalendarInfoW(locale: u32, calendar: u32, caltype: u32, lpcaldata: ::windows::core::PWSTR, cchdata: i32, lpvalue: *mut u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetCalendarInfoW(locale: u32, calendar: u32, caltype: u32, lpcaldata: ::windows::core::PWSTR, cchdata: i32, lpvalue: *mut u32) -> i32;
        }
        ::core::mem::transmute(GetCalendarInfoW(::core::mem::transmute(locale), ::core::mem::transmute(calendar), ::core::mem::transmute(caltype), ::core::mem::transmute(lpcaldata), ::core::mem::transmute(cchdata), ::core::mem::transmute(lpvalue)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetCurrencyFormatA<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: u32, dwflags: u32, lpvalue: Param2, lpformat: *const CURRENCYFMTA, lpcurrencystr: ::windows::core::PSTR, cchcurrency: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetCurrencyFormatA(locale: u32, dwflags: u32, lpvalue: ::windows::core::PCSTR, lpformat: *const CURRENCYFMTA, lpcurrencystr: ::windows::core::PSTR, cchcurrency: i32) -> i32;
        }
        ::core::mem::transmute(GetCurrencyFormatA(::core::mem::transmute(locale), ::core::mem::transmute(dwflags), lpvalue.into_param().abi(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpcurrencystr), ::core::mem::transmute(cchcurrency)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetCurrencyFormatEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lplocalename: Param0, dwflags: u32, lpvalue: Param2, lpformat: *const CURRENCYFMTW, lpcurrencystr: ::windows::core::PWSTR, cchcurrency: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetCurrencyFormatEx(lplocalename: ::windows::core::PCWSTR, dwflags: u32, lpvalue: ::windows::core::PCWSTR, lpformat: *const CURRENCYFMTW, lpcurrencystr: ::windows::core::PWSTR, cchcurrency: i32) -> i32;
        }
        ::core::mem::transmute(GetCurrencyFormatEx(lplocalename.into_param().abi(), ::core::mem::transmute(dwflags), lpvalue.into_param().abi(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpcurrencystr), ::core::mem::transmute(cchcurrency)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetCurrencyFormatW<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, dwflags: u32, lpvalue: Param2, lpformat: *const CURRENCYFMTW, lpcurrencystr: ::windows::core::PWSTR, cchcurrency: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetCurrencyFormatW(locale: u32, dwflags: u32, lpvalue: ::windows::core::PCWSTR, lpformat: *const CURRENCYFMTW, lpcurrencystr: ::windows::core::PWSTR, cchcurrency: i32) -> i32;
        }
        ::core::mem::transmute(GetCurrencyFormatW(::core::mem::transmute(locale), ::core::mem::transmute(dwflags), lpvalue.into_param().abi(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpcurrencystr), ::core::mem::transmute(cchcurrency)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetDateFormatA<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: u32, dwflags: u32, lpdate: *const super::Foundation::SYSTEMTIME, lpformat: Param3, lpdatestr: ::windows::core::PSTR, cchdate: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetDateFormatA(locale: u32, dwflags: u32, lpdate: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCSTR, lpdatestr: ::windows::core::PSTR, cchdate: i32) -> i32;
        }
        ::core::mem::transmute(GetDateFormatA(::core::mem::transmute(locale), ::core::mem::transmute(dwflags), ::core::mem::transmute(lpdate), lpformat.into_param().abi(), ::core::mem::transmute(lpdatestr), ::core::mem::transmute(cchdate)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetDateFormatEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param6: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lplocalename: Param0, dwflags: ENUM_DATE_FORMATS_FLAGS, lpdate: *const super::Foundation::SYSTEMTIME, lpformat: Param3, lpdatestr: ::windows::core::PWSTR, cchdate: i32, lpcalendar: Param6) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetDateFormatEx(lplocalename: ::windows::core::PCWSTR, dwflags: ENUM_DATE_FORMATS_FLAGS, lpdate: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCWSTR, lpdatestr: ::windows::core::PWSTR, cchdate: i32, lpcalendar: ::windows::core::PCWSTR) -> i32;
        }
        ::core::mem::transmute(GetDateFormatEx(lplocalename.into_param().abi(), ::core::mem::transmute(dwflags), ::core::mem::transmute(lpdate), lpformat.into_param().abi(), ::core::mem::transmute(lpdatestr), ::core::mem::transmute(cchdate), lpcalendar.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetDateFormatW<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, dwflags: u32, lpdate: *const super::Foundation::SYSTEMTIME, lpformat: Param3, lpdatestr: ::windows::core::PWSTR, cchdate: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetDateFormatW(locale: u32, dwflags: u32, lpdate: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCWSTR, lpdatestr: ::windows::core::PWSTR, cchdate: i32) -> i32;
        }
        ::core::mem::transmute(GetDateFormatW(::core::mem::transmute(locale), ::core::mem::transmute(dwflags), ::core::mem::transmute(lpdate), lpformat.into_param().abi(), ::core::mem::transmute(lpdatestr), ::core::mem::transmute(cchdate)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetDistanceOfClosestLanguageInList<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(pszlanguage: Param0, pszlanguageslist: Param1, wchlistdelimiter: u16) -> ::windows::core::Result<f64> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetDistanceOfClosestLanguageInList(pszlanguage: ::windows::core::PCWSTR, pszlanguageslist: ::windows::core::PCWSTR, wchlistdelimiter: u16, pclosestdistance: *mut f64) -> ::windows::core::HRESULT;
        }
        let mut result__: f64 = ::core::mem::zeroed();
        GetDistanceOfClosestLanguageInList(pszlanguage.into_param().abi(), pszlanguageslist.into_param().abi(), ::core::mem::transmute(wchlistdelimiter), ::core::mem::transmute(&mut result__)).from_abi::<f64>(result__)
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetDurationFormat<'a, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, dwflags: u32, lpduration: *const super::Foundation::SYSTEMTIME, ullduration: u64, lpformat: Param4, lpdurationstr: ::windows::core::PWSTR, cchduration: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetDurationFormat(locale: u32, dwflags: u32, lpduration: *const super::Foundation::SYSTEMTIME, ullduration: u64, lpformat: ::windows::core::PCWSTR, lpdurationstr: ::windows::core::PWSTR, cchduration: i32) -> i32;
        }
        ::core::mem::transmute(GetDurationFormat(::core::mem::transmute(locale), ::core::mem::transmute(dwflags), ::core::mem::transmute(lpduration), ::core::mem::transmute(ullduration), lpformat.into_param().abi(), ::core::mem::transmute(lpdurationstr), ::core::mem::transmute(cchduration)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetDurationFormatEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lplocalename: Param0, dwflags: u32, lpduration: *const super::Foundation::SYSTEMTIME, ullduration: u64, lpformat: Param4, lpdurationstr: ::windows::core::PWSTR, cchduration: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetDurationFormatEx(lplocalename: ::windows::core::PCWSTR, dwflags: u32, lpduration: *const super::Foundation::SYSTEMTIME, ullduration: u64, lpformat: ::windows::core::PCWSTR, lpdurationstr: ::windows::core::PWSTR, cchduration: i32) -> i32;
        }
        ::core::mem::transmute(GetDurationFormatEx(lplocalename.into_param().abi(), ::core::mem::transmute(dwflags), ::core::mem::transmute(lpduration), ::core::mem::transmute(ullduration), lpformat.into_param().abi(), ::core::mem::transmute(lpdurationstr), ::core::mem::transmute(cchduration)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetFileMUIInfo<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, pcwszfilepath: Param1, pfilemuiinfo: *mut FILEMUIINFO, pcbfilemuiinfo: *mut u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetFileMUIInfo(dwflags: u32, pcwszfilepath: ::windows::core::PCWSTR, pfilemuiinfo: *mut FILEMUIINFO, pcbfilemuiinfo: *mut u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetFileMUIInfo(::core::mem::transmute(dwflags), pcwszfilepath.into_param().abi(), ::core::mem::transmute(pfilemuiinfo), ::core::mem::transmute(pcbfilemuiinfo)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetFileMUIPath<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, pcwszfilepath: Param1, pwszlanguage: ::windows::core::PWSTR, pcchlanguage: *mut u32, pwszfilemuipath: ::windows::core::PWSTR, pcchfilemuipath: *mut u32, pululenumerator: *mut u64) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetFileMUIPath(dwflags: u32, pcwszfilepath: ::windows::core::PCWSTR, pwszlanguage: ::windows::core::PWSTR, pcchlanguage: *mut u32, pwszfilemuipath: ::windows::core::PWSTR, pcchfilemuipath: *mut u32, pululenumerator: *mut u64) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetFileMUIPath(::core::mem::transmute(dwflags), pcwszfilepath.into_param().abi(), ::core::mem::transmute(pwszlanguage), ::core::mem::transmute(pcchlanguage), ::core::mem::transmute(pwszfilemuipath), ::core::mem::transmute(pcchfilemuipath), ::core::mem::transmute(pululenumerator)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetGeoInfoA(location: i32, geotype: u32, lpgeodata: ::windows::core::PSTR, cchdata: i32, langid: u16) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetGeoInfoA(location: i32, geotype: u32, lpgeodata: ::windows::core::PSTR, cchdata: i32, langid: u16) -> i32;
        }
        ::core::mem::transmute(GetGeoInfoA(::core::mem::transmute(location), ::core::mem::transmute(geotype), ::core::mem::transmute(lpgeodata), ::core::mem::transmute(cchdata), ::core::mem::transmute(langid)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetGeoInfoEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(location: Param0, geotype: u32, geodata: ::windows::core::PWSTR, geodatacount: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetGeoInfoEx(location: ::windows::core::PCWSTR, geotype: u32, geodata: ::windows::core::PWSTR, geodatacount: i32) -> i32;
        }
        ::core::mem::transmute(GetGeoInfoEx(location.into_param().abi(), ::core::mem::transmute(geotype), ::core::mem::transmute(geodata), ::core::mem::transmute(geodatacount)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetGeoInfoW(location: i32, geotype: u32, lpgeodata: ::windows::core::PWSTR, cchdata: i32, langid: u16) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetGeoInfoW(location: i32, geotype: u32, lpgeodata: ::windows::core::PWSTR, cchdata: i32, langid: u16) -> i32;
        }
        ::core::mem::transmute(GetGeoInfoW(::core::mem::transmute(location), ::core::mem::transmute(geotype), ::core::mem::transmute(lpgeodata), ::core::mem::transmute(cchdata), ::core::mem::transmute(langid)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetLocaleInfoA(locale: u32, lctype: u32, lplcdata: ::windows::core::PSTR, cchdata: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetLocaleInfoA(locale: u32, lctype: u32, lplcdata: ::windows::core::PSTR, cchdata: i32) -> i32;
        }
        ::core::mem::transmute(GetLocaleInfoA(::core::mem::transmute(locale), ::core::mem::transmute(lctype), ::core::mem::transmute(lplcdata), ::core::mem::transmute(cchdata)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetLocaleInfoEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lplocalename: Param0, lctype: u32, lplcdata: ::windows::core::PWSTR, cchdata: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetLocaleInfoEx(lplocalename: ::windows::core::PCWSTR, lctype: u32, lplcdata: ::windows::core::PWSTR, cchdata: i32) -> i32;
        }
        ::core::mem::transmute(GetLocaleInfoEx(lplocalename.into_param().abi(), ::core::mem::transmute(lctype), ::core::mem::transmute(lplcdata), ::core::mem::transmute(cchdata)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetLocaleInfoW(locale: u32, lctype: u32, lplcdata: ::windows::core::PWSTR, cchdata: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetLocaleInfoW(locale: u32, lctype: u32, lplcdata: ::windows::core::PWSTR, cchdata: i32) -> i32;
        }
        ::core::mem::transmute(GetLocaleInfoW(::core::mem::transmute(locale), ::core::mem::transmute(lctype), ::core::mem::transmute(lplcdata), ::core::mem::transmute(cchdata)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetNLSVersion(function: u32, locale: u32, lpversioninformation: *mut NLSVERSIONINFO) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetNLSVersion(function: u32, locale: u32, lpversioninformation: *mut NLSVERSIONINFO) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetNLSVersion(::core::mem::transmute(function), ::core::mem::transmute(locale), ::core::mem::transmute(lpversioninformation)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetNLSVersionEx<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(function: u32, lplocalename: Param1, lpversioninformation: *mut NLSVERSIONINFOEX) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetNLSVersionEx(function: u32, lplocalename: ::windows::core::PCWSTR, lpversioninformation: *mut NLSVERSIONINFOEX) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetNLSVersionEx(::core::mem::transmute(function), lplocalename.into_param().abi(), ::core::mem::transmute(lpversioninformation)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetNumberFormatA<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: u32, dwflags: u32, lpvalue: Param2, lpformat: *const NUMBERFMTA, lpnumberstr: ::windows::core::PSTR, cchnumber: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetNumberFormatA(locale: u32, dwflags: u32, lpvalue: ::windows::core::PCSTR, lpformat: *const NUMBERFMTA, lpnumberstr: ::windows::core::PSTR, cchnumber: i32) -> i32;
        }
        ::core::mem::transmute(GetNumberFormatA(::core::mem::transmute(locale), ::core::mem::transmute(dwflags), lpvalue.into_param().abi(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpnumberstr), ::core::mem::transmute(cchnumber)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetNumberFormatEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lplocalename: Param0, dwflags: u32, lpvalue: Param2, lpformat: *const NUMBERFMTW, lpnumberstr: ::windows::core::PWSTR, cchnumber: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetNumberFormatEx(lplocalename: ::windows::core::PCWSTR, dwflags: u32, lpvalue: ::windows::core::PCWSTR, lpformat: *const NUMBERFMTW, lpnumberstr: ::windows::core::PWSTR, cchnumber: i32) -> i32;
        }
        ::core::mem::transmute(GetNumberFormatEx(lplocalename.into_param().abi(), ::core::mem::transmute(dwflags), lpvalue.into_param().abi(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpnumberstr), ::core::mem::transmute(cchnumber)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetNumberFormatW<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, dwflags: u32, lpvalue: Param2, lpformat: *const NUMBERFMTW, lpnumberstr: ::windows::core::PWSTR, cchnumber: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetNumberFormatW(locale: u32, dwflags: u32, lpvalue: ::windows::core::PCWSTR, lpformat: *const NUMBERFMTW, lpnumberstr: ::windows::core::PWSTR, cchnumber: i32) -> i32;
        }
        ::core::mem::transmute(GetNumberFormatW(::core::mem::transmute(locale), ::core::mem::transmute(dwflags), lpvalue.into_param().abi(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpnumberstr), ::core::mem::transmute(cchnumber)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetOEMCP() -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetOEMCP() -> u32;
        }
        ::core::mem::transmute(GetOEMCP())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetProcessPreferredUILanguages(dwflags: u32, pulnumlanguages: *mut u32, pwszlanguagesbuffer: ::windows::core::PWSTR, pcchlanguagesbuffer: *mut u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetProcessPreferredUILanguages(dwflags: u32, pulnumlanguages: *mut u32, pwszlanguagesbuffer: ::windows::core::PWSTR, pcchlanguagesbuffer: *mut u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetProcessPreferredUILanguages(::core::mem::transmute(dwflags), ::core::mem::transmute(pulnumlanguages), ::core::mem::transmute(pwszlanguagesbuffer), ::core::mem::transmute(pcchlanguagesbuffer)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetStringScripts<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, lpstring: Param1, cchstring: i32, lpscripts: ::windows::core::PWSTR, cchscripts: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetStringScripts(dwflags: u32, lpstring: ::windows::core::PCWSTR, cchstring: i32, lpscripts: ::windows::core::PWSTR, cchscripts: i32) -> i32;
        }
        ::core::mem::transmute(GetStringScripts(::core::mem::transmute(dwflags), lpstring.into_param().abi(), ::core::mem::transmute(cchstring), ::core::mem::transmute(lpscripts), ::core::mem::transmute(cchscripts)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetStringTypeA<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: u32, dwinfotype: u32, lpsrcstr: Param2, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetStringTypeA(locale: u32, dwinfotype: u32, lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetStringTypeA(::core::mem::transmute(locale), ::core::mem::transmute(dwinfotype), lpsrcstr.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(lpchartype)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetStringTypeExA<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: u32, dwinfotype: u32, lpsrcstr: Param2, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetStringTypeExA(locale: u32, dwinfotype: u32, lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetStringTypeExA(::core::mem::transmute(locale), ::core::mem::transmute(dwinfotype), lpsrcstr.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(lpchartype)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetStringTypeExW<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, dwinfotype: u32, lpsrcstr: Param2, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetStringTypeExW(locale: u32, dwinfotype: u32, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetStringTypeExW(::core::mem::transmute(locale), ::core::mem::transmute(dwinfotype), lpsrcstr.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(lpchartype)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetStringTypeW<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwinfotype: u32, lpsrcstr: Param1, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetStringTypeW(dwinfotype: u32, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetStringTypeW(::core::mem::transmute(dwinfotype), lpsrcstr.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(lpchartype)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetSystemDefaultLCID() -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetSystemDefaultLCID() -> u32;
        }
        ::core::mem::transmute(GetSystemDefaultLCID())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetSystemDefaultLangID() -> u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetSystemDefaultLangID() -> u16;
        }
        ::core::mem::transmute(GetSystemDefaultLangID())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetSystemDefaultLocaleName(lplocalename: ::windows::core::PWSTR, cchlocalename: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetSystemDefaultLocaleName(lplocalename: ::windows::core::PWSTR, cchlocalename: i32) -> i32;
        }
        ::core::mem::transmute(GetSystemDefaultLocaleName(::core::mem::transmute(lplocalename), ::core::mem::transmute(cchlocalename)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetSystemDefaultUILanguage() -> u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetSystemDefaultUILanguage() -> u16;
        }
        ::core::mem::transmute(GetSystemDefaultUILanguage())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetSystemPreferredUILanguages(dwflags: u32, pulnumlanguages: *mut u32, pwszlanguagesbuffer: ::windows::core::PWSTR, pcchlanguagesbuffer: *mut u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetSystemPreferredUILanguages(dwflags: u32, pulnumlanguages: *mut u32, pwszlanguagesbuffer: ::windows::core::PWSTR, pcchlanguagesbuffer: *mut u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetSystemPreferredUILanguages(::core::mem::transmute(dwflags), ::core::mem::transmute(pulnumlanguages), ::core::mem::transmute(pwszlanguagesbuffer), ::core::mem::transmute(pcchlanguagesbuffer)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn GetTextCharset<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetTextCharset(hdc: super::Graphics::Gdi::HDC) -> i32;
        }
        ::core::mem::transmute(GetTextCharset(hdc.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn GetTextCharsetInfo<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, lpsig: *mut FONTSIGNATURE, dwflags: u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetTextCharsetInfo(hdc: super::Graphics::Gdi::HDC, lpsig: *mut FONTSIGNATURE, dwflags: u32) -> i32;
        }
        ::core::mem::transmute(GetTextCharsetInfo(hdc.into_param().abi(), ::core::mem::transmute(lpsig), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetThreadLocale() -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetThreadLocale() -> u32;
        }
        ::core::mem::transmute(GetThreadLocale())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetThreadPreferredUILanguages(dwflags: u32, pulnumlanguages: *mut u32, pwszlanguagesbuffer: ::windows::core::PWSTR, pcchlanguagesbuffer: *mut u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetThreadPreferredUILanguages(dwflags: u32, pulnumlanguages: *mut u32, pwszlanguagesbuffer: ::windows::core::PWSTR, pcchlanguagesbuffer: *mut u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetThreadPreferredUILanguages(::core::mem::transmute(dwflags), ::core::mem::transmute(pulnumlanguages), ::core::mem::transmute(pwszlanguagesbuffer), ::core::mem::transmute(pcchlanguagesbuffer)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetThreadUILanguage() -> u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetThreadUILanguage() -> u16;
        }
        ::core::mem::transmute(GetThreadUILanguage())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetTimeFormatA<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: u32, dwflags: u32, lptime: *const super::Foundation::SYSTEMTIME, lpformat: Param3, lptimestr: ::windows::core::PSTR, cchtime: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetTimeFormatA(locale: u32, dwflags: u32, lptime: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCSTR, lptimestr: ::windows::core::PSTR, cchtime: i32) -> i32;
        }
        ::core::mem::transmute(GetTimeFormatA(::core::mem::transmute(locale), ::core::mem::transmute(dwflags), ::core::mem::transmute(lptime), lpformat.into_param().abi(), ::core::mem::transmute(lptimestr), ::core::mem::transmute(cchtime)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetTimeFormatEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lplocalename: Param0, dwflags: TIME_FORMAT_FLAGS, lptime: *const super::Foundation::SYSTEMTIME, lpformat: Param3, lptimestr: ::windows::core::PWSTR, cchtime: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetTimeFormatEx(lplocalename: ::windows::core::PCWSTR, dwflags: TIME_FORMAT_FLAGS, lptime: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCWSTR, lptimestr: ::windows::core::PWSTR, cchtime: i32) -> i32;
        }
        ::core::mem::transmute(GetTimeFormatEx(lplocalename.into_param().abi(), ::core::mem::transmute(dwflags), ::core::mem::transmute(lptime), lpformat.into_param().abi(), ::core::mem::transmute(lptimestr), ::core::mem::transmute(cchtime)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetTimeFormatW<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, dwflags: u32, lptime: *const super::Foundation::SYSTEMTIME, lpformat: Param3, lptimestr: ::windows::core::PWSTR, cchtime: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetTimeFormatW(locale: u32, dwflags: u32, lptime: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCWSTR, lptimestr: ::windows::core::PWSTR, cchtime: i32) -> i32;
        }
        ::core::mem::transmute(GetTimeFormatW(::core::mem::transmute(locale), ::core::mem::transmute(dwflags), ::core::mem::transmute(lptime), lpformat.into_param().abi(), ::core::mem::transmute(lptimestr), ::core::mem::transmute(cchtime)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetUILanguageInfo<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, pwmszlanguage: Param1, pwszfallbacklanguages: ::windows::core::PWSTR, pcchfallbacklanguages: *mut u32, pattributes: *mut u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetUILanguageInfo(dwflags: u32, pwmszlanguage: ::windows::core::PCWSTR, pwszfallbacklanguages: ::windows::core::PWSTR, pcchfallbacklanguages: *mut u32, pattributes: *mut u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetUILanguageInfo(::core::mem::transmute(dwflags), pwmszlanguage.into_param().abi(), ::core::mem::transmute(pwszfallbacklanguages), ::core::mem::transmute(pcchfallbacklanguages), ::core::mem::transmute(pattributes)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetUserDefaultGeoName(geoname: ::windows::core::PWSTR, geonamecount: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetUserDefaultGeoName(geoname: ::windows::core::PWSTR, geonamecount: i32) -> i32;
        }
        ::core::mem::transmute(GetUserDefaultGeoName(::core::mem::transmute(geoname), ::core::mem::transmute(geonamecount)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetUserDefaultLCID() -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetUserDefaultLCID() -> u32;
        }
        ::core::mem::transmute(GetUserDefaultLCID())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetUserDefaultLangID() -> u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetUserDefaultLangID() -> u16;
        }
        ::core::mem::transmute(GetUserDefaultLangID())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetUserDefaultLocaleName(lplocalename: ::windows::core::PWSTR, cchlocalename: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetUserDefaultLocaleName(lplocalename: ::windows::core::PWSTR, cchlocalename: i32) -> i32;
        }
        ::core::mem::transmute(GetUserDefaultLocaleName(::core::mem::transmute(lplocalename), ::core::mem::transmute(cchlocalename)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetUserDefaultUILanguage() -> u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetUserDefaultUILanguage() -> u16;
        }
        ::core::mem::transmute(GetUserDefaultUILanguage())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn GetUserGeoID(geoclass: u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetUserGeoID(geoclass: u32) -> i32;
        }
        ::core::mem::transmute(GetUserGeoID(::core::mem::transmute(geoclass)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetUserPreferredUILanguages(dwflags: u32, pulnumlanguages: *mut u32, pwszlanguagesbuffer: ::windows::core::PWSTR, pcchlanguagesbuffer: *mut u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn GetUserPreferredUILanguages(dwflags: u32, pulnumlanguages: *mut u32, pwszlanguagesbuffer: ::windows::core::PWSTR, pcchlanguagesbuffer: *mut u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(GetUserPreferredUILanguages(::core::mem::transmute(dwflags), ::core::mem::transmute(pulnumlanguages), ::core::mem::transmute(pwszlanguagesbuffer), ::core::mem::transmute(pcchlanguagesbuffer)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const HIGHLEVEL_SERVICE_TYPES: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const HIGH_SURROGATE_END: u32 = 56319u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const HIGH_SURROGATE_START: u32 = 55296u32;
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct HIMC(pub isize);
impl HIMC {
    pub fn is_invalid(&self) -> bool {
        *self == unsafe { ::core::mem::zeroed() }
    }
    pub fn ok(self) -> ::windows::core::Result<Self> {
        if !self.is_invalid() {
            Ok(self)
        } else {
            Err(::windows::core::Error::from_win32())
        }
    }
}
impl ::core::default::Default for HIMC {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
impl ::core::clone::Clone for HIMC {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::marker::Copy for HIMC {}
impl ::core::fmt::Debug for HIMC {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HIMC").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Abi for HIMC {
    type Abi = Self;
}
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct HIMCC(pub isize);
impl HIMCC {
    pub fn is_invalid(&self) -> bool {
        *self == unsafe { ::core::mem::zeroed() }
    }
    pub fn ok(self) -> ::windows::core::Result<Self> {
        if !self.is_invalid() {
            Ok(self)
        } else {
            Err(::windows::core::Error::from_win32())
        }
    }
}
impl ::core::default::Default for HIMCC {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
impl ::core::clone::Clone for HIMCC {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::marker::Copy for HIMCC {}
impl ::core::fmt::Debug for HIMCC {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HIMCC").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Abi for HIMCC {
    type Abi = Self;
}
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct HSAVEDUILANGUAGES(pub isize);
impl HSAVEDUILANGUAGES {
    pub fn is_invalid(&self) -> bool {
        *self == unsafe { ::core::mem::zeroed() }
    }
    pub fn ok(self) -> ::windows::core::Result<Self> {
        if !self.is_invalid() {
            Ok(self)
        } else {
            Err(::windows::core::Error::from_win32())
        }
    }
}
impl ::core::default::Default for HSAVEDUILANGUAGES {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
impl ::core::clone::Clone for HSAVEDUILANGUAGES {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::marker::Copy for HSAVEDUILANGUAGES {}
impl ::core::fmt::Debug for HSAVEDUILANGUAGES {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("HSAVEDUILANGUAGES").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Abi for HSAVEDUILANGUAGES {
    type Abi = Self;
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IComprehensiveSpellCheckProvider(::windows::core::IUnknown);
impl IComprehensiveSpellCheckProvider {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ComprehensiveCheck<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, text: Param0) -> ::windows::core::Result<IEnumSpellingError> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).ComprehensiveCheck)(::core::mem::transmute_copy(self), text.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<IEnumSpellingError>(result__)
    }
}
impl ::core::convert::From<IComprehensiveSpellCheckProvider> for ::windows::core::IUnknown {
    fn from(value: IComprehensiveSpellCheckProvider) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IComprehensiveSpellCheckProvider> for ::windows::core::IUnknown {
    fn from(value: &IComprehensiveSpellCheckProvider) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IComprehensiveSpellCheckProvider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IComprehensiveSpellCheckProvider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IComprehensiveSpellCheckProvider {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IComprehensiveSpellCheckProvider {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IComprehensiveSpellCheckProvider {}
impl ::core::fmt::Debug for IComprehensiveSpellCheckProvider {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IComprehensiveSpellCheckProvider").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IComprehensiveSpellCheckProvider {
    type Vtable = IComprehensiveSpellCheckProvider_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0c58f8de_8e94_479e_9717_70c42c4ad2c3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComprehensiveSpellCheckProvider_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub ComprehensiveCheck: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, text: ::windows::core::PCWSTR, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IDN_ALLOW_UNASSIGNED: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IDN_EMAIL_ADDRESS: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IDN_RAW_PUNYCODE: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IDN_USE_STD3_ASCII_RULES: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IEnumCodePage(::windows::core::IUnknown);
impl IEnumCodePage {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumCodePage> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Clone)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<IEnumCodePage>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Next(&self, celt: u32, rgelt: *mut MIMECPINFO, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Next)(::core::mem::transmute_copy(self), ::core::mem::transmute(celt), ::core::mem::transmute(rgelt), ::core::mem::transmute(pceltfetched)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Reset)(::core::mem::transmute_copy(self)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Skip)(::core::mem::transmute_copy(self), ::core::mem::transmute(celt)).ok()
    }
}
impl ::core::convert::From<IEnumCodePage> for ::windows::core::IUnknown {
    fn from(value: IEnumCodePage) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IEnumCodePage> for ::windows::core::IUnknown {
    fn from(value: &IEnumCodePage) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IEnumCodePage {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IEnumCodePage {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IEnumCodePage {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumCodePage {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumCodePage {}
impl ::core::fmt::Debug for IEnumCodePage {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumCodePage").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IEnumCodePage {
    type Vtable = IEnumCodePage_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x275c23e3_3747_11d0_9fea_00aa003f8646);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumCodePage_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppenum: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut MIMECPINFO, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IEnumRfc1766(::windows::core::IUnknown);
impl IEnumRfc1766 {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumRfc1766> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Clone)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<IEnumRfc1766>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Next(&self, celt: u32, rgelt: *mut RFC1766INFO, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Next)(::core::mem::transmute_copy(self), ::core::mem::transmute(celt), ::core::mem::transmute(rgelt), ::core::mem::transmute(pceltfetched)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Reset)(::core::mem::transmute_copy(self)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Skip)(::core::mem::transmute_copy(self), ::core::mem::transmute(celt)).ok()
    }
}
impl ::core::convert::From<IEnumRfc1766> for ::windows::core::IUnknown {
    fn from(value: IEnumRfc1766) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IEnumRfc1766> for ::windows::core::IUnknown {
    fn from(value: &IEnumRfc1766) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IEnumRfc1766 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IEnumRfc1766 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IEnumRfc1766 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumRfc1766 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumRfc1766 {}
impl ::core::fmt::Debug for IEnumRfc1766 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumRfc1766").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IEnumRfc1766 {
    type Vtable = IEnumRfc1766_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3dc39d1d_c030_11d0_b81b_00c04fc9b31f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumRfc1766_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppenum: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut RFC1766INFO, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IEnumScript(::windows::core::IUnknown);
impl IEnumScript {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumScript> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Clone)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<IEnumScript>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Next(&self, celt: u32, rgelt: *mut SCRIPTINFO, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Next)(::core::mem::transmute_copy(self), ::core::mem::transmute(celt), ::core::mem::transmute(rgelt), ::core::mem::transmute(pceltfetched)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Reset)(::core::mem::transmute_copy(self)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Skip)(::core::mem::transmute_copy(self), ::core::mem::transmute(celt)).ok()
    }
}
impl ::core::convert::From<IEnumScript> for ::windows::core::IUnknown {
    fn from(value: IEnumScript) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IEnumScript> for ::windows::core::IUnknown {
    fn from(value: &IEnumScript) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IEnumScript {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IEnumScript {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IEnumScript {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumScript {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumScript {}
impl ::core::fmt::Debug for IEnumScript {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumScript").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IEnumScript {
    type Vtable = IEnumScript_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xae5f1430_388b_11d2_8380_00c04f8f5da1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumScript_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppenum: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut SCRIPTINFO, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IEnumSpellingError(::windows::core::IUnknown);
impl IEnumSpellingError {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Next(&self) -> ::windows::core::Result<ISpellingError> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Next)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<ISpellingError>(result__)
    }
}
impl ::core::convert::From<IEnumSpellingError> for ::windows::core::IUnknown {
    fn from(value: IEnumSpellingError) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IEnumSpellingError> for ::windows::core::IUnknown {
    fn from(value: &IEnumSpellingError) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IEnumSpellingError {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IEnumSpellingError {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IEnumSpellingError {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumSpellingError {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumSpellingError {}
impl ::core::fmt::Debug for IEnumSpellingError {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumSpellingError").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IEnumSpellingError {
    type Vtable = IEnumSpellingError_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x803e3bd4_2828_4410_8290_418d1d73c762);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumSpellingError_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_ALPHANUMERIC: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_CHARCODE: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_CHINESE: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_FULLSHAPE: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_HANGUL: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_HANJACONVERT: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_JAPANESE: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_KATAKANA: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_LANGUAGE: u32 = 3u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_NATIVE: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_NATIVESYMBOL: u32 = 128u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IME_CMODE_ROMAN: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMLangCodePages(::windows::core::IUnknown);
impl IMLangCodePages {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetCharCodePages(&self, chsrc: u16) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetCharCodePages)(::core::mem::transmute_copy(self), ::core::mem::transmute(chsrc), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetStrCodePages<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pszsrc: Param0, cchsrc: i32, dwprioritycodepages: u32, pdwcodepages: *mut u32, pcchcodepages: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetStrCodePages)(::core::mem::transmute_copy(self), pszsrc.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(dwprioritycodepages), ::core::mem::transmute(pdwcodepages), ::core::mem::transmute(pcchcodepages)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CodePageToCodePages(&self, ucodepage: u32) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).CodePageToCodePages)(::core::mem::transmute_copy(self), ::core::mem::transmute(ucodepage), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CodePagesToCodePage(&self, dwcodepages: u32, udefaultcodepage: u32) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).CodePagesToCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwcodepages), ::core::mem::transmute(udefaultcodepage), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
}
impl ::core::convert::From<IMLangCodePages> for ::windows::core::IUnknown {
    fn from(value: IMLangCodePages) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangCodePages> for ::windows::core::IUnknown {
    fn from(value: &IMLangCodePages) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMLangCodePages {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMLangCodePages {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMLangCodePages {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMLangCodePages {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMLangCodePages {}
impl ::core::fmt::Debug for IMLangCodePages {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMLangCodePages").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMLangCodePages {
    type Vtable = IMLangCodePages_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x359f3443_bd4a_11d0_b188_00aa0038c969);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMLangCodePages_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub GetCharCodePages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, chsrc: u16, pdwcodepages: *mut u32) -> ::windows::core::HRESULT,
    pub GetStrCodePages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszsrc: ::windows::core::PCWSTR, cchsrc: i32, dwprioritycodepages: u32, pdwcodepages: *mut u32, pcchcodepages: *mut i32) -> ::windows::core::HRESULT,
    pub CodePageToCodePages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ucodepage: u32, pdwcodepages: *mut u32) -> ::windows::core::HRESULT,
    pub CodePagesToCodePage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcodepages: u32, udefaultcodepage: u32, pucodepage: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMLangConvertCharset(::windows::core::IUnknown);
impl IMLangConvertCharset {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Initialize(&self, uisrccodepage: u32, uidstcodepage: u32, dwproperty: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Initialize)(::core::mem::transmute_copy(self), ::core::mem::transmute(uisrccodepage), ::core::mem::transmute(uidstcodepage), ::core::mem::transmute(dwproperty)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetSourceCodePage(&self) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetSourceCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetDestinationCodePage(&self) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetDestinationCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetProperty(&self) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetProperty)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn DoConversion(&self, psrcstr: *const u8, pcsrcsize: *mut u32, pdststr: *mut u8, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).DoConversion)(::core::mem::transmute_copy(self), ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn DoConversionToUnicode<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(&self, psrcstr: Param0, pcsrcsize: *mut u32, pdststr: ::windows::core::PWSTR, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).DoConversionToUnicode)(::core::mem::transmute_copy(self), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn DoConversionFromUnicode<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, psrcstr: Param0, pcsrcsize: *mut u32, pdststr: ::windows::core::PSTR, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).DoConversionFromUnicode)(::core::mem::transmute_copy(self), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
}
impl ::core::convert::From<IMLangConvertCharset> for ::windows::core::IUnknown {
    fn from(value: IMLangConvertCharset) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangConvertCharset> for ::windows::core::IUnknown {
    fn from(value: &IMLangConvertCharset) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMLangConvertCharset {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMLangConvertCharset {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMLangConvertCharset {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMLangConvertCharset {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMLangConvertCharset {}
impl ::core::fmt::Debug for IMLangConvertCharset {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMLangConvertCharset").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMLangConvertCharset {
    type Vtable = IMLangConvertCharset_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd66d6f98_cdaa_11d0_b822_00c04fc9b31f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMLangConvertCharset_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Initialize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uisrccodepage: u32, uidstcodepage: u32, dwproperty: u32) -> ::windows::core::HRESULT,
    pub GetSourceCodePage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, puisrccodepage: *mut u32) -> ::windows::core::HRESULT,
    pub GetDestinationCodePage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, puidstcodepage: *mut u32) -> ::windows::core::HRESULT,
    pub GetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwproperty: *mut u32) -> ::windows::core::HRESULT,
    pub DoConversion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psrcstr: *const u8, pcsrcsize: *mut u32, pdststr: *mut u8, pcdstsize: *mut u32) -> ::windows::core::HRESULT,
    pub DoConversionToUnicode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psrcstr: ::windows::core::PCSTR, pcsrcsize: *mut u32, pdststr: ::windows::core::PWSTR, pcdstsize: *mut u32) -> ::windows::core::HRESULT,
    pub DoConversionFromUnicode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psrcstr: ::windows::core::PCWSTR, pcsrcsize: *mut u32, pdststr: ::windows::core::PSTR, pcdstsize: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMLangFontLink(::windows::core::IUnknown);
impl IMLangFontLink {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetCharCodePages(&self, chsrc: u16) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetCharCodePages)(::core::mem::transmute_copy(self), ::core::mem::transmute(chsrc), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetStrCodePages<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pszsrc: Param0, cchsrc: i32, dwprioritycodepages: u32, pdwcodepages: *mut u32, pcchcodepages: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.GetStrCodePages)(::core::mem::transmute_copy(self), pszsrc.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(dwprioritycodepages), ::core::mem::transmute(pdwcodepages), ::core::mem::transmute(pcchcodepages)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CodePageToCodePages(&self, ucodepage: u32) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.CodePageToCodePages)(::core::mem::transmute_copy(self), ::core::mem::transmute(ucodepage), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CodePagesToCodePage(&self, dwcodepages: u32, udefaultcodepage: u32) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.CodePagesToCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwcodepages), ::core::mem::transmute(udefaultcodepage), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub unsafe fn GetFontCodePages<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>, Param1: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HFONT>>(&self, hdc: Param0, hfont: Param1) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetFontCodePages)(::core::mem::transmute_copy(self), hdc.into_param().abi(), hfont.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub unsafe fn MapFont<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>, Param2: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HFONT>>(&self, hdc: Param0, dwcodepages: u32, hsrcfont: Param2) -> ::windows::core::Result<super::Graphics::Gdi::HFONT> {
        let mut result__: super::Graphics::Gdi::HFONT = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).MapFont)(::core::mem::transmute_copy(self), hdc.into_param().abi(), ::core::mem::transmute(dwcodepages), hsrcfont.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<super::Graphics::Gdi::HFONT>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub unsafe fn ReleaseFont<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HFONT>>(&self, hfont: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ReleaseFont)(::core::mem::transmute_copy(self), hfont.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ResetFontMapping(&self) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ResetFontMapping)(::core::mem::transmute_copy(self)).ok()
    }
}
impl ::core::convert::From<IMLangFontLink> for ::windows::core::IUnknown {
    fn from(value: IMLangFontLink) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangFontLink> for ::windows::core::IUnknown {
    fn from(value: &IMLangFontLink) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMLangFontLink {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMLangFontLink {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IMLangFontLink> for IMLangCodePages {
    fn from(value: IMLangFontLink) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangFontLink> for IMLangCodePages {
    fn from(value: &IMLangFontLink) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, IMLangCodePages> for IMLangFontLink {
    fn into_param(self) -> ::windows::core::Param<'a, IMLangCodePages> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, IMLangCodePages> for &'a IMLangFontLink {
    fn into_param(self) -> ::windows::core::Param<'a, IMLangCodePages> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMLangFontLink {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMLangFontLink {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMLangFontLink {}
impl ::core::fmt::Debug for IMLangFontLink {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMLangFontLink").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMLangFontLink {
    type Vtable = IMLangFontLink_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x359f3441_bd4a_11d0_b188_00aa0038c969);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMLangFontLink_Vtbl {
    pub base: IMLangCodePages_Vtbl,
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub GetFontCodePages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hdc: super::Graphics::Gdi::HDC, hfont: super::Graphics::Gdi::HFONT, pdwcodepages: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Graphics_Gdi"))]
    GetFontCodePages: usize,
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub MapFont: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hdc: super::Graphics::Gdi::HDC, dwcodepages: u32, hsrcfont: super::Graphics::Gdi::HFONT, phdestfont: *mut super::Graphics::Gdi::HFONT) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Graphics_Gdi"))]
    MapFont: usize,
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub ReleaseFont: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hfont: super::Graphics::Gdi::HFONT) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Graphics_Gdi"))]
    ReleaseFont: usize,
    pub ResetFontMapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMLangFontLink2(::windows::core::IUnknown);
impl IMLangFontLink2 {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetCharCodePages(&self, chsrc: u16) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetCharCodePages)(::core::mem::transmute_copy(self), ::core::mem::transmute(chsrc), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetStrCodePages<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pszsrc: Param0, cchsrc: i32, dwprioritycodepages: u32, pdwcodepages: *mut u32, pcchcodepages: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.GetStrCodePages)(::core::mem::transmute_copy(self), pszsrc.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(dwprioritycodepages), ::core::mem::transmute(pdwcodepages), ::core::mem::transmute(pcchcodepages)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CodePageToCodePages(&self, ucodepage: u32) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.CodePageToCodePages)(::core::mem::transmute_copy(self), ::core::mem::transmute(ucodepage), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CodePagesToCodePage(&self, dwcodepages: u32, udefaultcodepage: u32) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.CodePagesToCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwcodepages), ::core::mem::transmute(udefaultcodepage), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub unsafe fn GetFontCodePages<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>, Param1: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HFONT>>(&self, hdc: Param0, hfont: Param1) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetFontCodePages)(::core::mem::transmute_copy(self), hdc.into_param().abi(), hfont.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub unsafe fn ReleaseFont<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HFONT>>(&self, hfont: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ReleaseFont)(::core::mem::transmute_copy(self), hfont.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ResetFontMapping(&self) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ResetFontMapping)(::core::mem::transmute_copy(self)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub unsafe fn MapFont<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(&self, hdc: Param0, dwcodepages: u32, chsrc: u16) -> ::windows::core::Result<super::Graphics::Gdi::HFONT> {
        let mut result__: super::Graphics::Gdi::HFONT = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).MapFont)(::core::mem::transmute_copy(self), hdc.into_param().abi(), ::core::mem::transmute(dwcodepages), ::core::mem::transmute(chsrc), ::core::mem::transmute(&mut result__)).from_abi::<super::Graphics::Gdi::HFONT>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub unsafe fn GetFontUnicodeRanges<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(&self, hdc: Param0, puiranges: *const u32) -> ::windows::core::Result<UNICODERANGE> {
        let mut result__: UNICODERANGE = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetFontUnicodeRanges)(::core::mem::transmute_copy(self), hdc.into_param().abi(), ::core::mem::transmute(puiranges), ::core::mem::transmute(&mut result__)).from_abi::<UNICODERANGE>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetScriptFontInfo(&self, sid: u8, dwflags: u32, puifonts: *mut u32, pscriptfont: *mut tagSCRIPFONTINFO) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetScriptFontInfo)(::core::mem::transmute_copy(self), ::core::mem::transmute(sid), ::core::mem::transmute(dwflags), ::core::mem::transmute(puifonts), ::core::mem::transmute(pscriptfont)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CodePageToScriptID(&self, uicodepage: u32) -> ::windows::core::Result<u8> {
        let mut result__: u8 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).CodePageToScriptID)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), ::core::mem::transmute(&mut result__)).from_abi::<u8>(result__)
    }
}
impl ::core::convert::From<IMLangFontLink2> for ::windows::core::IUnknown {
    fn from(value: IMLangFontLink2) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangFontLink2> for ::windows::core::IUnknown {
    fn from(value: &IMLangFontLink2) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMLangFontLink2 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMLangFontLink2 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IMLangFontLink2> for IMLangCodePages {
    fn from(value: IMLangFontLink2) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangFontLink2> for IMLangCodePages {
    fn from(value: &IMLangFontLink2) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, IMLangCodePages> for IMLangFontLink2 {
    fn into_param(self) -> ::windows::core::Param<'a, IMLangCodePages> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, IMLangCodePages> for &'a IMLangFontLink2 {
    fn into_param(self) -> ::windows::core::Param<'a, IMLangCodePages> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMLangFontLink2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMLangFontLink2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMLangFontLink2 {}
impl ::core::fmt::Debug for IMLangFontLink2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMLangFontLink2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMLangFontLink2 {
    type Vtable = IMLangFontLink2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdccfc162_2b38_11d2_b7ec_00c04f8f5d9a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMLangFontLink2_Vtbl {
    pub base: IMLangCodePages_Vtbl,
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub GetFontCodePages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hdc: super::Graphics::Gdi::HDC, hfont: super::Graphics::Gdi::HFONT, pdwcodepages: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Graphics_Gdi"))]
    GetFontCodePages: usize,
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub ReleaseFont: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hfont: super::Graphics::Gdi::HFONT) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Graphics_Gdi"))]
    ReleaseFont: usize,
    pub ResetFontMapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub MapFont: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hdc: super::Graphics::Gdi::HDC, dwcodepages: u32, chsrc: u16, pfont: *mut super::Graphics::Gdi::HFONT) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Graphics_Gdi"))]
    MapFont: usize,
    #[cfg(feature = "Win32_Graphics_Gdi")]
    pub GetFontUnicodeRanges: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hdc: super::Graphics::Gdi::HDC, puiranges: *const u32, puranges: *mut UNICODERANGE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Graphics_Gdi"))]
    GetFontUnicodeRanges: usize,
    pub GetScriptFontInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sid: u8, dwflags: u32, puifonts: *mut u32, pscriptfont: *mut tagSCRIPFONTINFO) -> ::windows::core::HRESULT,
    pub CodePageToScriptID: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uicodepage: u32, psid: *mut u8) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMLangLineBreakConsole(::windows::core::IUnknown);
impl IMLangLineBreakConsole {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn BreakLineML<'a, Param0: ::windows::core::IntoParam<'a, IMLangString>>(&self, psrcmlstr: Param0, lsrcpos: i32, lsrclen: i32, cmincolumns: i32, cmaxcolumns: i32, pllinelen: *mut i32, plskiplen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).BreakLineML)(::core::mem::transmute_copy(self), psrcmlstr.into_param().abi(), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen), ::core::mem::transmute(cmincolumns), ::core::mem::transmute(cmaxcolumns), ::core::mem::transmute(pllinelen), ::core::mem::transmute(plskiplen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn BreakLineW<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, locale: u32, pszsrc: Param1, cchsrc: i32, cmaxcolumns: i32, pcchline: *mut i32, pcchskip: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).BreakLineW)(::core::mem::transmute_copy(self), ::core::mem::transmute(locale), pszsrc.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(cmaxcolumns), ::core::mem::transmute(pcchline), ::core::mem::transmute(pcchskip)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn BreakLineA<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(&self, locale: u32, ucodepage: u32, pszsrc: Param2, cchsrc: i32, cmaxcolumns: i32, pcchline: *mut i32, pcchskip: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).BreakLineA)(::core::mem::transmute_copy(self), ::core::mem::transmute(locale), ::core::mem::transmute(ucodepage), pszsrc.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(cmaxcolumns), ::core::mem::transmute(pcchline), ::core::mem::transmute(pcchskip)).ok()
    }
}
impl ::core::convert::From<IMLangLineBreakConsole> for ::windows::core::IUnknown {
    fn from(value: IMLangLineBreakConsole) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangLineBreakConsole> for ::windows::core::IUnknown {
    fn from(value: &IMLangLineBreakConsole) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMLangLineBreakConsole {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMLangLineBreakConsole {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMLangLineBreakConsole {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMLangLineBreakConsole {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMLangLineBreakConsole {}
impl ::core::fmt::Debug for IMLangLineBreakConsole {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMLangLineBreakConsole").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMLangLineBreakConsole {
    type Vtable = IMLangLineBreakConsole_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf5be2ee1_bfd7_11d0_b188_00aa0038c969);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMLangLineBreakConsole_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub BreakLineML: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psrcmlstr: ::windows::core::RawPtr, lsrcpos: i32, lsrclen: i32, cmincolumns: i32, cmaxcolumns: i32, pllinelen: *mut i32, plskiplen: *mut i32) -> ::windows::core::HRESULT,
    pub BreakLineW: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locale: u32, pszsrc: ::windows::core::PCWSTR, cchsrc: i32, cmaxcolumns: i32, pcchline: *mut i32, pcchskip: *mut i32) -> ::windows::core::HRESULT,
    pub BreakLineA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locale: u32, ucodepage: u32, pszsrc: ::windows::core::PCSTR, cchsrc: i32, cmaxcolumns: i32, pcchline: *mut i32, pcchskip: *mut i32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMLangString(::windows::core::IUnknown);
impl IMLangString {
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Sync<'a, Param0: ::windows::core::IntoParam<'a, super::Foundation::BOOL>>(&self, fnoaccess: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Sync)(::core::mem::transmute_copy(self), fnoaccess.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetLength(&self) -> ::windows::core::Result<i32> {
        let mut result__: i32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetLength)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<i32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetMLStr<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::IUnknown>>(&self, ldestpos: i32, ldestlen: i32, psrcmlstr: Param2, lsrcpos: i32, lsrclen: i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).SetMLStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(ldestpos), ::core::mem::transmute(ldestlen), psrcmlstr.into_param().abi(), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetMLStr<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::IUnknown>>(&self, lsrcpos: i32, lsrclen: i32, punkouter: Param2, dwclscontext: u32, piid: *const ::windows::core::GUID, ppdestmlstr: *mut ::core::option::Option<::windows::core::IUnknown>, pldestpos: *mut i32, pldestlen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetMLStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen), punkouter.into_param().abi(), ::core::mem::transmute(dwclscontext), ::core::mem::transmute(piid), ::core::mem::transmute(ppdestmlstr), ::core::mem::transmute(pldestpos), ::core::mem::transmute(pldestlen)).ok()
    }
}
impl ::core::convert::From<IMLangString> for ::windows::core::IUnknown {
    fn from(value: IMLangString) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangString> for ::windows::core::IUnknown {
    fn from(value: &IMLangString) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMLangString {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMLangString {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMLangString {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMLangString {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMLangString {}
impl ::core::fmt::Debug for IMLangString {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMLangString").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMLangString {
    type Vtable = IMLangString_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc04d65ce_b70d_11d0_b188_00aa0038c969);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMLangString_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    #[cfg(feature = "Win32_Foundation")]
    pub Sync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fnoaccess: super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Sync: usize,
    pub GetLength: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pllen: *mut i32) -> ::windows::core::HRESULT,
    pub SetMLStr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ldestpos: i32, ldestlen: i32, psrcmlstr: *mut ::core::ffi::c_void, lsrcpos: i32, lsrclen: i32) -> ::windows::core::HRESULT,
    pub GetMLStr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsrcpos: i32, lsrclen: i32, punkouter: *mut ::core::ffi::c_void, dwclscontext: u32, piid: *const ::windows::core::GUID, ppdestmlstr: *mut *mut ::core::ffi::c_void, pldestpos: *mut i32, pldestlen: *mut i32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMLangStringAStr(::windows::core::IUnknown);
impl IMLangStringAStr {
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Sync<'a, Param0: ::windows::core::IntoParam<'a, super::Foundation::BOOL>>(&self, fnoaccess: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.Sync)(::core::mem::transmute_copy(self), fnoaccess.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetLength(&self) -> ::windows::core::Result<i32> {
        let mut result__: i32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetLength)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<i32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetMLStr<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::IUnknown>>(&self, ldestpos: i32, ldestlen: i32, psrcmlstr: Param2, lsrcpos: i32, lsrclen: i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.SetMLStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(ldestpos), ::core::mem::transmute(ldestlen), psrcmlstr.into_param().abi(), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetMLStr<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::IUnknown>>(&self, lsrcpos: i32, lsrclen: i32, punkouter: Param2, dwclscontext: u32, piid: *const ::windows::core::GUID, ppdestmlstr: *mut ::core::option::Option<::windows::core::IUnknown>, pldestpos: *mut i32, pldestlen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.GetMLStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen), punkouter.into_param().abi(), ::core::mem::transmute(dwclscontext), ::core::mem::transmute(piid), ::core::mem::transmute(ppdestmlstr), ::core::mem::transmute(pldestpos), ::core::mem::transmute(pldestlen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetAStr<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(&self, ldestpos: i32, ldestlen: i32, ucodepage: u32, pszsrc: Param3, cchsrc: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).SetAStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(ldestpos), ::core::mem::transmute(ldestlen), ::core::mem::transmute(ucodepage), pszsrc.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetStrBufA<'a, Param3: ::windows::core::IntoParam<'a, IMLangStringBufA>>(&self, ldestpos: i32, ldestlen: i32, ucodepage: u32, psrcbuf: Param3, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).SetStrBufA)(::core::mem::transmute_copy(self), ::core::mem::transmute(ldestpos), ::core::mem::transmute(ldestlen), ::core::mem::transmute(ucodepage), psrcbuf.into_param().abi(), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetAStr(&self, lsrcpos: i32, lsrclen: i32, ucodepagein: u32, pucodepageout: *mut u32, pszdest: ::windows::core::PSTR, cchdest: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetAStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen), ::core::mem::transmute(ucodepagein), ::core::mem::transmute(pucodepageout), ::core::mem::transmute(pszdest), ::core::mem::transmute(cchdest), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetStrBufA(&self, lsrcpos: i32, lsrcmaxlen: i32, pudestcodepage: *mut u32, ppdestbuf: *mut ::core::option::Option<IMLangStringBufA>, pldestlen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetStrBufA)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrcmaxlen), ::core::mem::transmute(pudestcodepage), ::core::mem::transmute(ppdestbuf), ::core::mem::transmute(pldestlen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn LockAStr(&self, lsrcpos: i32, lsrclen: i32, lflags: i32, ucodepagein: u32, cchrequest: i32, pucodepageout: *mut u32, ppszdest: *mut ::windows::core::PSTR, pcchdest: *mut i32, pldestlen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).LockAStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen), ::core::mem::transmute(lflags), ::core::mem::transmute(ucodepagein), ::core::mem::transmute(cchrequest), ::core::mem::transmute(pucodepageout), ::core::mem::transmute(ppszdest), ::core::mem::transmute(pcchdest), ::core::mem::transmute(pldestlen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn UnlockAStr<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(&self, pszsrc: Param0, cchsrc: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).UnlockAStr)(::core::mem::transmute_copy(self), pszsrc.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetLocale(&self, ldestpos: i32, ldestlen: i32, locale: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).SetLocale)(::core::mem::transmute_copy(self), ::core::mem::transmute(ldestpos), ::core::mem::transmute(ldestlen), ::core::mem::transmute(locale)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetLocale(&self, lsrcpos: i32, lsrcmaxlen: i32, plocale: *mut u32, pllocalepos: *mut i32, pllocalelen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetLocale)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrcmaxlen), ::core::mem::transmute(plocale), ::core::mem::transmute(pllocalepos), ::core::mem::transmute(pllocalelen)).ok()
    }
}
impl ::core::convert::From<IMLangStringAStr> for ::windows::core::IUnknown {
    fn from(value: IMLangStringAStr) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangStringAStr> for ::windows::core::IUnknown {
    fn from(value: &IMLangStringAStr) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMLangStringAStr {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMLangStringAStr {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IMLangStringAStr> for IMLangString {
    fn from(value: IMLangStringAStr) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangStringAStr> for IMLangString {
    fn from(value: &IMLangStringAStr) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, IMLangString> for IMLangStringAStr {
    fn into_param(self) -> ::windows::core::Param<'a, IMLangString> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, IMLangString> for &'a IMLangStringAStr {
    fn into_param(self) -> ::windows::core::Param<'a, IMLangString> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMLangStringAStr {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMLangStringAStr {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMLangStringAStr {}
impl ::core::fmt::Debug for IMLangStringAStr {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMLangStringAStr").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMLangStringAStr {
    type Vtable = IMLangStringAStr_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc04d65d2_b70d_11d0_b188_00aa0038c969);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMLangStringAStr_Vtbl {
    pub base: IMLangString_Vtbl,
    pub SetAStr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ldestpos: i32, ldestlen: i32, ucodepage: u32, pszsrc: ::windows::core::PCSTR, cchsrc: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::HRESULT,
    pub SetStrBufA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ldestpos: i32, ldestlen: i32, ucodepage: u32, psrcbuf: ::windows::core::RawPtr, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::HRESULT,
    pub GetAStr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsrcpos: i32, lsrclen: i32, ucodepagein: u32, pucodepageout: *mut u32, pszdest: ::windows::core::PSTR, cchdest: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::HRESULT,
    pub GetStrBufA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsrcpos: i32, lsrcmaxlen: i32, pudestcodepage: *mut u32, ppdestbuf: *mut ::windows::core::RawPtr, pldestlen: *mut i32) -> ::windows::core::HRESULT,
    pub LockAStr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsrcpos: i32, lsrclen: i32, lflags: i32, ucodepagein: u32, cchrequest: i32, pucodepageout: *mut u32, ppszdest: *mut ::windows::core::PSTR, pcchdest: *mut i32, pldestlen: *mut i32) -> ::windows::core::HRESULT,
    pub UnlockAStr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszsrc: ::windows::core::PCSTR, cchsrc: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::HRESULT,
    pub SetLocale: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ldestpos: i32, ldestlen: i32, locale: u32) -> ::windows::core::HRESULT,
    pub GetLocale: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsrcpos: i32, lsrcmaxlen: i32, plocale: *mut u32, pllocalepos: *mut i32, pllocalelen: *mut i32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMLangStringBufA(::windows::core::IUnknown);
impl IMLangStringBufA {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetStatus(&self, plflags: *mut i32, pcchbuf: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetStatus)(::core::mem::transmute_copy(self), ::core::mem::transmute(plflags), ::core::mem::transmute(pcchbuf)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn LockBuf(&self, cchoffset: i32, cchmaxlock: i32, ppszbuf: *mut *mut super::Foundation::CHAR, pcchbuf: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).LockBuf)(::core::mem::transmute_copy(self), ::core::mem::transmute(cchoffset), ::core::mem::transmute(cchmaxlock), ::core::mem::transmute(ppszbuf), ::core::mem::transmute(pcchbuf)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn UnlockBuf<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(&self, pszbuf: Param0, cchoffset: i32, cchwrite: i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).UnlockBuf)(::core::mem::transmute_copy(self), pszbuf.into_param().abi(), ::core::mem::transmute(cchoffset), ::core::mem::transmute(cchwrite)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Insert(&self, cchoffset: i32, cchmaxinsert: i32) -> ::windows::core::Result<i32> {
        let mut result__: i32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Insert)(::core::mem::transmute_copy(self), ::core::mem::transmute(cchoffset), ::core::mem::transmute(cchmaxinsert), ::core::mem::transmute(&mut result__)).from_abi::<i32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Delete(&self, cchoffset: i32, cchdelete: i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Delete)(::core::mem::transmute_copy(self), ::core::mem::transmute(cchoffset), ::core::mem::transmute(cchdelete)).ok()
    }
}
impl ::core::convert::From<IMLangStringBufA> for ::windows::core::IUnknown {
    fn from(value: IMLangStringBufA) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangStringBufA> for ::windows::core::IUnknown {
    fn from(value: &IMLangStringBufA) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMLangStringBufA {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMLangStringBufA {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMLangStringBufA {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMLangStringBufA {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMLangStringBufA {}
impl ::core::fmt::Debug for IMLangStringBufA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMLangStringBufA").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMLangStringBufA {
    type Vtable = IMLangStringBufA_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd24acd23_ba72_11d0_b188_00aa0038c969);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMLangStringBufA_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub GetStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, plflags: *mut i32, pcchbuf: *mut i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub LockBuf: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cchoffset: i32, cchmaxlock: i32, ppszbuf: *mut *mut super::Foundation::CHAR, pcchbuf: *mut i32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    LockBuf: usize,
    pub UnlockBuf: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszbuf: ::windows::core::PCSTR, cchoffset: i32, cchwrite: i32) -> ::windows::core::HRESULT,
    pub Insert: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cchoffset: i32, cchmaxinsert: i32, pcchactual: *mut i32) -> ::windows::core::HRESULT,
    pub Delete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cchoffset: i32, cchdelete: i32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMLangStringBufW(::windows::core::IUnknown);
impl IMLangStringBufW {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetStatus(&self, plflags: *mut i32, pcchbuf: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetStatus)(::core::mem::transmute_copy(self), ::core::mem::transmute(plflags), ::core::mem::transmute(pcchbuf)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn LockBuf(&self, cchoffset: i32, cchmaxlock: i32, ppszbuf: *mut *mut u16, pcchbuf: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).LockBuf)(::core::mem::transmute_copy(self), ::core::mem::transmute(cchoffset), ::core::mem::transmute(cchmaxlock), ::core::mem::transmute(ppszbuf), ::core::mem::transmute(pcchbuf)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn UnlockBuf<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pszbuf: Param0, cchoffset: i32, cchwrite: i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).UnlockBuf)(::core::mem::transmute_copy(self), pszbuf.into_param().abi(), ::core::mem::transmute(cchoffset), ::core::mem::transmute(cchwrite)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Insert(&self, cchoffset: i32, cchmaxinsert: i32) -> ::windows::core::Result<i32> {
        let mut result__: i32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Insert)(::core::mem::transmute_copy(self), ::core::mem::transmute(cchoffset), ::core::mem::transmute(cchmaxinsert), ::core::mem::transmute(&mut result__)).from_abi::<i32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Delete(&self, cchoffset: i32, cchdelete: i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Delete)(::core::mem::transmute_copy(self), ::core::mem::transmute(cchoffset), ::core::mem::transmute(cchdelete)).ok()
    }
}
impl ::core::convert::From<IMLangStringBufW> for ::windows::core::IUnknown {
    fn from(value: IMLangStringBufW) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangStringBufW> for ::windows::core::IUnknown {
    fn from(value: &IMLangStringBufW) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMLangStringBufW {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMLangStringBufW {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMLangStringBufW {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMLangStringBufW {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMLangStringBufW {}
impl ::core::fmt::Debug for IMLangStringBufW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMLangStringBufW").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMLangStringBufW {
    type Vtable = IMLangStringBufW_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd24acd21_ba72_11d0_b188_00aa0038c969);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMLangStringBufW_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub GetStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, plflags: *mut i32, pcchbuf: *mut i32) -> ::windows::core::HRESULT,
    pub LockBuf: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cchoffset: i32, cchmaxlock: i32, ppszbuf: *mut *mut u16, pcchbuf: *mut i32) -> ::windows::core::HRESULT,
    pub UnlockBuf: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszbuf: ::windows::core::PCWSTR, cchoffset: i32, cchwrite: i32) -> ::windows::core::HRESULT,
    pub Insert: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cchoffset: i32, cchmaxinsert: i32, pcchactual: *mut i32) -> ::windows::core::HRESULT,
    pub Delete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cchoffset: i32, cchdelete: i32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMLangStringWStr(::windows::core::IUnknown);
impl IMLangStringWStr {
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Sync<'a, Param0: ::windows::core::IntoParam<'a, super::Foundation::BOOL>>(&self, fnoaccess: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.Sync)(::core::mem::transmute_copy(self), fnoaccess.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetLength(&self) -> ::windows::core::Result<i32> {
        let mut result__: i32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetLength)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<i32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetMLStr<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::IUnknown>>(&self, ldestpos: i32, ldestlen: i32, psrcmlstr: Param2, lsrcpos: i32, lsrclen: i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.SetMLStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(ldestpos), ::core::mem::transmute(ldestlen), psrcmlstr.into_param().abi(), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetMLStr<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::IUnknown>>(&self, lsrcpos: i32, lsrclen: i32, punkouter: Param2, dwclscontext: u32, piid: *const ::windows::core::GUID, ppdestmlstr: *mut ::core::option::Option<::windows::core::IUnknown>, pldestpos: *mut i32, pldestlen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.GetMLStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen), punkouter.into_param().abi(), ::core::mem::transmute(dwclscontext), ::core::mem::transmute(piid), ::core::mem::transmute(ppdestmlstr), ::core::mem::transmute(pldestpos), ::core::mem::transmute(pldestlen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetWStr<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, ldestpos: i32, ldestlen: i32, pszsrc: Param2, cchsrc: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).SetWStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(ldestpos), ::core::mem::transmute(ldestlen), pszsrc.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetStrBufW<'a, Param2: ::windows::core::IntoParam<'a, IMLangStringBufW>>(&self, ldestpos: i32, ldestlen: i32, psrcbuf: Param2, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).SetStrBufW)(::core::mem::transmute_copy(self), ::core::mem::transmute(ldestpos), ::core::mem::transmute(ldestlen), psrcbuf.into_param().abi(), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetWStr(&self, lsrcpos: i32, lsrclen: i32, pszdest: ::windows::core::PWSTR, cchdest: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetWStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen), ::core::mem::transmute(pszdest), ::core::mem::transmute(cchdest), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetStrBufW(&self, lsrcpos: i32, lsrcmaxlen: i32, ppdestbuf: *mut ::core::option::Option<IMLangStringBufW>, pldestlen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetStrBufW)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrcmaxlen), ::core::mem::transmute(ppdestbuf), ::core::mem::transmute(pldestlen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn LockWStr(&self, lsrcpos: i32, lsrclen: i32, lflags: i32, cchrequest: i32, ppszdest: *mut ::windows::core::PWSTR, pcchdest: *mut i32, pldestlen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).LockWStr)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrclen), ::core::mem::transmute(lflags), ::core::mem::transmute(cchrequest), ::core::mem::transmute(ppszdest), ::core::mem::transmute(pcchdest), ::core::mem::transmute(pldestlen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn UnlockWStr<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pszsrc: Param0, cchsrc: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).UnlockWStr)(::core::mem::transmute_copy(self), pszsrc.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetLocale(&self, ldestpos: i32, ldestlen: i32, locale: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).SetLocale)(::core::mem::transmute_copy(self), ::core::mem::transmute(ldestpos), ::core::mem::transmute(ldestlen), ::core::mem::transmute(locale)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetLocale(&self, lsrcpos: i32, lsrcmaxlen: i32, plocale: *mut u32, pllocalepos: *mut i32, pllocalelen: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetLocale)(::core::mem::transmute_copy(self), ::core::mem::transmute(lsrcpos), ::core::mem::transmute(lsrcmaxlen), ::core::mem::transmute(plocale), ::core::mem::transmute(pllocalepos), ::core::mem::transmute(pllocalelen)).ok()
    }
}
impl ::core::convert::From<IMLangStringWStr> for ::windows::core::IUnknown {
    fn from(value: IMLangStringWStr) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangStringWStr> for ::windows::core::IUnknown {
    fn from(value: &IMLangStringWStr) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMLangStringWStr {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMLangStringWStr {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IMLangStringWStr> for IMLangString {
    fn from(value: IMLangStringWStr) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMLangStringWStr> for IMLangString {
    fn from(value: &IMLangStringWStr) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, IMLangString> for IMLangStringWStr {
    fn into_param(self) -> ::windows::core::Param<'a, IMLangString> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, IMLangString> for &'a IMLangStringWStr {
    fn into_param(self) -> ::windows::core::Param<'a, IMLangString> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMLangStringWStr {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMLangStringWStr {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMLangStringWStr {}
impl ::core::fmt::Debug for IMLangStringWStr {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMLangStringWStr").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMLangStringWStr {
    type Vtable = IMLangStringWStr_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc04d65d0_b70d_11d0_b188_00aa0038c969);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMLangStringWStr_Vtbl {
    pub base: IMLangString_Vtbl,
    pub SetWStr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ldestpos: i32, ldestlen: i32, pszsrc: ::windows::core::PCWSTR, cchsrc: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::HRESULT,
    pub SetStrBufW: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ldestpos: i32, ldestlen: i32, psrcbuf: ::windows::core::RawPtr, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::HRESULT,
    pub GetWStr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsrcpos: i32, lsrclen: i32, pszdest: ::windows::core::PWSTR, cchdest: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::HRESULT,
    pub GetStrBufW: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsrcpos: i32, lsrcmaxlen: i32, ppdestbuf: *mut ::windows::core::RawPtr, pldestlen: *mut i32) -> ::windows::core::HRESULT,
    pub LockWStr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsrcpos: i32, lsrclen: i32, lflags: i32, cchrequest: i32, ppszdest: *mut ::windows::core::PWSTR, pcchdest: *mut i32, pldestlen: *mut i32) -> ::windows::core::HRESULT,
    pub UnlockWStr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszsrc: ::windows::core::PCWSTR, cchsrc: i32, pcchactual: *mut i32, plactuallen: *mut i32) -> ::windows::core::HRESULT,
    pub SetLocale: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ldestpos: i32, ldestlen: i32, locale: u32) -> ::windows::core::HRESULT,
    pub GetLocale: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsrcpos: i32, lsrcmaxlen: i32, plocale: *mut u32, pllocalepos: *mut i32, pllocalelen: *mut i32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMultiLanguage(::windows::core::IUnknown);
impl IMultiLanguage {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetNumberOfCodePageInfo(&self) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetNumberOfCodePageInfo)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetCodePageInfo(&self, uicodepage: u32) -> ::windows::core::Result<MIMECPINFO> {
        let mut result__: MIMECPINFO = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetCodePageInfo)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), ::core::mem::transmute(&mut result__)).from_abi::<MIMECPINFO>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetFamilyCodePage(&self, uicodepage: u32) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetFamilyCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn EnumCodePages(&self, grfflags: u32) -> ::windows::core::Result<IEnumCodePage> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).EnumCodePages)(::core::mem::transmute_copy(self), ::core::mem::transmute(grfflags), ::core::mem::transmute(&mut result__)).from_abi::<IEnumCodePage>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetCharsetInfo<'a, Param0: ::windows::core::IntoParam<'a, super::Foundation::BSTR>>(&self, charset: Param0) -> ::windows::core::Result<MIMECSETINFO> {
        let mut result__: MIMECSETINFO = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetCharsetInfo)(::core::mem::transmute_copy(self), charset.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<MIMECSETINFO>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn IsConvertible(&self, dwsrcencoding: u32, dwdstencoding: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).IsConvertible)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwsrcencoding), ::core::mem::transmute(dwdstencoding)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertString(&self, pdwmode: *mut u32, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: *const u8, pcsrcsize: *mut u32, pdststr: *mut u8, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertString)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwsrcencoding), ::core::mem::transmute(dwdstencoding), ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringToUnicode<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(&self, pdwmode: *mut u32, dwencoding: u32, psrcstr: Param2, pcsrcsize: *mut u32, pdststr: ::windows::core::PWSTR, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertStringToUnicode)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwencoding), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringFromUnicode<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pdwmode: *mut u32, dwencoding: u32, psrcstr: Param2, pcsrcsize: *mut u32, pdststr: ::windows::core::PSTR, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertStringFromUnicode)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwencoding), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringReset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertStringReset)(::core::mem::transmute_copy(self)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetRfc1766FromLcid(&self, locale: u32) -> ::windows::core::Result<super::Foundation::BSTR> {
        let mut result__: ::core::mem::ManuallyDrop<super::Foundation::BSTR> = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetRfc1766FromLcid)(::core::mem::transmute_copy(self), ::core::mem::transmute(locale), ::core::mem::transmute(&mut result__)).from_abi::<super::Foundation::BSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLcidFromRfc1766<'a, Param1: ::windows::core::IntoParam<'a, super::Foundation::BSTR>>(&self, plocale: *mut u32, bstrrfc1766: Param1) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetLcidFromRfc1766)(::core::mem::transmute_copy(self), ::core::mem::transmute(plocale), bstrrfc1766.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn EnumRfc1766(&self) -> ::windows::core::Result<IEnumRfc1766> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).EnumRfc1766)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<IEnumRfc1766>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetRfc1766Info(&self, locale: u32) -> ::windows::core::Result<RFC1766INFO> {
        let mut result__: RFC1766INFO = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetRfc1766Info)(::core::mem::transmute_copy(self), ::core::mem::transmute(locale), ::core::mem::transmute(&mut result__)).from_abi::<RFC1766INFO>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CreateConvertCharset(&self, uisrccodepage: u32, uidstcodepage: u32, dwproperty: u32) -> ::windows::core::Result<IMLangConvertCharset> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).CreateConvertCharset)(::core::mem::transmute_copy(self), ::core::mem::transmute(uisrccodepage), ::core::mem::transmute(uidstcodepage), ::core::mem::transmute(dwproperty), ::core::mem::transmute(&mut result__)).from_abi::<IMLangConvertCharset>(result__)
    }
}
impl ::core::convert::From<IMultiLanguage> for ::windows::core::IUnknown {
    fn from(value: IMultiLanguage) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMultiLanguage> for ::windows::core::IUnknown {
    fn from(value: &IMultiLanguage) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMultiLanguage {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMultiLanguage {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMultiLanguage {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMultiLanguage {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMultiLanguage {}
impl ::core::fmt::Debug for IMultiLanguage {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMultiLanguage").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMultiLanguage {
    type Vtable = IMultiLanguage_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x275c23e1_3747_11d0_9fea_00aa003f8646);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMultiLanguage_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub GetNumberOfCodePageInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pccodepage: *mut u32) -> ::windows::core::HRESULT,
    pub GetCodePageInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uicodepage: u32, pcodepageinfo: *mut MIMECPINFO) -> ::windows::core::HRESULT,
    pub GetFamilyCodePage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uicodepage: u32, puifamilycodepage: *mut u32) -> ::windows::core::HRESULT,
    pub EnumCodePages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, grfflags: u32, ppenumcodepage: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetCharsetInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, charset: ::core::mem::ManuallyDrop<super::Foundation::BSTR>, pcharsetinfo: *mut MIMECSETINFO) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetCharsetInfo: usize,
    pub IsConvertible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwsrcencoding: u32, dwdstencoding: u32) -> ::windows::core::HRESULT,
    pub ConvertString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwmode: *mut u32, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: *const u8, pcsrcsize: *mut u32, pdststr: *mut u8, pcdstsize: *mut u32) -> ::windows::core::HRESULT,
    pub ConvertStringToUnicode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwmode: *mut u32, dwencoding: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: *mut u32, pdststr: ::windows::core::PWSTR, pcdstsize: *mut u32) -> ::windows::core::HRESULT,
    pub ConvertStringFromUnicode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwmode: *mut u32, dwencoding: u32, psrcstr: ::windows::core::PCWSTR, pcsrcsize: *mut u32, pdststr: ::windows::core::PSTR, pcdstsize: *mut u32) -> ::windows::core::HRESULT,
    pub ConvertStringReset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetRfc1766FromLcid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locale: u32, pbstrrfc1766: *mut super::Foundation::BSTR) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetRfc1766FromLcid: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLcidFromRfc1766: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, plocale: *mut u32, bstrrfc1766: ::core::mem::ManuallyDrop<super::Foundation::BSTR>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLcidFromRfc1766: usize,
    pub EnumRfc1766: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppenumrfc1766: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetRfc1766Info: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locale: u32, prfc1766info: *mut RFC1766INFO) -> ::windows::core::HRESULT,
    pub CreateConvertCharset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uisrccodepage: u32, uidstcodepage: u32, dwproperty: u32, ppmlangconvertcharset: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMultiLanguage2(::windows::core::IUnknown);
impl IMultiLanguage2 {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetNumberOfCodePageInfo(&self) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetNumberOfCodePageInfo)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetCodePageInfo(&self, uicodepage: u32, langid: u16) -> ::windows::core::Result<MIMECPINFO> {
        let mut result__: MIMECPINFO = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetCodePageInfo)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), ::core::mem::transmute(langid), ::core::mem::transmute(&mut result__)).from_abi::<MIMECPINFO>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetFamilyCodePage(&self, uicodepage: u32) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetFamilyCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn EnumCodePages(&self, grfflags: u32, langid: u16) -> ::windows::core::Result<IEnumCodePage> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).EnumCodePages)(::core::mem::transmute_copy(self), ::core::mem::transmute(grfflags), ::core::mem::transmute(langid), ::core::mem::transmute(&mut result__)).from_abi::<IEnumCodePage>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetCharsetInfo<'a, Param0: ::windows::core::IntoParam<'a, super::Foundation::BSTR>>(&self, charset: Param0) -> ::windows::core::Result<MIMECSETINFO> {
        let mut result__: MIMECSETINFO = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetCharsetInfo)(::core::mem::transmute_copy(self), charset.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<MIMECSETINFO>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn IsConvertible(&self, dwsrcencoding: u32, dwdstencoding: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).IsConvertible)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwsrcencoding), ::core::mem::transmute(dwdstencoding)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertString(&self, pdwmode: *mut u32, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: *const u8, pcsrcsize: *mut u32, pdststr: *mut u8, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertString)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwsrcencoding), ::core::mem::transmute(dwdstencoding), ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringToUnicode<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(&self, pdwmode: *mut u32, dwencoding: u32, psrcstr: Param2, pcsrcsize: *mut u32, pdststr: ::windows::core::PWSTR, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertStringToUnicode)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwencoding), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringFromUnicode<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pdwmode: *mut u32, dwencoding: u32, psrcstr: Param2, pcsrcsize: *mut u32, pdststr: ::windows::core::PSTR, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertStringFromUnicode)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwencoding), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringReset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertStringReset)(::core::mem::transmute_copy(self)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetRfc1766FromLcid(&self, locale: u32) -> ::windows::core::Result<super::Foundation::BSTR> {
        let mut result__: ::core::mem::ManuallyDrop<super::Foundation::BSTR> = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetRfc1766FromLcid)(::core::mem::transmute_copy(self), ::core::mem::transmute(locale), ::core::mem::transmute(&mut result__)).from_abi::<super::Foundation::BSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLcidFromRfc1766<'a, Param1: ::windows::core::IntoParam<'a, super::Foundation::BSTR>>(&self, plocale: *mut u32, bstrrfc1766: Param1) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetLcidFromRfc1766)(::core::mem::transmute_copy(self), ::core::mem::transmute(plocale), bstrrfc1766.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn EnumRfc1766(&self, langid: u16) -> ::windows::core::Result<IEnumRfc1766> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).EnumRfc1766)(::core::mem::transmute_copy(self), ::core::mem::transmute(langid), ::core::mem::transmute(&mut result__)).from_abi::<IEnumRfc1766>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetRfc1766Info(&self, locale: u32, langid: u16) -> ::windows::core::Result<RFC1766INFO> {
        let mut result__: RFC1766INFO = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetRfc1766Info)(::core::mem::transmute_copy(self), ::core::mem::transmute(locale), ::core::mem::transmute(langid), ::core::mem::transmute(&mut result__)).from_abi::<RFC1766INFO>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CreateConvertCharset(&self, uisrccodepage: u32, uidstcodepage: u32, dwproperty: u32) -> ::windows::core::Result<IMLangConvertCharset> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).CreateConvertCharset)(::core::mem::transmute_copy(self), ::core::mem::transmute(uisrccodepage), ::core::mem::transmute(uidstcodepage), ::core::mem::transmute(dwproperty), ::core::mem::transmute(&mut result__)).from_abi::<IMLangConvertCharset>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn ConvertStringInIStream<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param5: ::windows::core::IntoParam<'a, super::System::Com::IStream>, Param6: ::windows::core::IntoParam<'a, super::System::Com::IStream>>(&self, pdwmode: *mut u32, dwflag: u32, lpfallback: Param2, dwsrcencoding: u32, dwdstencoding: u32, pstmin: Param5, pstmout: Param6) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertStringInIStream)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwflag), lpfallback.into_param().abi(), ::core::mem::transmute(dwsrcencoding), ::core::mem::transmute(dwdstencoding), pstmin.into_param().abi(), pstmout.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringToUnicodeEx<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param7: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pdwmode: *mut u32, dwencoding: u32, psrcstr: Param2, pcsrcsize: *mut u32, pdststr: ::windows::core::PWSTR, pcdstsize: *mut u32, dwflag: u32, lpfallback: Param7) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertStringToUnicodeEx)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwencoding), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize), ::core::mem::transmute(dwflag), lpfallback.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringFromUnicodeEx<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param7: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pdwmode: *mut u32, dwencoding: u32, psrcstr: Param2, pcsrcsize: *mut u32, pdststr: ::windows::core::PSTR, pcdstsize: *mut u32, dwflag: u32, lpfallback: Param7) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ConvertStringFromUnicodeEx)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwencoding), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize), ::core::mem::transmute(dwflag), lpfallback.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn DetectCodepageInIStream<'a, Param2: ::windows::core::IntoParam<'a, super::System::Com::IStream>>(&self, dwflag: u32, dwprefwincodepage: u32, pstmin: Param2, lpencoding: *mut DetectEncodingInfo, pnscores: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).DetectCodepageInIStream)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwflag), ::core::mem::transmute(dwprefwincodepage), pstmin.into_param().abi(), ::core::mem::transmute(lpencoding), ::core::mem::transmute(pnscores)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn DetectInputCodepage<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(&self, dwflag: u32, dwprefwincodepage: u32, psrcstr: Param2, pcsrcsize: *mut i32, lpencoding: *mut DetectEncodingInfo, pnscores: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).DetectInputCodepage)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwflag), ::core::mem::transmute(dwprefwincodepage), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(lpencoding), ::core::mem::transmute(pnscores)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn ValidateCodePage<'a, Param1: ::windows::core::IntoParam<'a, super::Foundation::HWND>>(&self, uicodepage: u32, hwnd: Param1) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ValidateCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), hwnd.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetCodePageDescription(&self, uicodepage: u32, lcid: u32, lpwidecharstr: ::windows::core::PWSTR, cchwidechar: i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).GetCodePageDescription)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), ::core::mem::transmute(lcid), ::core::mem::transmute(lpwidecharstr), ::core::mem::transmute(cchwidechar)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn IsCodePageInstallable(&self, uicodepage: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).IsCodePageInstallable)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetMimeDBSource(&self, dwsource: MIMECONTF) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).SetMimeDBSource)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwsource)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetNumberOfScripts(&self) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetNumberOfScripts)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn EnumScripts(&self, dwflags: u32, langid: u16) -> ::windows::core::Result<IEnumScript> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).EnumScripts)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwflags), ::core::mem::transmute(langid), ::core::mem::transmute(&mut result__)).from_abi::<IEnumScript>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn ValidateCodePageEx<'a, Param1: ::windows::core::IntoParam<'a, super::Foundation::HWND>>(&self, uicodepage: u32, hwnd: Param1, dwfiodcontrol: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).ValidateCodePageEx)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), hwnd.into_param().abi(), ::core::mem::transmute(dwfiodcontrol)).ok()
    }
}
impl ::core::convert::From<IMultiLanguage2> for ::windows::core::IUnknown {
    fn from(value: IMultiLanguage2) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMultiLanguage2> for ::windows::core::IUnknown {
    fn from(value: &IMultiLanguage2) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMultiLanguage2 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMultiLanguage2 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMultiLanguage2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMultiLanguage2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMultiLanguage2 {}
impl ::core::fmt::Debug for IMultiLanguage2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMultiLanguage2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMultiLanguage2 {
    type Vtable = IMultiLanguage2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdccfc164_2b38_11d2_b7ec_00c04f8f5d9a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMultiLanguage2_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub GetNumberOfCodePageInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pccodepage: *mut u32) -> ::windows::core::HRESULT,
    pub GetCodePageInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uicodepage: u32, langid: u16, pcodepageinfo: *mut MIMECPINFO) -> ::windows::core::HRESULT,
    pub GetFamilyCodePage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uicodepage: u32, puifamilycodepage: *mut u32) -> ::windows::core::HRESULT,
    pub EnumCodePages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, grfflags: u32, langid: u16, ppenumcodepage: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetCharsetInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, charset: ::core::mem::ManuallyDrop<super::Foundation::BSTR>, pcharsetinfo: *mut MIMECSETINFO) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetCharsetInfo: usize,
    pub IsConvertible: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwsrcencoding: u32, dwdstencoding: u32) -> ::windows::core::HRESULT,
    pub ConvertString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwmode: *mut u32, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: *const u8, pcsrcsize: *mut u32, pdststr: *mut u8, pcdstsize: *mut u32) -> ::windows::core::HRESULT,
    pub ConvertStringToUnicode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwmode: *mut u32, dwencoding: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: *mut u32, pdststr: ::windows::core::PWSTR, pcdstsize: *mut u32) -> ::windows::core::HRESULT,
    pub ConvertStringFromUnicode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwmode: *mut u32, dwencoding: u32, psrcstr: ::windows::core::PCWSTR, pcsrcsize: *mut u32, pdststr: ::windows::core::PSTR, pcdstsize: *mut u32) -> ::windows::core::HRESULT,
    pub ConvertStringReset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetRfc1766FromLcid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locale: u32, pbstrrfc1766: *mut super::Foundation::BSTR) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetRfc1766FromLcid: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLcidFromRfc1766: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, plocale: *mut u32, bstrrfc1766: ::core::mem::ManuallyDrop<super::Foundation::BSTR>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLcidFromRfc1766: usize,
    pub EnumRfc1766: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, langid: u16, ppenumrfc1766: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub GetRfc1766Info: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locale: u32, langid: u16, prfc1766info: *mut RFC1766INFO) -> ::windows::core::HRESULT,
    pub CreateConvertCharset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uisrccodepage: u32, uidstcodepage: u32, dwproperty: u32, ppmlangconvertcharset: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub ConvertStringInIStream: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwmode: *mut u32, dwflag: u32, lpfallback: ::windows::core::PCWSTR, dwsrcencoding: u32, dwdstencoding: u32, pstmin: ::windows::core::RawPtr, pstmout: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    ConvertStringInIStream: usize,
    pub ConvertStringToUnicodeEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwmode: *mut u32, dwencoding: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: *mut u32, pdststr: ::windows::core::PWSTR, pcdstsize: *mut u32, dwflag: u32, lpfallback: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub ConvertStringFromUnicodeEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwmode: *mut u32, dwencoding: u32, psrcstr: ::windows::core::PCWSTR, pcsrcsize: *mut u32, pdststr: ::windows::core::PSTR, pcdstsize: *mut u32, dwflag: u32, lpfallback: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub DetectCodepageInIStream: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwflag: u32, dwprefwincodepage: u32, pstmin: ::windows::core::RawPtr, lpencoding: *mut DetectEncodingInfo, pnscores: *mut i32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    DetectCodepageInIStream: usize,
    pub DetectInputCodepage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwflag: u32, dwprefwincodepage: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: *mut i32, lpencoding: *mut DetectEncodingInfo, pnscores: *mut i32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub ValidateCodePage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uicodepage: u32, hwnd: super::Foundation::HWND) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    ValidateCodePage: usize,
    pub GetCodePageDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uicodepage: u32, lcid: u32, lpwidecharstr: ::windows::core::PWSTR, cchwidechar: i32) -> ::windows::core::HRESULT,
    pub IsCodePageInstallable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uicodepage: u32) -> ::windows::core::HRESULT,
    pub SetMimeDBSource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwsource: MIMECONTF) -> ::windows::core::HRESULT,
    pub GetNumberOfScripts: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pnscripts: *mut u32) -> ::windows::core::HRESULT,
    pub EnumScripts: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwflags: u32, langid: u16, ppenumscript: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub ValidateCodePageEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uicodepage: u32, hwnd: super::Foundation::HWND, dwfiodcontrol: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    ValidateCodePageEx: usize,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IMultiLanguage3(::windows::core::IUnknown);
impl IMultiLanguage3 {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetNumberOfCodePageInfo(&self) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetNumberOfCodePageInfo)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetCodePageInfo(&self, uicodepage: u32, langid: u16) -> ::windows::core::Result<MIMECPINFO> {
        let mut result__: MIMECPINFO = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetCodePageInfo)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), ::core::mem::transmute(langid), ::core::mem::transmute(&mut result__)).from_abi::<MIMECPINFO>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetFamilyCodePage(&self, uicodepage: u32) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetFamilyCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn EnumCodePages(&self, grfflags: u32, langid: u16) -> ::windows::core::Result<IEnumCodePage> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.EnumCodePages)(::core::mem::transmute_copy(self), ::core::mem::transmute(grfflags), ::core::mem::transmute(langid), ::core::mem::transmute(&mut result__)).from_abi::<IEnumCodePage>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetCharsetInfo<'a, Param0: ::windows::core::IntoParam<'a, super::Foundation::BSTR>>(&self, charset: Param0) -> ::windows::core::Result<MIMECSETINFO> {
        let mut result__: MIMECSETINFO = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetCharsetInfo)(::core::mem::transmute_copy(self), charset.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<MIMECSETINFO>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn IsConvertible(&self, dwsrcencoding: u32, dwdstencoding: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.IsConvertible)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwsrcencoding), ::core::mem::transmute(dwdstencoding)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertString(&self, pdwmode: *mut u32, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: *const u8, pcsrcsize: *mut u32, pdststr: *mut u8, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.ConvertString)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwsrcencoding), ::core::mem::transmute(dwdstencoding), ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringToUnicode<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(&self, pdwmode: *mut u32, dwencoding: u32, psrcstr: Param2, pcsrcsize: *mut u32, pdststr: ::windows::core::PWSTR, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.ConvertStringToUnicode)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwencoding), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringFromUnicode<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pdwmode: *mut u32, dwencoding: u32, psrcstr: Param2, pcsrcsize: *mut u32, pdststr: ::windows::core::PSTR, pcdstsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.ConvertStringFromUnicode)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwencoding), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringReset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.ConvertStringReset)(::core::mem::transmute_copy(self)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetRfc1766FromLcid(&self, locale: u32) -> ::windows::core::Result<super::Foundation::BSTR> {
        let mut result__: ::core::mem::ManuallyDrop<super::Foundation::BSTR> = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetRfc1766FromLcid)(::core::mem::transmute_copy(self), ::core::mem::transmute(locale), ::core::mem::transmute(&mut result__)).from_abi::<super::Foundation::BSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLcidFromRfc1766<'a, Param1: ::windows::core::IntoParam<'a, super::Foundation::BSTR>>(&self, plocale: *mut u32, bstrrfc1766: Param1) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.GetLcidFromRfc1766)(::core::mem::transmute_copy(self), ::core::mem::transmute(plocale), bstrrfc1766.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn EnumRfc1766(&self, langid: u16) -> ::windows::core::Result<IEnumRfc1766> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.EnumRfc1766)(::core::mem::transmute_copy(self), ::core::mem::transmute(langid), ::core::mem::transmute(&mut result__)).from_abi::<IEnumRfc1766>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetRfc1766Info(&self, locale: u32, langid: u16) -> ::windows::core::Result<RFC1766INFO> {
        let mut result__: RFC1766INFO = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetRfc1766Info)(::core::mem::transmute_copy(self), ::core::mem::transmute(locale), ::core::mem::transmute(langid), ::core::mem::transmute(&mut result__)).from_abi::<RFC1766INFO>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CreateConvertCharset(&self, uisrccodepage: u32, uidstcodepage: u32, dwproperty: u32) -> ::windows::core::Result<IMLangConvertCharset> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.CreateConvertCharset)(::core::mem::transmute_copy(self), ::core::mem::transmute(uisrccodepage), ::core::mem::transmute(uidstcodepage), ::core::mem::transmute(dwproperty), ::core::mem::transmute(&mut result__)).from_abi::<IMLangConvertCharset>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn ConvertStringInIStream<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param5: ::windows::core::IntoParam<'a, super::System::Com::IStream>, Param6: ::windows::core::IntoParam<'a, super::System::Com::IStream>>(&self, pdwmode: *mut u32, dwflag: u32, lpfallback: Param2, dwsrcencoding: u32, dwdstencoding: u32, pstmin: Param5, pstmout: Param6) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.ConvertStringInIStream)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwflag), lpfallback.into_param().abi(), ::core::mem::transmute(dwsrcencoding), ::core::mem::transmute(dwdstencoding), pstmin.into_param().abi(), pstmout.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringToUnicodeEx<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param7: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pdwmode: *mut u32, dwencoding: u32, psrcstr: Param2, pcsrcsize: *mut u32, pdststr: ::windows::core::PWSTR, pcdstsize: *mut u32, dwflag: u32, lpfallback: Param7) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.ConvertStringToUnicodeEx)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwencoding), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize), ::core::mem::transmute(dwflag), lpfallback.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ConvertStringFromUnicodeEx<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param7: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, pdwmode: *mut u32, dwencoding: u32, psrcstr: Param2, pcsrcsize: *mut u32, pdststr: ::windows::core::PSTR, pcdstsize: *mut u32, dwflag: u32, lpfallback: Param7) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.ConvertStringFromUnicodeEx)(::core::mem::transmute_copy(self), ::core::mem::transmute(pdwmode), ::core::mem::transmute(dwencoding), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize), ::core::mem::transmute(dwflag), lpfallback.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn DetectCodepageInIStream<'a, Param2: ::windows::core::IntoParam<'a, super::System::Com::IStream>>(&self, dwflag: u32, dwprefwincodepage: u32, pstmin: Param2, lpencoding: *mut DetectEncodingInfo, pnscores: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.DetectCodepageInIStream)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwflag), ::core::mem::transmute(dwprefwincodepage), pstmin.into_param().abi(), ::core::mem::transmute(lpencoding), ::core::mem::transmute(pnscores)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn DetectInputCodepage<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(&self, dwflag: u32, dwprefwincodepage: u32, psrcstr: Param2, pcsrcsize: *mut i32, lpencoding: *mut DetectEncodingInfo, pnscores: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.DetectInputCodepage)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwflag), ::core::mem::transmute(dwprefwincodepage), psrcstr.into_param().abi(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(lpencoding), ::core::mem::transmute(pnscores)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn ValidateCodePage<'a, Param1: ::windows::core::IntoParam<'a, super::Foundation::HWND>>(&self, uicodepage: u32, hwnd: Param1) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.ValidateCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), hwnd.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetCodePageDescription(&self, uicodepage: u32, lcid: u32, lpwidecharstr: ::windows::core::PWSTR, cchwidechar: i32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.GetCodePageDescription)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), ::core::mem::transmute(lcid), ::core::mem::transmute(lpwidecharstr), ::core::mem::transmute(cchwidechar)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn IsCodePageInstallable(&self, uicodepage: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.IsCodePageInstallable)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetMimeDBSource(&self, dwsource: MIMECONTF) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.SetMimeDBSource)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwsource)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetNumberOfScripts(&self) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetNumberOfScripts)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn EnumScripts(&self, dwflags: u32, langid: u16) -> ::windows::core::Result<IEnumScript> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.EnumScripts)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwflags), ::core::mem::transmute(langid), ::core::mem::transmute(&mut result__)).from_abi::<IEnumScript>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn ValidateCodePageEx<'a, Param1: ::windows::core::IntoParam<'a, super::Foundation::HWND>>(&self, uicodepage: u32, hwnd: Param1, dwfiodcontrol: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.ValidateCodePageEx)(::core::mem::transmute_copy(self), ::core::mem::transmute(uicodepage), hwnd.into_param().abi(), ::core::mem::transmute(dwfiodcontrol)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn DetectOutboundCodePage<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param7: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, dwflags: u32, lpwidecharstr: Param1, cchwidechar: u32, puipreferredcodepages: *const u32, npreferredcodepages: u32, puidetectedcodepages: *mut u32, pndetectedcodepages: *mut u32, lpspecialchar: Param7) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).DetectOutboundCodePage)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwflags), lpwidecharstr.into_param().abi(), ::core::mem::transmute(cchwidechar), ::core::mem::transmute(puipreferredcodepages), ::core::mem::transmute(npreferredcodepages), ::core::mem::transmute(puidetectedcodepages), ::core::mem::transmute(pndetectedcodepages), lpspecialchar.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn DetectOutboundCodePageInIStream<'a, Param1: ::windows::core::IntoParam<'a, super::System::Com::IStream>, Param6: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, dwflags: u32, pstrin: Param1, puipreferredcodepages: *const u32, npreferredcodepages: u32, puidetectedcodepages: *mut u32, pndetectedcodepages: *mut u32, lpspecialchar: Param6) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).DetectOutboundCodePageInIStream)(::core::mem::transmute_copy(self), ::core::mem::transmute(dwflags), pstrin.into_param().abi(), ::core::mem::transmute(puipreferredcodepages), ::core::mem::transmute(npreferredcodepages), ::core::mem::transmute(puidetectedcodepages), ::core::mem::transmute(pndetectedcodepages), lpspecialchar.into_param().abi()).ok()
    }
}
impl ::core::convert::From<IMultiLanguage3> for ::windows::core::IUnknown {
    fn from(value: IMultiLanguage3) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMultiLanguage3> for ::windows::core::IUnknown {
    fn from(value: &IMultiLanguage3) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IMultiLanguage3 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IMultiLanguage3 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<IMultiLanguage3> for IMultiLanguage2 {
    fn from(value: IMultiLanguage3) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IMultiLanguage3> for IMultiLanguage2 {
    fn from(value: &IMultiLanguage3) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, IMultiLanguage2> for IMultiLanguage3 {
    fn into_param(self) -> ::windows::core::Param<'a, IMultiLanguage2> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, IMultiLanguage2> for &'a IMultiLanguage3 {
    fn into_param(self) -> ::windows::core::Param<'a, IMultiLanguage2> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IMultiLanguage3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMultiLanguage3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMultiLanguage3 {}
impl ::core::fmt::Debug for IMultiLanguage3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMultiLanguage3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IMultiLanguage3 {
    type Vtable = IMultiLanguage3_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4e5868ab_b157_4623_9acc_6a1d9caebe04);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMultiLanguage3_Vtbl {
    pub base: IMultiLanguage2_Vtbl,
    pub DetectOutboundCodePage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwflags: u32, lpwidecharstr: ::windows::core::PCWSTR, cchwidechar: u32, puipreferredcodepages: *const u32, npreferredcodepages: u32, puidetectedcodepages: *mut u32, pndetectedcodepages: *mut u32, lpspecialchar: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub DetectOutboundCodePageInIStream: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwflags: u32, pstrin: ::windows::core::RawPtr, puipreferredcodepages: *const u32, npreferredcodepages: u32, puidetectedcodepages: *mut u32, pndetectedcodepages: *mut u32, lpspecialchar: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    DetectOutboundCodePageInIStream: usize,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IOptionDescription(::windows::core::IUnknown);
impl IOptionDescription {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Id(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Id)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Heading(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Heading)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Description(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Description)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn Labels(&self) -> ::windows::core::Result<super::System::Com::IEnumString> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Labels)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<super::System::Com::IEnumString>(result__)
    }
}
impl ::core::convert::From<IOptionDescription> for ::windows::core::IUnknown {
    fn from(value: IOptionDescription) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IOptionDescription> for ::windows::core::IUnknown {
    fn from(value: &IOptionDescription) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IOptionDescription {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IOptionDescription {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IOptionDescription {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IOptionDescription {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IOptionDescription {}
impl ::core::fmt::Debug for IOptionDescription {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IOptionDescription").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IOptionDescription {
    type Vtable = IOptionDescription_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x432e5f85_35cf_4606_a801_6f70277e1d7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IOptionDescription_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Id: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
    pub Heading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
    pub Description: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub Labels: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    Labels: usize,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct IS_TEXT_UNICODE_RESULT(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_ASCII16: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(1u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_REVERSE_ASCII16: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(16u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_STATISTICS: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(2u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_REVERSE_STATISTICS: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(32u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_CONTROLS: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(4u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_REVERSE_CONTROLS: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(64u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_SIGNATURE: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(8u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_REVERSE_SIGNATURE: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(128u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_ILLEGAL_CHARS: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(256u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_ODD_LENGTH: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(512u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_NULL_BYTES: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(4096u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_UNICODE_MASK: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(15u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_REVERSE_MASK: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(240u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_NOT_UNICODE_MASK: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(3840u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const IS_TEXT_UNICODE_NOT_ASCII_MASK: IS_TEXT_UNICODE_RESULT = IS_TEXT_UNICODE_RESULT(61440u32);
impl ::core::marker::Copy for IS_TEXT_UNICODE_RESULT {}
impl ::core::clone::Clone for IS_TEXT_UNICODE_RESULT {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IS_TEXT_UNICODE_RESULT {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IS_TEXT_UNICODE_RESULT {
    type Abi = Self;
}
impl ::core::fmt::Debug for IS_TEXT_UNICODE_RESULT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IS_TEXT_UNICODE_RESULT").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for IS_TEXT_UNICODE_RESULT {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for IS_TEXT_UNICODE_RESULT {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for IS_TEXT_UNICODE_RESULT {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for IS_TEXT_UNICODE_RESULT {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for IS_TEXT_UNICODE_RESULT {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct IS_VALID_LOCALE_FLAGS(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCID_INSTALLED: IS_VALID_LOCALE_FLAGS = IS_VALID_LOCALE_FLAGS(1u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCID_SUPPORTED: IS_VALID_LOCALE_FLAGS = IS_VALID_LOCALE_FLAGS(2u32);
impl ::core::marker::Copy for IS_VALID_LOCALE_FLAGS {}
impl ::core::clone::Clone for IS_VALID_LOCALE_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IS_VALID_LOCALE_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IS_VALID_LOCALE_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for IS_VALID_LOCALE_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IS_VALID_LOCALE_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct ISpellCheckProvider(::windows::core::IUnknown);
impl ISpellCheckProvider {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn LanguageTag(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).LanguageTag)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Check<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, text: Param0) -> ::windows::core::Result<IEnumSpellingError> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Check)(::core::mem::transmute_copy(self), text.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<IEnumSpellingError>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn Suggest<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, word: Param0) -> ::windows::core::Result<super::System::Com::IEnumString> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Suggest)(::core::mem::transmute_copy(self), word.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<super::System::Com::IEnumString>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetOptionValue<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, optionid: Param0) -> ::windows::core::Result<u8> {
        let mut result__: u8 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetOptionValue)(::core::mem::transmute_copy(self), optionid.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<u8>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SetOptionValue<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, optionid: Param0, value: u8) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).SetOptionValue)(::core::mem::transmute_copy(self), optionid.into_param().abi(), ::core::mem::transmute(value)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn OptionIds(&self) -> ::windows::core::Result<super::System::Com::IEnumString> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).OptionIds)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<super::System::Com::IEnumString>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Id(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Id)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn LocalizedName(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).LocalizedName)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetOptionDescription<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, optionid: Param0) -> ::windows::core::Result<IOptionDescription> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetOptionDescription)(::core::mem::transmute_copy(self), optionid.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<IOptionDescription>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn InitializeWordlist<'a, Param1: ::windows::core::IntoParam<'a, super::System::Com::IEnumString>>(&self, wordlisttype: WORDLIST_TYPE, words: Param1) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).InitializeWordlist)(::core::mem::transmute_copy(self), ::core::mem::transmute(wordlisttype), words.into_param().abi()).ok()
    }
}
impl ::core::convert::From<ISpellCheckProvider> for ::windows::core::IUnknown {
    fn from(value: ISpellCheckProvider) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ISpellCheckProvider> for ::windows::core::IUnknown {
    fn from(value: &ISpellCheckProvider) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ISpellCheckProvider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ISpellCheckProvider {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for ISpellCheckProvider {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ISpellCheckProvider {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ISpellCheckProvider {}
impl ::core::fmt::Debug for ISpellCheckProvider {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ISpellCheckProvider").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for ISpellCheckProvider {
    type Vtable = ISpellCheckProvider_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x73e976e0_8ed4_4eb1_80d7_1be0a16b0c38);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpellCheckProvider_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub LanguageTag: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
    pub Check: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, text: ::windows::core::PCWSTR, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub Suggest: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, word: ::windows::core::PCWSTR, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    Suggest: usize,
    pub GetOptionValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, optionid: ::windows::core::PCWSTR, value: *mut u8) -> ::windows::core::HRESULT,
    pub SetOptionValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, optionid: ::windows::core::PCWSTR, value: u8) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub OptionIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    OptionIds: usize,
    pub Id: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
    pub LocalizedName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
    pub GetOptionDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, optionid: ::windows::core::PCWSTR, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub InitializeWordlist: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, wordlisttype: WORDLIST_TYPE, words: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    InitializeWordlist: usize,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct ISpellCheckProviderFactory(::windows::core::IUnknown);
impl ISpellCheckProviderFactory {
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn SupportedLanguages(&self) -> ::windows::core::Result<super::System::Com::IEnumString> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).SupportedLanguages)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<super::System::Com::IEnumString>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn IsSupported<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, languagetag: Param0) -> ::windows::core::Result<super::Foundation::BOOL> {
        let mut result__: super::Foundation::BOOL = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).IsSupported)(::core::mem::transmute_copy(self), languagetag.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<super::Foundation::BOOL>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CreateSpellCheckProvider<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, languagetag: Param0) -> ::windows::core::Result<ISpellCheckProvider> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).CreateSpellCheckProvider)(::core::mem::transmute_copy(self), languagetag.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<ISpellCheckProvider>(result__)
    }
}
impl ::core::convert::From<ISpellCheckProviderFactory> for ::windows::core::IUnknown {
    fn from(value: ISpellCheckProviderFactory) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ISpellCheckProviderFactory> for ::windows::core::IUnknown {
    fn from(value: &ISpellCheckProviderFactory) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ISpellCheckProviderFactory {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ISpellCheckProviderFactory {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for ISpellCheckProviderFactory {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ISpellCheckProviderFactory {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ISpellCheckProviderFactory {}
impl ::core::fmt::Debug for ISpellCheckProviderFactory {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ISpellCheckProviderFactory").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for ISpellCheckProviderFactory {
    type Vtable = ISpellCheckProviderFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9f671e11_77d6_4c92_aefb_615215e3a4be);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpellCheckProviderFactory_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    #[cfg(feature = "Win32_System_Com")]
    pub SupportedLanguages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    SupportedLanguages: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub IsSupported: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, languagetag: ::windows::core::PCWSTR, value: *mut super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    IsSupported: usize,
    pub CreateSpellCheckProvider: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, languagetag: ::windows::core::PCWSTR, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct ISpellChecker(::windows::core::IUnknown);
impl ISpellChecker {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn LanguageTag(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).LanguageTag)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Check<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, text: Param0) -> ::windows::core::Result<IEnumSpellingError> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Check)(::core::mem::transmute_copy(self), text.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<IEnumSpellingError>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn Suggest<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, word: Param0) -> ::windows::core::Result<super::System::Com::IEnumString> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Suggest)(::core::mem::transmute_copy(self), word.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<super::System::Com::IEnumString>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Add<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, word: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Add)(::core::mem::transmute_copy(self), word.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Ignore<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, word: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Ignore)(::core::mem::transmute_copy(self), word.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn AutoCorrect<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, from: Param0, to: Param1) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).AutoCorrect)(::core::mem::transmute_copy(self), from.into_param().abi(), to.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetOptionValue<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, optionid: Param0) -> ::windows::core::Result<u8> {
        let mut result__: u8 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetOptionValue)(::core::mem::transmute_copy(self), optionid.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<u8>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn OptionIds(&self) -> ::windows::core::Result<super::System::Com::IEnumString> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).OptionIds)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<super::System::Com::IEnumString>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Id(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Id)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn LocalizedName(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).LocalizedName)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SpellCheckerChanged<'a, Param0: ::windows::core::IntoParam<'a, ISpellCheckerChangedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).SpellCheckerChanged)(::core::mem::transmute_copy(self), handler.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn RemoveSpellCheckerChanged(&self, eventcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).RemoveSpellCheckerChanged)(::core::mem::transmute_copy(self), ::core::mem::transmute(eventcookie)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetOptionDescription<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, optionid: Param0) -> ::windows::core::Result<IOptionDescription> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).GetOptionDescription)(::core::mem::transmute_copy(self), optionid.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<IOptionDescription>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ComprehensiveCheck<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, text: Param0) -> ::windows::core::Result<IEnumSpellingError> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).ComprehensiveCheck)(::core::mem::transmute_copy(self), text.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<IEnumSpellingError>(result__)
    }
}
impl ::core::convert::From<ISpellChecker> for ::windows::core::IUnknown {
    fn from(value: ISpellChecker) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ISpellChecker> for ::windows::core::IUnknown {
    fn from(value: &ISpellChecker) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ISpellChecker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ISpellChecker {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for ISpellChecker {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ISpellChecker {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ISpellChecker {}
impl ::core::fmt::Debug for ISpellChecker {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ISpellChecker").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for ISpellChecker {
    type Vtable = ISpellChecker_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb6fd0b71_e2bc_4653_8d05_f197e412770b);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpellChecker_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub LanguageTag: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
    pub Check: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, text: ::windows::core::PCWSTR, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub Suggest: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, word: ::windows::core::PCWSTR, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    Suggest: usize,
    pub Add: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, word: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub Ignore: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, word: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AutoCorrect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, from: ::windows::core::PCWSTR, to: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetOptionValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, optionid: ::windows::core::PCWSTR, value: *mut u8) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub OptionIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    OptionIds: usize,
    pub Id: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
    pub LocalizedName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
    pub SpellCheckerChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: ::windows::core::RawPtr, eventcookie: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveSpellCheckerChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventcookie: u32) -> ::windows::core::HRESULT,
    pub GetOptionDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, optionid: ::windows::core::PCWSTR, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    pub ComprehensiveCheck: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, text: ::windows::core::PCWSTR, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct ISpellChecker2(::windows::core::IUnknown);
impl ISpellChecker2 {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn LanguageTag(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.LanguageTag)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Check<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, text: Param0) -> ::windows::core::Result<IEnumSpellingError> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.Check)(::core::mem::transmute_copy(self), text.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<IEnumSpellingError>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn Suggest<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, word: Param0) -> ::windows::core::Result<super::System::Com::IEnumString> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.Suggest)(::core::mem::transmute_copy(self), word.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<super::System::Com::IEnumString>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Add<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, word: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.Add)(::core::mem::transmute_copy(self), word.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Ignore<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, word: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.Ignore)(::core::mem::transmute_copy(self), word.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn AutoCorrect<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, from: Param0, to: Param1) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.AutoCorrect)(::core::mem::transmute_copy(self), from.into_param().abi(), to.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetOptionValue<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, optionid: Param0) -> ::windows::core::Result<u8> {
        let mut result__: u8 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetOptionValue)(::core::mem::transmute_copy(self), optionid.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<u8>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn OptionIds(&self) -> ::windows::core::Result<super::System::Com::IEnumString> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.OptionIds)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<super::System::Com::IEnumString>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Id(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.Id)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn LocalizedName(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.LocalizedName)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn SpellCheckerChanged<'a, Param0: ::windows::core::IntoParam<'a, ISpellCheckerChangedEventHandler>>(&self, handler: Param0) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.SpellCheckerChanged)(::core::mem::transmute_copy(self), handler.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn RemoveSpellCheckerChanged(&self, eventcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).base.RemoveSpellCheckerChanged)(::core::mem::transmute_copy(self), ::core::mem::transmute(eventcookie)).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn GetOptionDescription<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, optionid: Param0) -> ::windows::core::Result<IOptionDescription> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.GetOptionDescription)(::core::mem::transmute_copy(self), optionid.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<IOptionDescription>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn ComprehensiveCheck<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, text: Param0) -> ::windows::core::Result<IEnumSpellingError> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).base.ComprehensiveCheck)(::core::mem::transmute_copy(self), text.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<IEnumSpellingError>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Remove<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, word: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Remove)(::core::mem::transmute_copy(self), word.into_param().abi()).ok()
    }
}
impl ::core::convert::From<ISpellChecker2> for ::windows::core::IUnknown {
    fn from(value: ISpellChecker2) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ISpellChecker2> for ::windows::core::IUnknown {
    fn from(value: &ISpellChecker2) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ISpellChecker2 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ISpellChecker2 {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::convert::From<ISpellChecker2> for ISpellChecker {
    fn from(value: ISpellChecker2) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ISpellChecker2> for ISpellChecker {
    fn from(value: &ISpellChecker2) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISpellChecker> for ISpellChecker2 {
    fn into_param(self) -> ::windows::core::Param<'a, ISpellChecker> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ISpellChecker> for &'a ISpellChecker2 {
    fn into_param(self) -> ::windows::core::Param<'a, ISpellChecker> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for ISpellChecker2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ISpellChecker2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ISpellChecker2 {}
impl ::core::fmt::Debug for ISpellChecker2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ISpellChecker2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for ISpellChecker2 {
    type Vtable = ISpellChecker2_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe7ed1c71_87f7_4378_a840_c9200dacee47);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpellChecker2_Vtbl {
    pub base: ISpellChecker_Vtbl,
    pub Remove: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, word: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct ISpellCheckerChangedEventHandler(::windows::core::IUnknown);
impl ISpellCheckerChangedEventHandler {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Invoke<'a, Param0: ::windows::core::IntoParam<'a, ISpellChecker>>(&self, sender: Param0) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).Invoke)(::core::mem::transmute_copy(self), sender.into_param().abi()).ok()
    }
}
impl ::core::convert::From<ISpellCheckerChangedEventHandler> for ::windows::core::IUnknown {
    fn from(value: ISpellCheckerChangedEventHandler) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ISpellCheckerChangedEventHandler> for ::windows::core::IUnknown {
    fn from(value: &ISpellCheckerChangedEventHandler) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ISpellCheckerChangedEventHandler {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ISpellCheckerChangedEventHandler {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for ISpellCheckerChangedEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ISpellCheckerChangedEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ISpellCheckerChangedEventHandler {}
impl ::core::fmt::Debug for ISpellCheckerChangedEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ISpellCheckerChangedEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for ISpellCheckerChangedEventHandler {
    type Vtable = ISpellCheckerChangedEventHandler_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0b83a5b0_792f_4eab_9799_acf52c5ed08a);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpellCheckerChangedEventHandler_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub Invoke: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sender: ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct ISpellCheckerFactory(::windows::core::IUnknown);
impl ISpellCheckerFactory {
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_System_Com'*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn SupportedLanguages(&self) -> ::windows::core::Result<super::System::Com::IEnumString> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).SupportedLanguages)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<super::System::Com::IEnumString>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn IsSupported<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, languagetag: Param0) -> ::windows::core::Result<super::Foundation::BOOL> {
        let mut result__: super::Foundation::BOOL = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).IsSupported)(::core::mem::transmute_copy(self), languagetag.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<super::Foundation::BOOL>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CreateSpellChecker<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, languagetag: Param0) -> ::windows::core::Result<ISpellChecker> {
        let mut result__: ::windows::core::RawPtr = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).CreateSpellChecker)(::core::mem::transmute_copy(self), languagetag.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<ISpellChecker>(result__)
    }
}
impl ::core::convert::From<ISpellCheckerFactory> for ::windows::core::IUnknown {
    fn from(value: ISpellCheckerFactory) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ISpellCheckerFactory> for ::windows::core::IUnknown {
    fn from(value: &ISpellCheckerFactory) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ISpellCheckerFactory {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ISpellCheckerFactory {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for ISpellCheckerFactory {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ISpellCheckerFactory {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ISpellCheckerFactory {}
impl ::core::fmt::Debug for ISpellCheckerFactory {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ISpellCheckerFactory").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for ISpellCheckerFactory {
    type Vtable = ISpellCheckerFactory_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8e018a9d_2415_4677_bf08_794ea61f94bb);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpellCheckerFactory_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    #[cfg(feature = "Win32_System_Com")]
    pub SupportedLanguages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    SupportedLanguages: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub IsSupported: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, languagetag: ::windows::core::PCWSTR, value: *mut super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    IsSupported: usize,
    pub CreateSpellChecker: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, languagetag: ::windows::core::PCWSTR, value: *mut ::windows::core::RawPtr) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct ISpellingError(::windows::core::IUnknown);
impl ISpellingError {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn StartIndex(&self) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).StartIndex)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Length(&self) -> ::windows::core::Result<u32> {
        let mut result__: u32 = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Length)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn CorrectiveAction(&self) -> ::windows::core::Result<CORRECTIVE_ACTION> {
        let mut result__: CORRECTIVE_ACTION = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).CorrectiveAction)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<CORRECTIVE_ACTION>(result__)
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn Replacement(&self) -> ::windows::core::Result<::windows::core::PWSTR> {
        let mut result__: ::windows::core::PWSTR = ::core::mem::zeroed();
        (::windows::core::Interface::vtable(self).Replacement)(::core::mem::transmute_copy(self), ::core::mem::transmute(&mut result__)).from_abi::<::windows::core::PWSTR>(result__)
    }
}
impl ::core::convert::From<ISpellingError> for ::windows::core::IUnknown {
    fn from(value: ISpellingError) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&ISpellingError> for ::windows::core::IUnknown {
    fn from(value: &ISpellingError) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for ISpellingError {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a ISpellingError {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for ISpellingError {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ISpellingError {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ISpellingError {}
impl ::core::fmt::Debug for ISpellingError {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ISpellingError").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for ISpellingError {
    type Vtable = ISpellingError_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb7c82d61_fbe8_4b47_9b27_6c0d2e0de0a3);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpellingError_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub StartIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut u32) -> ::windows::core::HRESULT,
    pub Length: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut u32) -> ::windows::core::HRESULT,
    pub CorrectiveAction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut CORRECTIVE_ACTION) -> ::windows::core::HRESULT,
    pub Replacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
pub struct IUserDictionariesRegistrar(::windows::core::IUnknown);
impl IUserDictionariesRegistrar {
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn RegisterUserDictionary<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, dictionarypath: Param0, languagetag: Param1) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).RegisterUserDictionary)(::core::mem::transmute_copy(self), dictionarypath.into_param().abi(), languagetag.into_param().abi()).ok()
    }
    #[doc = "*Required features: 'Win32_Globalization'*"]
    pub unsafe fn UnregisterUserDictionary<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(&self, dictionarypath: Param0, languagetag: Param1) -> ::windows::core::Result<()> {
        (::windows::core::Interface::vtable(self).UnregisterUserDictionary)(::core::mem::transmute_copy(self), dictionarypath.into_param().abi(), languagetag.into_param().abi()).ok()
    }
}
impl ::core::convert::From<IUserDictionariesRegistrar> for ::windows::core::IUnknown {
    fn from(value: IUserDictionariesRegistrar) -> Self {
        unsafe { ::core::mem::transmute(value) }
    }
}
impl ::core::convert::From<&IUserDictionariesRegistrar> for ::windows::core::IUnknown {
    fn from(value: &IUserDictionariesRegistrar) -> Self {
        ::core::convert::From::from(::core::clone::Clone::clone(value))
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for IUserDictionariesRegistrar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Owned(unsafe { ::core::mem::transmute(self) })
    }
}
impl<'a> ::windows::core::IntoParam<'a, ::windows::core::IUnknown> for &'a IUserDictionariesRegistrar {
    fn into_param(self) -> ::windows::core::Param<'a, ::windows::core::IUnknown> {
        ::windows::core::Param::Borrowed(unsafe { ::core::mem::transmute(self) })
    }
}
impl ::core::clone::Clone for IUserDictionariesRegistrar {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IUserDictionariesRegistrar {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IUserDictionariesRegistrar {}
impl ::core::fmt::Debug for IUserDictionariesRegistrar {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IUserDictionariesRegistrar").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Interface for IUserDictionariesRegistrar {
    type Vtable = IUserDictionariesRegistrar_Vtbl;
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaa176b85_0e12_4844_8e1a_eef1da77f586);
}
#[repr(C)]
#[doc(hidden)]
pub struct IUserDictionariesRegistrar_Vtbl {
    pub base: ::windows::core::IUnknownVtbl,
    pub RegisterUserDictionary: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dictionarypath: ::windows::core::PCWSTR, languagetag: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub UnregisterUserDictionary: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dictionarypath: ::windows::core::PCWSTR, languagetag: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn IdnToAscii<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, lpunicodecharstr: Param1, cchunicodechar: i32, lpasciicharstr: ::windows::core::PWSTR, cchasciichar: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IdnToAscii(dwflags: u32, lpunicodecharstr: ::windows::core::PCWSTR, cchunicodechar: i32, lpasciicharstr: ::windows::core::PWSTR, cchasciichar: i32) -> i32;
        }
        ::core::mem::transmute(IdnToAscii(::core::mem::transmute(dwflags), lpunicodecharstr.into_param().abi(), ::core::mem::transmute(cchunicodechar), ::core::mem::transmute(lpasciicharstr), ::core::mem::transmute(cchasciichar)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn IdnToNameprepUnicode<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, lpunicodecharstr: Param1, cchunicodechar: i32, lpnameprepcharstr: ::windows::core::PWSTR, cchnameprepchar: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IdnToNameprepUnicode(dwflags: u32, lpunicodecharstr: ::windows::core::PCWSTR, cchunicodechar: i32, lpnameprepcharstr: ::windows::core::PWSTR, cchnameprepchar: i32) -> i32;
        }
        ::core::mem::transmute(IdnToNameprepUnicode(::core::mem::transmute(dwflags), lpunicodecharstr.into_param().abi(), ::core::mem::transmute(cchunicodechar), ::core::mem::transmute(lpnameprepcharstr), ::core::mem::transmute(cchnameprepchar)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn IdnToUnicode<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, lpasciicharstr: Param1, cchasciichar: i32, lpunicodecharstr: ::windows::core::PWSTR, cchunicodechar: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IdnToUnicode(dwflags: u32, lpasciicharstr: ::windows::core::PCWSTR, cchasciichar: i32, lpunicodecharstr: ::windows::core::PWSTR, cchunicodechar: i32) -> i32;
        }
        ::core::mem::transmute(IdnToUnicode(::core::mem::transmute(dwflags), lpasciicharstr.into_param().abi(), ::core::mem::transmute(cchasciichar), ::core::mem::transmute(lpunicodecharstr), ::core::mem::transmute(cchunicodechar)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsDBCSLeadByte(testchar: u8) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsDBCSLeadByte(testchar: u8) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(IsDBCSLeadByte(::core::mem::transmute(testchar)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsDBCSLeadByteEx(codepage: u32, testchar: u8) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsDBCSLeadByteEx(codepage: u32, testchar: u8) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(IsDBCSLeadByteEx(::core::mem::transmute(codepage), ::core::mem::transmute(testchar)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsNLSDefinedString<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(function: u32, dwflags: u32, lpversioninformation: *const NLSVERSIONINFO, lpstring: Param3, cchstr: i32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsNLSDefinedString(function: u32, dwflags: u32, lpversioninformation: *const NLSVERSIONINFO, lpstring: ::windows::core::PCWSTR, cchstr: i32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(IsNLSDefinedString(::core::mem::transmute(function), ::core::mem::transmute(dwflags), ::core::mem::transmute(lpversioninformation), lpstring.into_param().abi(), ::core::mem::transmute(cchstr)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsNormalizedString<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(normform: NORM_FORM, lpstring: Param1, cwlength: i32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsNormalizedString(normform: NORM_FORM, lpstring: ::windows::core::PCWSTR, cwlength: i32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(IsNormalizedString(::core::mem::transmute(normform), lpstring.into_param().abi(), ::core::mem::transmute(cwlength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsTextUnicode(lpv: *const ::core::ffi::c_void, isize: i32, lpiresult: *mut IS_TEXT_UNICODE_RESULT) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsTextUnicode(lpv: *const ::core::ffi::c_void, isize: i32, lpiresult: *mut IS_TEXT_UNICODE_RESULT) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(IsTextUnicode(::core::mem::transmute(lpv), ::core::mem::transmute(isize), ::core::mem::transmute(lpiresult)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsValidCodePage(codepage: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsValidCodePage(codepage: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(IsValidCodePage(::core::mem::transmute(codepage)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsValidLanguageGroup(languagegroup: u32, dwflags: ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsValidLanguageGroup(languagegroup: u32, dwflags: ENUM_SYSTEM_LANGUAGE_GROUPS_FLAGS) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(IsValidLanguageGroup(::core::mem::transmute(languagegroup), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsValidLocale(locale: u32, dwflags: IS_VALID_LOCALE_FLAGS) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsValidLocale(locale: u32, dwflags: IS_VALID_LOCALE_FLAGS) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(IsValidLocale(::core::mem::transmute(locale), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsValidLocaleName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lplocalename: Param0) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsValidLocaleName(lplocalename: ::windows::core::PCWSTR) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(IsValidLocaleName(lplocalename.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn IsValidNLSVersion<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(function: u32, lplocalename: Param1, lpversioninformation: *const NLSVERSIONINFOEX) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsValidNLSVersion(function: u32, lplocalename: ::windows::core::PCWSTR, lpversioninformation: *const NLSVERSIONINFOEX) -> u32;
        }
        ::core::mem::transmute(IsValidNLSVersion(::core::mem::transmute(function), lplocalename.into_param().abi(), ::core::mem::transmute(lpversioninformation)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn IsWellFormedTag<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(psztag: Param0) -> u8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn IsWellFormedTag(psztag: ::windows::core::PCWSTR) -> u8;
        }
        ::core::mem::transmute(IsWellFormedTag(psztag.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type LANGGROUPLOCALE_ENUMPROCA = ::core::option::Option<unsafe extern "system" fn(param0: u32, param1: u32, param2: ::windows::core::PCSTR, param3: isize) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type LANGGROUPLOCALE_ENUMPROCW = ::core::option::Option<unsafe extern "system" fn(param0: u32, param1: u32, param2: ::windows::core::PCWSTR, param3: isize) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type LANGUAGEGROUP_ENUMPROCA = ::core::option::Option<unsafe extern "system" fn(param0: u32, param1: ::windows::core::PCSTR, param2: ::windows::core::PCSTR, param3: u32, param4: isize) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type LANGUAGEGROUP_ENUMPROCW = ::core::option::Option<unsafe extern "system" fn(param0: u32, param1: ::windows::core::PCWSTR, param2: ::windows::core::PCWSTR, param3: u32, param4: isize) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn LCIDToLocaleName(locale: u32, lpname: ::windows::core::PWSTR, cchname: i32, dwflags: u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn LCIDToLocaleName(locale: u32, lpname: ::windows::core::PWSTR, cchname: i32, dwflags: u32) -> i32;
        }
        ::core::mem::transmute(LCIDToLocaleName(::core::mem::transmute(locale), ::core::mem::transmute(lpname), ::core::mem::transmute(cchname), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCID_ALTERNATE_SORTS: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_BYTEREV: u32 = 2048u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_FULLWIDTH: u32 = 8388608u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_HALFWIDTH: u32 = 4194304u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_HASH: u32 = 262144u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_HIRAGANA: u32 = 1048576u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_KATAKANA: u32 = 2097152u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_LINGUISTIC_CASING: u32 = 16777216u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_LOWERCASE: u32 = 256u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_SIMPLIFIED_CHINESE: u32 = 33554432u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_SORTHANDLE: u32 = 536870912u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_SORTKEY: u32 = 1024u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_TITLECASE: u32 = 768u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_TRADITIONAL_CHINESE: u32 = 67108864u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LCMAP_UPPERCASE: u32 = 512u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn LCMapStringA<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: u32, dwmapflags: u32, lpsrcstr: Param2, cchsrc: i32, lpdeststr: ::windows::core::PSTR, cchdest: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn LCMapStringA(locale: u32, dwmapflags: u32, lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpdeststr: ::windows::core::PSTR, cchdest: i32) -> i32;
        }
        ::core::mem::transmute(LCMapStringA(::core::mem::transmute(locale), ::core::mem::transmute(dwmapflags), lpsrcstr.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(lpdeststr), ::core::mem::transmute(cchdest)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn LCMapStringEx<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param8: ::windows::core::IntoParam<'a, super::Foundation::LPARAM>>(lplocalename: Param0, dwmapflags: u32, lpsrcstr: Param2, cchsrc: i32, lpdeststr: ::windows::core::PWSTR, cchdest: i32, lpversioninformation: *const NLSVERSIONINFO, lpreserved: *const ::core::ffi::c_void, sorthandle: Param8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn LCMapStringEx(lplocalename: ::windows::core::PCWSTR, dwmapflags: u32, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpdeststr: ::windows::core::PWSTR, cchdest: i32, lpversioninformation: *const NLSVERSIONINFO, lpreserved: *const ::core::ffi::c_void, sorthandle: super::Foundation::LPARAM) -> i32;
        }
        ::core::mem::transmute(LCMapStringEx(lplocalename.into_param().abi(), ::core::mem::transmute(dwmapflags), lpsrcstr.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(lpdeststr), ::core::mem::transmute(cchdest), ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(lpreserved), sorthandle.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn LCMapStringW<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, dwmapflags: u32, lpsrcstr: Param2, cchsrc: i32, lpdeststr: ::windows::core::PWSTR, cchdest: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn LCMapStringW(locale: u32, dwmapflags: u32, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpdeststr: ::windows::core::PWSTR, cchdest: i32) -> i32;
        }
        ::core::mem::transmute(LCMapStringW(::core::mem::transmute(locale), ::core::mem::transmute(dwmapflags), lpsrcstr.into_param().abi(), ::core::mem::transmute(cchsrc), ::core::mem::transmute(lpdeststr), ::core::mem::transmute(cchdest)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_ARABIC: u32 = 13u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_ARMENIAN: u32 = 17u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_BALTIC: u32 = 3u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_CENTRAL_EUROPE: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_CYRILLIC: u32 = 5u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_GEORGIAN: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_GREEK: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_HEBREW: u32 = 12u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_INDIC: u32 = 15u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_JAPANESE: u32 = 7u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_KOREAN: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_SIMPLIFIED_CHINESE: u32 = 10u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_THAI: u32 = 11u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_TRADITIONAL_CHINESE: u32 = 9u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_TURKIC: u32 = 6u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_TURKISH: u32 = 6u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_VIETNAMESE: u32 = 14u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LGRPID_WESTERN_EUROPE: u32 = 1u32;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct LOCALESIGNATURE {
    pub lsUsb: [u32; 4],
    pub lsCsbDefault: [u32; 2],
    pub lsCsbSupported: [u32; 2],
}
impl ::core::marker::Copy for LOCALESIGNATURE {}
impl ::core::clone::Clone for LOCALESIGNATURE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for LOCALESIGNATURE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("LOCALESIGNATURE").field("lsUsb", &self.lsUsb).field("lsCsbDefault", &self.lsCsbDefault).field("lsCsbSupported", &self.lsCsbSupported).finish()
    }
}
unsafe impl ::windows::core::Abi for LOCALESIGNATURE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for LOCALESIGNATURE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<LOCALESIGNATURE>()) == 0 }
    }
}
impl ::core::cmp::Eq for LOCALESIGNATURE {}
impl ::core::default::Default for LOCALESIGNATURE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ALL: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ALLOW_NEUTRAL_NAMES: u32 = 134217728u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ALTERNATE_SORTS: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type LOCALE_ENUMPROCA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type LOCALE_ENUMPROCEX = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: u32, param2: super::Foundation::LPARAM) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type LOCALE_ENUMPROCW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_FONTSIGNATURE: u32 = 88u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ICALENDARTYPE: u32 = 4105u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ICENTURY: u32 = 36u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ICONSTRUCTEDLOCALE: u32 = 125u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ICOUNTRY: u32 = 5u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ICURRDIGITS: u32 = 25u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ICURRENCY: u32 = 27u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDATE: u32 = 33u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDAYLZERO: u32 = 38u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDEFAULTANSICODEPAGE: u32 = 4100u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDEFAULTCODEPAGE: u32 = 11u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDEFAULTCOUNTRY: u32 = 10u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDEFAULTEBCDICCODEPAGE: u32 = 4114u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDEFAULTLANGUAGE: u32 = 9u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDEFAULTMACCODEPAGE: u32 = 4113u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDIALINGCODE: u32 = 5u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDIGITS: u32 = 17u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IDIGITSUBSTITUTION: u32 = 4116u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IFIRSTDAYOFWEEK: u32 = 4108u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IFIRSTWEEKOFYEAR: u32 = 4109u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IGEOID: u32 = 91u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IINTLCURRDIGITS: u32 = 26u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ILANGUAGE: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ILDATE: u32 = 34u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ILZERO: u32 = 18u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IMEASURE: u32 = 13u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IMONLZERO: u32 = 39u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_INEGATIVEPERCENT: u32 = 116u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_INEGCURR: u32 = 28u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_INEGNUMBER: u32 = 4112u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_INEGSEPBYSPACE: u32 = 87u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_INEGSIGNPOSN: u32 = 83u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_INEGSYMPRECEDES: u32 = 86u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_INEUTRAL: u32 = 113u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IOPTIONALCALENDAR: u32 = 4107u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IPAPERSIZE: u32 = 4106u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IPOSITIVEPERCENT: u32 = 117u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IPOSSEPBYSPACE: u32 = 85u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IPOSSIGNPOSN: u32 = 82u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IPOSSYMPRECEDES: u32 = 84u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IREADINGLAYOUT: u32 = 112u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ITIME: u32 = 35u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ITIMEMARKPOSN: u32 = 4101u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_ITLZERO: u32 = 37u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IUSEUTF8LEGACYACP: u32 = 1638u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_IUSEUTF8LEGACYOEMCP: u32 = 2457u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_NAME_INVARIANT: &'static str = "";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_NAME_SYSTEM_DEFAULT: &'static str = "!x-sys-default-locale";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_NEUTRALDATA: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_NOUSEROVERRIDE: u32 = 2147483648u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_REPLACEMENT: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_RETURN_GENITIVE_NAMES: u32 = 268435456u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_RETURN_NUMBER: u32 = 536870912u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_S1159: u32 = 40u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_S2359: u32 = 41u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVCTRYNAME: u32 = 7u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVDAYNAME1: u32 = 49u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVDAYNAME2: u32 = 50u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVDAYNAME3: u32 = 51u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVDAYNAME4: u32 = 52u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVDAYNAME5: u32 = 53u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVDAYNAME6: u32 = 54u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVDAYNAME7: u32 = 55u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVLANGNAME: u32 = 3u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME1: u32 = 68u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME10: u32 = 77u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME11: u32 = 78u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME12: u32 = 79u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME13: u32 = 4111u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME2: u32 = 69u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME3: u32 = 70u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME4: u32 = 71u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME5: u32 = 72u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME6: u32 = 73u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME7: u32 = 74u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME8: u32 = 75u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SABBREVMONTHNAME9: u32 = 76u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SAM: u32 = 40u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SCONSOLEFALLBACKNAME: u32 = 110u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SCOUNTRY: u32 = 6u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SCURRENCY: u32 = 20u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SDATE: u32 = 29u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SDAYNAME1: u32 = 42u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SDAYNAME2: u32 = 43u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SDAYNAME3: u32 = 44u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SDAYNAME4: u32 = 45u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SDAYNAME5: u32 = 46u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SDAYNAME6: u32 = 47u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SDAYNAME7: u32 = 48u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SDECIMAL: u32 = 14u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SDURATION: u32 = 93u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SENGCOUNTRY: u32 = 4098u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SENGCURRNAME: u32 = 4103u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SENGLANGUAGE: u32 = 4097u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SENGLISHCOUNTRYNAME: u32 = 4098u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SENGLISHDISPLAYNAME: u32 = 114u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SENGLISHLANGUAGENAME: u32 = 4097u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SGROUPING: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SINTLSYMBOL: u32 = 21u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SISO3166CTRYNAME: u32 = 90u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SISO3166CTRYNAME2: u32 = 104u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SISO639LANGNAME: u32 = 89u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SISO639LANGNAME2: u32 = 103u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SKEYBOARDSTOINSTALL: u32 = 94u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SLANGDISPLAYNAME: u32 = 111u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SLANGUAGE: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SLIST: u32 = 12u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SLOCALIZEDCOUNTRYNAME: u32 = 6u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SLOCALIZEDDISPLAYNAME: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SLOCALIZEDLANGUAGENAME: u32 = 111u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SLONGDATE: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONDECIMALSEP: u32 = 22u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONGROUPING: u32 = 24u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHDAY: u32 = 120u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME1: u32 = 56u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME10: u32 = 65u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME11: u32 = 66u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME12: u32 = 67u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME13: u32 = 4110u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME2: u32 = 57u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME3: u32 = 58u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME4: u32 = 59u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME5: u32 = 60u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME6: u32 = 61u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME7: u32 = 62u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME8: u32 = 63u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHNAME9: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SMONTHOUSANDSEP: u32 = 23u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNAME: u32 = 92u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNAN: u32 = 105u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNATIVECOUNTRYNAME: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNATIVECTRYNAME: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNATIVECURRNAME: u32 = 4104u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNATIVEDIGITS: u32 = 19u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNATIVEDISPLAYNAME: u32 = 115u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNATIVELANGNAME: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNATIVELANGUAGENAME: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNEGATIVESIGN: u32 = 81u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SNEGINFINITY: u32 = 107u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SOPENTYPELANGUAGETAG: u32 = 122u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SPARENT: u32 = 109u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SPECIFICDATA: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SPERCENT: u32 = 118u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SPERMILLE: u32 = 119u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SPM: u32 = 41u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SPOSINFINITY: u32 = 106u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SPOSITIVESIGN: u32 = 80u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SRELATIVELONGDATE: u32 = 124u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSCRIPTS: u32 = 108u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTDATE: u32 = 31u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTESTAM: u32 = 126u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTESTDAYNAME1: u32 = 96u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTESTDAYNAME2: u32 = 97u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTESTDAYNAME3: u32 = 98u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTESTDAYNAME4: u32 = 99u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTESTDAYNAME5: u32 = 100u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTESTDAYNAME6: u32 = 101u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTESTDAYNAME7: u32 = 102u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTESTPM: u32 = 127u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSHORTTIME: u32 = 121u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSORTLOCALE: u32 = 123u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SSORTNAME: u32 = 4115u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_STHOUSAND: u32 = 15u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_STIME: u32 = 30u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_STIMEFORMAT: u32 = 4099u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SUPPLEMENTAL: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_SYEARMONTH: u32 = 4102u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_USE_CP_ACP: u32 = 1073741824u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOCALE_WINDOWS: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOWLEVEL_SERVICE_TYPES: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOW_SURROGATE_END: u32 = 57343u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const LOW_SURROGATE_START: u32 = 56320u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn LocaleNameToLCID<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lpname: Param0, dwflags: u32) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn LocaleNameToLCID(lpname: ::windows::core::PCWSTR, dwflags: u32) -> u32;
        }
        ::core::mem::transmute(LocaleNameToLCID(lpname.into_param().abi(), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct MAPPING_DATA_RANGE {
    pub dwStartIndex: u32,
    pub dwEndIndex: u32,
    pub pszDescription: ::windows::core::PWSTR,
    pub dwDescriptionLength: u32,
    pub pData: *mut ::core::ffi::c_void,
    pub dwDataSize: u32,
    pub pszContentType: ::windows::core::PWSTR,
    pub prgActionIds: *mut ::windows::core::PWSTR,
    pub dwActionsCount: u32,
    pub prgActionDisplayNames: *mut ::windows::core::PWSTR,
}
impl ::core::marker::Copy for MAPPING_DATA_RANGE {}
impl ::core::clone::Clone for MAPPING_DATA_RANGE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MAPPING_DATA_RANGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MAPPING_DATA_RANGE")
            .field("dwStartIndex", &self.dwStartIndex)
            .field("dwEndIndex", &self.dwEndIndex)
            .field("pszDescription", &self.pszDescription)
            .field("dwDescriptionLength", &self.dwDescriptionLength)
            .field("pData", &self.pData)
            .field("dwDataSize", &self.dwDataSize)
            .field("pszContentType", &self.pszContentType)
            .field("prgActionIds", &self.prgActionIds)
            .field("dwActionsCount", &self.dwActionsCount)
            .field("prgActionDisplayNames", &self.prgActionDisplayNames)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for MAPPING_DATA_RANGE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MAPPING_DATA_RANGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MAPPING_DATA_RANGE>()) == 0 }
    }
}
impl ::core::cmp::Eq for MAPPING_DATA_RANGE {}
impl ::core::default::Default for MAPPING_DATA_RANGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct MAPPING_ENUM_OPTIONS {
    pub Size: usize,
    pub pszCategory: ::windows::core::PWSTR,
    pub pszInputLanguage: ::windows::core::PWSTR,
    pub pszOutputLanguage: ::windows::core::PWSTR,
    pub pszInputScript: ::windows::core::PWSTR,
    pub pszOutputScript: ::windows::core::PWSTR,
    pub pszInputContentType: ::windows::core::PWSTR,
    pub pszOutputContentType: ::windows::core::PWSTR,
    pub pGuid: *mut ::windows::core::GUID,
    pub _bitfield: u32,
}
impl ::core::marker::Copy for MAPPING_ENUM_OPTIONS {}
impl ::core::clone::Clone for MAPPING_ENUM_OPTIONS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MAPPING_ENUM_OPTIONS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MAPPING_ENUM_OPTIONS")
            .field("Size", &self.Size)
            .field("pszCategory", &self.pszCategory)
            .field("pszInputLanguage", &self.pszInputLanguage)
            .field("pszOutputLanguage", &self.pszOutputLanguage)
            .field("pszInputScript", &self.pszInputScript)
            .field("pszOutputScript", &self.pszOutputScript)
            .field("pszInputContentType", &self.pszInputContentType)
            .field("pszOutputContentType", &self.pszOutputContentType)
            .field("pGuid", &self.pGuid)
            .field("_bitfield", &self._bitfield)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for MAPPING_ENUM_OPTIONS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MAPPING_ENUM_OPTIONS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MAPPING_ENUM_OPTIONS>()) == 0 }
    }
}
impl ::core::cmp::Eq for MAPPING_ENUM_OPTIONS {}
impl ::core::default::Default for MAPPING_ENUM_OPTIONS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct MAPPING_OPTIONS {
    pub Size: usize,
    pub pszInputLanguage: ::windows::core::PWSTR,
    pub pszOutputLanguage: ::windows::core::PWSTR,
    pub pszInputScript: ::windows::core::PWSTR,
    pub pszOutputScript: ::windows::core::PWSTR,
    pub pszInputContentType: ::windows::core::PWSTR,
    pub pszOutputContentType: ::windows::core::PWSTR,
    pub pszUILanguage: ::windows::core::PWSTR,
    pub pfnRecognizeCallback: PFN_MAPPINGCALLBACKPROC,
    pub pRecognizeCallerData: *mut ::core::ffi::c_void,
    pub dwRecognizeCallerDataSize: u32,
    pub pfnActionCallback: PFN_MAPPINGCALLBACKPROC,
    pub pActionCallerData: *mut ::core::ffi::c_void,
    pub dwActionCallerDataSize: u32,
    pub dwServiceFlag: u32,
    pub _bitfield: u32,
}
impl ::core::marker::Copy for MAPPING_OPTIONS {}
impl ::core::clone::Clone for MAPPING_OPTIONS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MAPPING_OPTIONS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MAPPING_OPTIONS")
            .field("Size", &self.Size)
            .field("pszInputLanguage", &self.pszInputLanguage)
            .field("pszOutputLanguage", &self.pszOutputLanguage)
            .field("pszInputScript", &self.pszInputScript)
            .field("pszOutputScript", &self.pszOutputScript)
            .field("pszInputContentType", &self.pszInputContentType)
            .field("pszOutputContentType", &self.pszOutputContentType)
            .field("pszUILanguage", &self.pszUILanguage)
            .field("pfnRecognizeCallback", &self.pfnRecognizeCallback.map(|f| f as usize))
            .field("pRecognizeCallerData", &self.pRecognizeCallerData)
            .field("dwRecognizeCallerDataSize", &self.dwRecognizeCallerDataSize)
            .field("pfnActionCallback", &self.pfnActionCallback.map(|f| f as usize))
            .field("pActionCallerData", &self.pActionCallerData)
            .field("dwActionCallerDataSize", &self.dwActionCallerDataSize)
            .field("dwServiceFlag", &self.dwServiceFlag)
            .field("_bitfield", &self._bitfield)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for MAPPING_OPTIONS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MAPPING_OPTIONS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MAPPING_OPTIONS>()) == 0 }
    }
}
impl ::core::cmp::Eq for MAPPING_OPTIONS {}
impl ::core::default::Default for MAPPING_OPTIONS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct MAPPING_PROPERTY_BAG {
    pub Size: usize,
    pub prgResultRanges: *mut MAPPING_DATA_RANGE,
    pub dwRangesCount: u32,
    pub pServiceData: *mut ::core::ffi::c_void,
    pub dwServiceDataSize: u32,
    pub pCallerData: *mut ::core::ffi::c_void,
    pub dwCallerDataSize: u32,
    pub pContext: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for MAPPING_PROPERTY_BAG {}
impl ::core::clone::Clone for MAPPING_PROPERTY_BAG {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MAPPING_PROPERTY_BAG {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MAPPING_PROPERTY_BAG").field("Size", &self.Size).field("prgResultRanges", &self.prgResultRanges).field("dwRangesCount", &self.dwRangesCount).field("pServiceData", &self.pServiceData).field("dwServiceDataSize", &self.dwServiceDataSize).field("pCallerData", &self.pCallerData).field("dwCallerDataSize", &self.dwCallerDataSize).field("pContext", &self.pContext).finish()
    }
}
unsafe impl ::windows::core::Abi for MAPPING_PROPERTY_BAG {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MAPPING_PROPERTY_BAG {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MAPPING_PROPERTY_BAG>()) == 0 }
    }
}
impl ::core::cmp::Eq for MAPPING_PROPERTY_BAG {}
impl ::core::default::Default for MAPPING_PROPERTY_BAG {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct MAPPING_SERVICE_INFO {
    pub Size: usize,
    pub pszCopyright: ::windows::core::PWSTR,
    pub wMajorVersion: u16,
    pub wMinorVersion: u16,
    pub wBuildVersion: u16,
    pub wStepVersion: u16,
    pub dwInputContentTypesCount: u32,
    pub prgInputContentTypes: *mut ::windows::core::PWSTR,
    pub dwOutputContentTypesCount: u32,
    pub prgOutputContentTypes: *mut ::windows::core::PWSTR,
    pub dwInputLanguagesCount: u32,
    pub prgInputLanguages: *mut ::windows::core::PWSTR,
    pub dwOutputLanguagesCount: u32,
    pub prgOutputLanguages: *mut ::windows::core::PWSTR,
    pub dwInputScriptsCount: u32,
    pub prgInputScripts: *mut ::windows::core::PWSTR,
    pub dwOutputScriptsCount: u32,
    pub prgOutputScripts: *mut ::windows::core::PWSTR,
    pub guid: ::windows::core::GUID,
    pub pszCategory: ::windows::core::PWSTR,
    pub pszDescription: ::windows::core::PWSTR,
    pub dwPrivateDataSize: u32,
    pub pPrivateData: *mut ::core::ffi::c_void,
    pub pContext: *mut ::core::ffi::c_void,
    pub _bitfield: u32,
}
impl ::core::marker::Copy for MAPPING_SERVICE_INFO {}
impl ::core::clone::Clone for MAPPING_SERVICE_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MAPPING_SERVICE_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MAPPING_SERVICE_INFO")
            .field("Size", &self.Size)
            .field("pszCopyright", &self.pszCopyright)
            .field("wMajorVersion", &self.wMajorVersion)
            .field("wMinorVersion", &self.wMinorVersion)
            .field("wBuildVersion", &self.wBuildVersion)
            .field("wStepVersion", &self.wStepVersion)
            .field("dwInputContentTypesCount", &self.dwInputContentTypesCount)
            .field("prgInputContentTypes", &self.prgInputContentTypes)
            .field("dwOutputContentTypesCount", &self.dwOutputContentTypesCount)
            .field("prgOutputContentTypes", &self.prgOutputContentTypes)
            .field("dwInputLanguagesCount", &self.dwInputLanguagesCount)
            .field("prgInputLanguages", &self.prgInputLanguages)
            .field("dwOutputLanguagesCount", &self.dwOutputLanguagesCount)
            .field("prgOutputLanguages", &self.prgOutputLanguages)
            .field("dwInputScriptsCount", &self.dwInputScriptsCount)
            .field("prgInputScripts", &self.prgInputScripts)
            .field("dwOutputScriptsCount", &self.dwOutputScriptsCount)
            .field("prgOutputScripts", &self.prgOutputScripts)
            .field("guid", &self.guid)
            .field("pszCategory", &self.pszCategory)
            .field("pszDescription", &self.pszDescription)
            .field("dwPrivateDataSize", &self.dwPrivateDataSize)
            .field("pPrivateData", &self.pPrivateData)
            .field("pContext", &self.pContext)
            .field("_bitfield", &self._bitfield)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for MAPPING_SERVICE_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MAPPING_SERVICE_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MAPPING_SERVICE_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for MAPPING_SERVICE_INFO {}
impl ::core::default::Default for MAPPING_SERVICE_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAX_DEFAULTCHAR: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAX_LEADBYTES: u32 = 12u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAX_LOCALE_NAME: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAX_MIMECP_NAME: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAX_MIMECSET_NAME: u32 = 50u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAX_MIMEFACE_NAME: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAX_RFC1766_NAME: u32 = 6u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MAX_SCRIPT_NAME: u32 = 48u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct MIMECONTF(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_MAILNEWS: MIMECONTF = MIMECONTF(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_BROWSER: MIMECONTF = MIMECONTF(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_MINIMAL: MIMECONTF = MIMECONTF(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_IMPORT: MIMECONTF = MIMECONTF(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_SAVABLE_MAILNEWS: MIMECONTF = MIMECONTF(256i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_SAVABLE_BROWSER: MIMECONTF = MIMECONTF(512i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_EXPORT: MIMECONTF = MIMECONTF(1024i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_PRIVCONVERTER: MIMECONTF = MIMECONTF(65536i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_VALID: MIMECONTF = MIMECONTF(131072i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_VALID_NLS: MIMECONTF = MIMECONTF(262144i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_MIME_IE4: MIMECONTF = MIMECONTF(268435456i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_MIME_LATEST: MIMECONTF = MIMECONTF(536870912i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIMECONTF_MIME_REGISTRY: MIMECONTF = MIMECONTF(1073741824i32);
impl ::core::marker::Copy for MIMECONTF {}
impl ::core::clone::Clone for MIMECONTF {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MIMECONTF {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MIMECONTF {
    type Abi = Self;
}
impl ::core::fmt::Debug for MIMECONTF {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MIMECONTF").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct MIMECPINFO {
    pub dwFlags: u32,
    pub uiCodePage: u32,
    pub uiFamilyCodePage: u32,
    pub wszDescription: [u16; 64],
    pub wszWebCharset: [u16; 50],
    pub wszHeaderCharset: [u16; 50],
    pub wszBodyCharset: [u16; 50],
    pub wszFixedWidthFont: [u16; 32],
    pub wszProportionalFont: [u16; 32],
    pub bGDICharset: u8,
}
impl ::core::marker::Copy for MIMECPINFO {}
impl ::core::clone::Clone for MIMECPINFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MIMECPINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MIMECPINFO")
            .field("dwFlags", &self.dwFlags)
            .field("uiCodePage", &self.uiCodePage)
            .field("uiFamilyCodePage", &self.uiFamilyCodePage)
            .field("wszDescription", &self.wszDescription)
            .field("wszWebCharset", &self.wszWebCharset)
            .field("wszHeaderCharset", &self.wszHeaderCharset)
            .field("wszBodyCharset", &self.wszBodyCharset)
            .field("wszFixedWidthFont", &self.wszFixedWidthFont)
            .field("wszProportionalFont", &self.wszProportionalFont)
            .field("bGDICharset", &self.bGDICharset)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for MIMECPINFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MIMECPINFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MIMECPINFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for MIMECPINFO {}
impl ::core::default::Default for MIMECPINFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct MIMECSETINFO {
    pub uiCodePage: u32,
    pub uiInternetEncoding: u32,
    pub wszCharset: [u16; 50],
}
impl ::core::marker::Copy for MIMECSETINFO {}
impl ::core::clone::Clone for MIMECSETINFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MIMECSETINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MIMECSETINFO").field("uiCodePage", &self.uiCodePage).field("uiInternetEncoding", &self.uiInternetEncoding).field("wszCharset", &self.wszCharset).finish()
    }
}
unsafe impl ::windows::core::Abi for MIMECSETINFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MIMECSETINFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MIMECSETINFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for MIMECSETINFO {}
impl ::core::default::Default for MIMECSETINFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MIN_SPELLING_NTDDI: u32 = 100794368u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct MLDETECTCP(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTCP_NONE: MLDETECTCP = MLDETECTCP(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTCP_7BIT: MLDETECTCP = MLDETECTCP(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTCP_8BIT: MLDETECTCP = MLDETECTCP(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTCP_DBCS: MLDETECTCP = MLDETECTCP(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTCP_HTML: MLDETECTCP = MLDETECTCP(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTCP_NUMBER: MLDETECTCP = MLDETECTCP(16i32);
impl ::core::marker::Copy for MLDETECTCP {}
impl ::core::clone::Clone for MLDETECTCP {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MLDETECTCP {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MLDETECTCP {
    type Abi = Self;
}
impl ::core::fmt::Debug for MLDETECTCP {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MLDETECTCP").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct MLSTR_FLAGS(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLSTR_READ: MLSTR_FLAGS = MLSTR_FLAGS(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLSTR_WRITE: MLSTR_FLAGS = MLSTR_FLAGS(2i32);
impl ::core::marker::Copy for MLSTR_FLAGS {}
impl ::core::clone::Clone for MLSTR_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MLSTR_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MLSTR_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for MLSTR_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MLSTR_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_COMPLEX_SCRIPT_FILTER: u32 = 512u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_CONSOLE_FILTER: u32 = 256u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_FILEINFO_VERSION: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_FORMAT_INF_COMPAT: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_FORMAT_REG_COMPAT: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_FULL_LANGUAGE: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_IMMUTABLE_LOOKUP: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_LANGUAGE_EXACT: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_LANGUAGE_ID: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_LANGUAGE_INSTALLED: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_LANGUAGE_LICENSED: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_LANGUAGE_NAME: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_LANG_NEUTRAL_PE_FILE: u32 = 256u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_LIP_LANGUAGE: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_MACHINE_LANGUAGE_SETTINGS: u32 = 1024u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_MERGE_SYSTEM_FALLBACK: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_MERGE_USER_FALLBACK: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_NON_LANG_NEUTRAL_FILE: u32 = 512u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_PARTIAL_LANGUAGE: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_QUERY_CHECKSUM: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_QUERY_LANGUAGE_NAME: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_QUERY_RESOURCE_TYPES: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_QUERY_TYPE: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_RESET_FILTERS: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_SKIP_STRING_CACHE: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_THREAD_LANGUAGES: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_USER_PREFERRED_UI_LANGUAGES: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_USE_INSTALLED_LANGUAGES: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_USE_SEARCH_ALL_LANGUAGES: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MUI_VERIFY_FILE_EXISTS: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct MULTI_BYTE_TO_WIDE_CHAR_FLAGS(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MB_COMPOSITE: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = MULTI_BYTE_TO_WIDE_CHAR_FLAGS(2u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MB_ERR_INVALID_CHARS: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = MULTI_BYTE_TO_WIDE_CHAR_FLAGS(8u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MB_PRECOMPOSED: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = MULTI_BYTE_TO_WIDE_CHAR_FLAGS(1u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MB_USEGLYPHCHARS: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = MULTI_BYTE_TO_WIDE_CHAR_FLAGS(4u32);
impl ::core::marker::Copy for MULTI_BYTE_TO_WIDE_CHAR_FLAGS {}
impl ::core::clone::Clone for MULTI_BYTE_TO_WIDE_CHAR_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MULTI_BYTE_TO_WIDE_CHAR_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MULTI_BYTE_TO_WIDE_CHAR_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for MULTI_BYTE_TO_WIDE_CHAR_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MULTI_BYTE_TO_WIDE_CHAR_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for MULTI_BYTE_TO_WIDE_CHAR_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for MULTI_BYTE_TO_WIDE_CHAR_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for MULTI_BYTE_TO_WIDE_CHAR_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for MULTI_BYTE_TO_WIDE_CHAR_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for MULTI_BYTE_TO_WIDE_CHAR_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn MappingDoAction<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(pbag: *mut MAPPING_PROPERTY_BAG, dwrangeindex: u32, pszactionid: Param2) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn MappingDoAction(pbag: *mut MAPPING_PROPERTY_BAG, dwrangeindex: u32, pszactionid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT;
        }
        MappingDoAction(::core::mem::transmute(pbag), ::core::mem::transmute(dwrangeindex), pszactionid.into_param().abi()).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn MappingFreePropertyBag(pbag: *const MAPPING_PROPERTY_BAG) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn MappingFreePropertyBag(pbag: *const MAPPING_PROPERTY_BAG) -> ::windows::core::HRESULT;
        }
        MappingFreePropertyBag(::core::mem::transmute(pbag)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn MappingFreeServices(pserviceinfo: *const MAPPING_SERVICE_INFO) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn MappingFreeServices(pserviceinfo: *const MAPPING_SERVICE_INFO) -> ::windows::core::HRESULT;
        }
        MappingFreeServices(::core::mem::transmute(pserviceinfo)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn MappingGetServices(poptions: *const MAPPING_ENUM_OPTIONS, prgservices: *mut *mut MAPPING_SERVICE_INFO, pdwservicescount: *mut u32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn MappingGetServices(poptions: *const MAPPING_ENUM_OPTIONS, prgservices: *mut *mut MAPPING_SERVICE_INFO, pdwservicescount: *mut u32) -> ::windows::core::HRESULT;
        }
        MappingGetServices(::core::mem::transmute(poptions), ::core::mem::transmute(prgservices), ::core::mem::transmute(pdwservicescount)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn MappingRecognizeText<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(pserviceinfo: *const MAPPING_SERVICE_INFO, psztext: Param1, dwlength: u32, dwindex: u32, poptions: *const MAPPING_OPTIONS, pbag: *mut MAPPING_PROPERTY_BAG) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn MappingRecognizeText(pserviceinfo: *const MAPPING_SERVICE_INFO, psztext: ::windows::core::PCWSTR, dwlength: u32, dwindex: u32, poptions: *const MAPPING_OPTIONS, pbag: *mut MAPPING_PROPERTY_BAG) -> ::windows::core::HRESULT;
        }
        MappingRecognizeText(::core::mem::transmute(pserviceinfo), psztext.into_param().abi(), ::core::mem::transmute(dwlength), ::core::mem::transmute(dwindex), ::core::mem::transmute(poptions), ::core::mem::transmute(pbag)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn MultiByteToWideChar<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(codepage: u32, dwflags: MULTI_BYTE_TO_WIDE_CHAR_FLAGS, lpmultibytestr: Param2, cbmultibyte: i32, lpwidecharstr: ::windows::core::PWSTR, cchwidechar: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn MultiByteToWideChar(codepage: u32, dwflags: MULTI_BYTE_TO_WIDE_CHAR_FLAGS, lpmultibytestr: ::windows::core::PCSTR, cbmultibyte: i32, lpwidecharstr: ::windows::core::PWSTR, cchwidechar: i32) -> i32;
        }
        ::core::mem::transmute(MultiByteToWideChar(::core::mem::transmute(codepage), ::core::mem::transmute(dwflags), lpmultibytestr.into_param().abi(), ::core::mem::transmute(cbmultibyte), ::core::mem::transmute(lpwidecharstr), ::core::mem::transmute(cchwidechar)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
pub struct NEWTEXTMETRICEXA {
    pub ntmTm: super::Graphics::Gdi::NEWTEXTMETRICA,
    pub ntmFontSig: FONTSIGNATURE,
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::marker::Copy for NEWTEXTMETRICEXA {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::clone::Clone for NEWTEXTMETRICEXA {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::fmt::Debug for NEWTEXTMETRICEXA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("NEWTEXTMETRICEXA").field("ntmTm", &self.ntmTm).field("ntmFontSig", &self.ntmFontSig).finish()
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
unsafe impl ::windows::core::Abi for NEWTEXTMETRICEXA {
    type Abi = Self;
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::cmp::PartialEq for NEWTEXTMETRICEXA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<NEWTEXTMETRICEXA>()) == 0 }
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::cmp::Eq for NEWTEXTMETRICEXA {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::default::Default for NEWTEXTMETRICEXA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
pub struct NEWTEXTMETRICEXW {
    pub ntmTm: super::Graphics::Gdi::NEWTEXTMETRICW,
    pub ntmFontSig: FONTSIGNATURE,
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::marker::Copy for NEWTEXTMETRICEXW {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::clone::Clone for NEWTEXTMETRICEXW {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::fmt::Debug for NEWTEXTMETRICEXW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("NEWTEXTMETRICEXW").field("ntmTm", &self.ntmTm).field("ntmFontSig", &self.ntmFontSig).finish()
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
unsafe impl ::windows::core::Abi for NEWTEXTMETRICEXW {
    type Abi = Self;
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::cmp::PartialEq for NEWTEXTMETRICEXW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<NEWTEXTMETRICEXW>()) == 0 }
    }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::cmp::Eq for NEWTEXTMETRICEXW {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::core::default::Default for NEWTEXTMETRICEXW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct NLSVERSIONINFO {
    pub dwNLSVersionInfoSize: u32,
    pub dwNLSVersion: u32,
    pub dwDefinedVersion: u32,
    pub dwEffectiveId: u32,
    pub guidCustomVersion: ::windows::core::GUID,
}
impl ::core::marker::Copy for NLSVERSIONINFO {}
impl ::core::clone::Clone for NLSVERSIONINFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for NLSVERSIONINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("NLSVERSIONINFO").field("dwNLSVersionInfoSize", &self.dwNLSVersionInfoSize).field("dwNLSVersion", &self.dwNLSVersion).field("dwDefinedVersion", &self.dwDefinedVersion).field("dwEffectiveId", &self.dwEffectiveId).field("guidCustomVersion", &self.guidCustomVersion).finish()
    }
}
unsafe impl ::windows::core::Abi for NLSVERSIONINFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for NLSVERSIONINFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<NLSVERSIONINFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for NLSVERSIONINFO {}
impl ::core::default::Default for NLSVERSIONINFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct NLSVERSIONINFOEX {
    pub dwNLSVersionInfoSize: u32,
    pub dwNLSVersion: u32,
    pub dwDefinedVersion: u32,
    pub dwEffectiveId: u32,
    pub guidCustomVersion: ::windows::core::GUID,
}
impl ::core::marker::Copy for NLSVERSIONINFOEX {}
impl ::core::clone::Clone for NLSVERSIONINFOEX {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for NLSVERSIONINFOEX {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("NLSVERSIONINFOEX").field("dwNLSVersionInfoSize", &self.dwNLSVersionInfoSize).field("dwNLSVersion", &self.dwNLSVersion).field("dwDefinedVersion", &self.dwDefinedVersion).field("dwEffectiveId", &self.dwEffectiveId).field("guidCustomVersion", &self.guidCustomVersion).finish()
    }
}
unsafe impl ::windows::core::Abi for NLSVERSIONINFOEX {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for NLSVERSIONINFOEX {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<NLSVERSIONINFOEX>()) == 0 }
    }
}
impl ::core::cmp::Eq for NLSVERSIONINFOEX {}
impl ::core::default::Default for NLSVERSIONINFOEX {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NLS_CP_CPINFO: u32 = 268435456u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NLS_CP_MBTOWC: u32 = 1073741824u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NLS_CP_WCTOMB: u32 = 2147483648u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct NORM_FORM(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NormalizationOther: NORM_FORM = NORM_FORM(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NormalizationC: NORM_FORM = NORM_FORM(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NormalizationD: NORM_FORM = NORM_FORM(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NormalizationKC: NORM_FORM = NORM_FORM(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NormalizationKD: NORM_FORM = NORM_FORM(6i32);
impl ::core::marker::Copy for NORM_FORM {}
impl ::core::clone::Clone for NORM_FORM {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for NORM_FORM {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for NORM_FORM {
    type Abi = Self;
}
impl ::core::fmt::Debug for NORM_FORM {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("NORM_FORM").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct NUMBERFMTA {
    pub NumDigits: u32,
    pub LeadingZero: u32,
    pub Grouping: u32,
    pub lpDecimalSep: ::windows::core::PSTR,
    pub lpThousandSep: ::windows::core::PSTR,
    pub NegativeOrder: u32,
}
impl ::core::marker::Copy for NUMBERFMTA {}
impl ::core::clone::Clone for NUMBERFMTA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for NUMBERFMTA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("NUMBERFMTA").field("NumDigits", &self.NumDigits).field("LeadingZero", &self.LeadingZero).field("Grouping", &self.Grouping).field("lpDecimalSep", &self.lpDecimalSep).field("lpThousandSep", &self.lpThousandSep).field("NegativeOrder", &self.NegativeOrder).finish()
    }
}
unsafe impl ::windows::core::Abi for NUMBERFMTA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for NUMBERFMTA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<NUMBERFMTA>()) == 0 }
    }
}
impl ::core::cmp::Eq for NUMBERFMTA {}
impl ::core::default::Default for NUMBERFMTA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct NUMBERFMTW {
    pub NumDigits: u32,
    pub LeadingZero: u32,
    pub Grouping: u32,
    pub lpDecimalSep: ::windows::core::PWSTR,
    pub lpThousandSep: ::windows::core::PWSTR,
    pub NegativeOrder: u32,
}
impl ::core::marker::Copy for NUMBERFMTW {}
impl ::core::clone::Clone for NUMBERFMTW {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for NUMBERFMTW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("NUMBERFMTW").field("NumDigits", &self.NumDigits).field("LeadingZero", &self.LeadingZero).field("Grouping", &self.Grouping).field("lpDecimalSep", &self.lpDecimalSep).field("lpThousandSep", &self.lpThousandSep).field("NegativeOrder", &self.NegativeOrder).finish()
    }
}
unsafe impl ::windows::core::Abi for NUMBERFMTW {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for NUMBERFMTW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<NUMBERFMTW>()) == 0 }
    }
}
impl ::core::cmp::Eq for NUMBERFMTW {}
impl ::core::default::Default for NUMBERFMTW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const NUMSYS_NAME_CAPACITY: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn NormalizeString<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(normform: NORM_FORM, lpsrcstring: Param1, cwsrclength: i32, lpdststring: ::windows::core::PWSTR, cwdstlength: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn NormalizeString(normform: NORM_FORM, lpsrcstring: ::windows::core::PCWSTR, cwsrclength: i32, lpdststring: ::windows::core::PWSTR, cwdstlength: i32) -> i32;
        }
        ::core::mem::transmute(NormalizeString(::core::mem::transmute(normform), lpsrcstring.into_param().abi(), ::core::mem::transmute(cwsrclength), ::core::mem::transmute(lpdststring), ::core::mem::transmute(cwdstlength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn NotifyUILanguageChange<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, pcwstrnewlanguage: Param1, pcwstrpreviouslanguage: Param2, dwreserved: u32, pdwstatusrtrn: *mut u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn NotifyUILanguageChange(dwflags: u32, pcwstrnewlanguage: ::windows::core::PCWSTR, pcwstrpreviouslanguage: ::windows::core::PCWSTR, dwreserved: u32, pdwstatusrtrn: *mut u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(NotifyUILanguageChange(::core::mem::transmute(dwflags), pcwstrnewlanguage.into_param().abi(), pcwstrpreviouslanguage.into_param().abi(), ::core::mem::transmute(dwreserved), ::core::mem::transmute(pdwstatusrtrn)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const OFFLINE_SERVICES: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ONLINE_SERVICES: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type PFN_MAPPINGCALLBACKPROC = ::core::option::Option<unsafe extern "system" fn(pbag: *mut MAPPING_PROPERTY_BAG, data: *mut ::core::ffi::c_void, dwdatasize: u32, result: ::windows::core::HRESULT)>;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct RFC1766INFO {
    pub lcid: u32,
    pub wszRfc1766: [u16; 6],
    pub wszLocaleName: [u16; 32],
}
impl ::core::marker::Copy for RFC1766INFO {}
impl ::core::clone::Clone for RFC1766INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for RFC1766INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("RFC1766INFO").field("lcid", &self.lcid).field("wszRfc1766", &self.wszRfc1766).field("wszLocaleName", &self.wszLocaleName).finish()
    }
}
unsafe impl ::windows::core::Abi for RFC1766INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for RFC1766INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<RFC1766INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for RFC1766INFO {}
impl ::core::default::Default for RFC1766INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ResolveLocaleName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lpnametoresolve: Param0, lplocalename: ::windows::core::PWSTR, cchlocalename: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ResolveLocaleName(lpnametoresolve: ::windows::core::PCWSTR, lplocalename: ::windows::core::PWSTR, cchlocalename: i32) -> i32;
        }
        ::core::mem::transmute(ResolveLocaleName(lpnametoresolve.into_param().abi(), ::core::mem::transmute(lplocalename), ::core::mem::transmute(cchlocalename)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn RestoreThreadPreferredUILanguages<'a, Param0: ::windows::core::IntoParam<'a, HSAVEDUILANGUAGES>>(snapshot: Param0) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn RestoreThreadPreferredUILanguages(snapshot: HSAVEDUILANGUAGES);
        }
        RestoreThreadPreferredUILanguages(snapshot.into_param().abi())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SCRIPTCONTF(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidDefault: SCRIPTCONTF = SCRIPTCONTF(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidMerge: SCRIPTCONTF = SCRIPTCONTF(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidAsciiSym: SCRIPTCONTF = SCRIPTCONTF(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidAsciiLatin: SCRIPTCONTF = SCRIPTCONTF(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidLatin: SCRIPTCONTF = SCRIPTCONTF(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidGreek: SCRIPTCONTF = SCRIPTCONTF(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidCyrillic: SCRIPTCONTF = SCRIPTCONTF(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidArmenian: SCRIPTCONTF = SCRIPTCONTF(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidHebrew: SCRIPTCONTF = SCRIPTCONTF(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidArabic: SCRIPTCONTF = SCRIPTCONTF(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidDevanagari: SCRIPTCONTF = SCRIPTCONTF(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidBengali: SCRIPTCONTF = SCRIPTCONTF(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidGurmukhi: SCRIPTCONTF = SCRIPTCONTF(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidGujarati: SCRIPTCONTF = SCRIPTCONTF(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidOriya: SCRIPTCONTF = SCRIPTCONTF(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidTamil: SCRIPTCONTF = SCRIPTCONTF(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidTelugu: SCRIPTCONTF = SCRIPTCONTF(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidKannada: SCRIPTCONTF = SCRIPTCONTF(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidMalayalam: SCRIPTCONTF = SCRIPTCONTF(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidThai: SCRIPTCONTF = SCRIPTCONTF(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidLao: SCRIPTCONTF = SCRIPTCONTF(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidTibetan: SCRIPTCONTF = SCRIPTCONTF(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidGeorgian: SCRIPTCONTF = SCRIPTCONTF(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidHangul: SCRIPTCONTF = SCRIPTCONTF(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidKana: SCRIPTCONTF = SCRIPTCONTF(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidBopomofo: SCRIPTCONTF = SCRIPTCONTF(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidHan: SCRIPTCONTF = SCRIPTCONTF(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidEthiopic: SCRIPTCONTF = SCRIPTCONTF(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidCanSyllabic: SCRIPTCONTF = SCRIPTCONTF(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidCherokee: SCRIPTCONTF = SCRIPTCONTF(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidYi: SCRIPTCONTF = SCRIPTCONTF(30i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidBraille: SCRIPTCONTF = SCRIPTCONTF(31i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidRunic: SCRIPTCONTF = SCRIPTCONTF(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidOgham: SCRIPTCONTF = SCRIPTCONTF(33i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidSinhala: SCRIPTCONTF = SCRIPTCONTF(34i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidSyriac: SCRIPTCONTF = SCRIPTCONTF(35i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidBurmese: SCRIPTCONTF = SCRIPTCONTF(36i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidKhmer: SCRIPTCONTF = SCRIPTCONTF(37i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidThaana: SCRIPTCONTF = SCRIPTCONTF(38i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidMongolian: SCRIPTCONTF = SCRIPTCONTF(39i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidUserDefined: SCRIPTCONTF = SCRIPTCONTF(40i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidLim: SCRIPTCONTF = SCRIPTCONTF(41i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidFEFirst: SCRIPTCONTF = SCRIPTCONTF(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const sidFELast: SCRIPTCONTF = SCRIPTCONTF(26i32);
impl ::core::marker::Copy for SCRIPTCONTF {}
impl ::core::clone::Clone for SCRIPTCONTF {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPTCONTF {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPTCONTF {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPTCONTF {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPTCONTF").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SCRIPTFONTCONTF(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPTCONTF_FIXED_FONT: SCRIPTFONTCONTF = SCRIPTFONTCONTF(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPTCONTF_PROPORTIONAL_FONT: SCRIPTFONTCONTF = SCRIPTFONTCONTF(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPTCONTF_SCRIPT_USER: SCRIPTFONTCONTF = SCRIPTFONTCONTF(65536i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPTCONTF_SCRIPT_HIDE: SCRIPTFONTCONTF = SCRIPTFONTCONTF(131072i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPTCONTF_SCRIPT_SYSTEM: SCRIPTFONTCONTF = SCRIPTFONTCONTF(262144i32);
impl ::core::marker::Copy for SCRIPTFONTCONTF {}
impl ::core::clone::Clone for SCRIPTFONTCONTF {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPTFONTCONTF {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPTFONTCONTF {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPTFONTCONTF {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPTFONTCONTF").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPTINFO {
    pub ScriptId: u8,
    pub uiCodePage: u32,
    pub wszDescription: [u16; 48],
    pub wszFixedWidthFont: [u16; 32],
    pub wszProportionalFont: [u16; 32],
}
impl ::core::marker::Copy for SCRIPTINFO {}
impl ::core::clone::Clone for SCRIPTINFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPTINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPTINFO").field("ScriptId", &self.ScriptId).field("uiCodePage", &self.uiCodePage).field("wszDescription", &self.wszDescription).field("wszFixedWidthFont", &self.wszFixedWidthFont).field("wszProportionalFont", &self.wszProportionalFont).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPTINFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPTINFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPTINFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPTINFO {}
impl ::core::default::Default for SCRIPTINFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPT_ANALYSIS {
    pub _bitfield: u16,
    pub s: SCRIPT_STATE,
}
impl ::core::marker::Copy for SCRIPT_ANALYSIS {}
impl ::core::clone::Clone for SCRIPT_ANALYSIS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPT_ANALYSIS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPT_ANALYSIS").field("_bitfield", &self._bitfield).field("s", &self.s).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_ANALYSIS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPT_ANALYSIS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPT_ANALYSIS>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPT_ANALYSIS {}
impl ::core::default::Default for SCRIPT_ANALYSIS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPT_CONTROL {
    pub _bitfield: u32,
}
impl ::core::marker::Copy for SCRIPT_CONTROL {}
impl ::core::clone::Clone for SCRIPT_CONTROL {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPT_CONTROL {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPT_CONTROL").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_CONTROL {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPT_CONTROL {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPT_CONTROL>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPT_CONTROL {}
impl ::core::default::Default for SCRIPT_CONTROL {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPT_DIGITSUBSTITUTE {
    pub _bitfield1: u32,
    pub _bitfield2: u32,
    pub dwReserved: u32,
}
impl ::core::marker::Copy for SCRIPT_DIGITSUBSTITUTE {}
impl ::core::clone::Clone for SCRIPT_DIGITSUBSTITUTE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPT_DIGITSUBSTITUTE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPT_DIGITSUBSTITUTE").field("_bitfield1", &self._bitfield1).field("_bitfield2", &self._bitfield2).field("dwReserved", &self.dwReserved).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_DIGITSUBSTITUTE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPT_DIGITSUBSTITUTE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPT_DIGITSUBSTITUTE>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPT_DIGITSUBSTITUTE {}
impl ::core::default::Default for SCRIPT_DIGITSUBSTITUTE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_DIGITSUBSTITUTE_CONTEXT: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_DIGITSUBSTITUTE_NATIONAL: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_DIGITSUBSTITUTE_NONE: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_DIGITSUBSTITUTE_TRADITIONAL: u32 = 3u32;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPT_FONTPROPERTIES {
    pub cBytes: i32,
    pub wgBlank: u16,
    pub wgDefault: u16,
    pub wgInvalid: u16,
    pub wgKashida: u16,
    pub iKashidaWidth: i32,
}
impl ::core::marker::Copy for SCRIPT_FONTPROPERTIES {}
impl ::core::clone::Clone for SCRIPT_FONTPROPERTIES {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPT_FONTPROPERTIES {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPT_FONTPROPERTIES").field("cBytes", &self.cBytes).field("wgBlank", &self.wgBlank).field("wgDefault", &self.wgDefault).field("wgInvalid", &self.wgInvalid).field("wgKashida", &self.wgKashida).field("iKashidaWidth", &self.iKashidaWidth).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_FONTPROPERTIES {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPT_FONTPROPERTIES {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPT_FONTPROPERTIES>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPT_FONTPROPERTIES {}
impl ::core::default::Default for SCRIPT_FONTPROPERTIES {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SCRIPT_IS_COMPLEX_FLAGS(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SIC_ASCIIDIGIT: SCRIPT_IS_COMPLEX_FLAGS = SCRIPT_IS_COMPLEX_FLAGS(2u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SIC_COMPLEX: SCRIPT_IS_COMPLEX_FLAGS = SCRIPT_IS_COMPLEX_FLAGS(1u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SIC_NEUTRAL: SCRIPT_IS_COMPLEX_FLAGS = SCRIPT_IS_COMPLEX_FLAGS(4u32);
impl ::core::marker::Copy for SCRIPT_IS_COMPLEX_FLAGS {}
impl ::core::clone::Clone for SCRIPT_IS_COMPLEX_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPT_IS_COMPLEX_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_IS_COMPLEX_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPT_IS_COMPLEX_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPT_IS_COMPLEX_FLAGS").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPT_ITEM {
    pub iCharPos: i32,
    pub a: SCRIPT_ANALYSIS,
}
impl ::core::marker::Copy for SCRIPT_ITEM {}
impl ::core::clone::Clone for SCRIPT_ITEM {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPT_ITEM {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPT_ITEM").field("iCharPos", &self.iCharPos).field("a", &self.a).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_ITEM {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPT_ITEM {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPT_ITEM>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPT_ITEM {}
impl ::core::default::Default for SCRIPT_ITEM {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SCRIPT_JUSTIFY(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_NONE: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_ARABIC_BLANK: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_CHARACTER: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_RESERVED1: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_BLANK: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_RESERVED2: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_RESERVED3: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_ARABIC_NORMAL: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_ARABIC_KASHIDA: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_ARABIC_ALEF: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_ARABIC_HA: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_ARABIC_RA: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_ARABIC_BA: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_ARABIC_BARA: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_ARABIC_SEEN: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_JUSTIFY_ARABIC_SEEN_M: SCRIPT_JUSTIFY = SCRIPT_JUSTIFY(15i32);
impl ::core::marker::Copy for SCRIPT_JUSTIFY {}
impl ::core::clone::Clone for SCRIPT_JUSTIFY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPT_JUSTIFY {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_JUSTIFY {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPT_JUSTIFY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPT_JUSTIFY").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPT_LOGATTR {
    pub _bitfield: u8,
}
impl ::core::marker::Copy for SCRIPT_LOGATTR {}
impl ::core::clone::Clone for SCRIPT_LOGATTR {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPT_LOGATTR {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPT_LOGATTR").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_LOGATTR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPT_LOGATTR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPT_LOGATTR>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPT_LOGATTR {}
impl ::core::default::Default for SCRIPT_LOGATTR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPT_PROPERTIES {
    pub _bitfield1: u32,
    pub _bitfield2: u32,
}
impl ::core::marker::Copy for SCRIPT_PROPERTIES {}
impl ::core::clone::Clone for SCRIPT_PROPERTIES {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPT_PROPERTIES {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPT_PROPERTIES").field("_bitfield1", &self._bitfield1).field("_bitfield2", &self._bitfield2).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_PROPERTIES {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPT_PROPERTIES {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPT_PROPERTIES>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPT_PROPERTIES {}
impl ::core::default::Default for SCRIPT_PROPERTIES {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPT_STATE {
    pub _bitfield: u16,
}
impl ::core::marker::Copy for SCRIPT_STATE {}
impl ::core::clone::Clone for SCRIPT_STATE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPT_STATE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPT_STATE").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_STATE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPT_STATE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPT_STATE>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPT_STATE {}
impl ::core::default::Default for SCRIPT_STATE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPT_TABDEF {
    pub cTabStops: i32,
    pub iScale: i32,
    pub pTabStops: *mut i32,
    pub iTabOrigin: i32,
}
impl ::core::marker::Copy for SCRIPT_TABDEF {}
impl ::core::clone::Clone for SCRIPT_TABDEF {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPT_TABDEF {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPT_TABDEF").field("cTabStops", &self.cTabStops).field("iScale", &self.iScale).field("pTabStops", &self.pTabStops).field("iTabOrigin", &self.iTabOrigin).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_TABDEF {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPT_TABDEF {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPT_TABDEF>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPT_TABDEF {}
impl ::core::default::Default for SCRIPT_TABDEF {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_TAG_UNKNOWN: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SCRIPT_UNDEFINED: u32 = 0u32;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct SCRIPT_VISATTR {
    pub _bitfield: u16,
}
impl ::core::marker::Copy for SCRIPT_VISATTR {}
impl ::core::clone::Clone for SCRIPT_VISATTR {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SCRIPT_VISATTR {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SCRIPT_VISATTR").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_VISATTR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SCRIPT_VISATTR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SCRIPT_VISATTR>()) == 0 }
    }
}
impl ::core::cmp::Eq for SCRIPT_VISATTR {}
impl ::core::default::Default for SCRIPT_VISATTR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SGCM_RTL: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SORTING_PARADIGM_ICU: u32 = 16777216u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SORTING_PARADIGM_NLS: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_BREAK: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_CLIP: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_DONTGLYPH: u32 = 1073741824u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_DZWG: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_FALLBACK: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_FIT: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_FULLMEASURE: u32 = 67108864u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_GCP: u32 = 512u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_GLYPHS: u32 = 128u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_HIDEHOTKEY: u32 = 8192u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_HOTKEY: u32 = 1024u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_HOTKEYONLY: u32 = 9216u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_LAYOUTRTL: u32 = 536870912u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_LINK: u32 = 4096u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_LPKANSIFALLBACK: u32 = 134217728u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_METAFILE: u32 = 2048u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_NOKASHIDA: u32 = 2147483648u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_PASSWORD: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_PIDX: u32 = 268435456u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_RTL: u32 = 256u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const SSA_TAB: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SYSGEOCLASS(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEOCLASS_NATION: SYSGEOCLASS = SYSGEOCLASS(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEOCLASS_REGION: SYSGEOCLASS = SYSGEOCLASS(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEOCLASS_ALL: SYSGEOCLASS = SYSGEOCLASS(0i32);
impl ::core::marker::Copy for SYSGEOCLASS {}
impl ::core::clone::Clone for SYSGEOCLASS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SYSGEOCLASS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SYSGEOCLASS {
    type Abi = Self;
}
impl ::core::fmt::Debug for SYSGEOCLASS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SYSGEOCLASS").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SYSGEOTYPE(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_NATION: SYSGEOTYPE = SYSGEOTYPE(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_LATITUDE: SYSGEOTYPE = SYSGEOTYPE(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_LONGITUDE: SYSGEOTYPE = SYSGEOTYPE(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_ISO2: SYSGEOTYPE = SYSGEOTYPE(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_ISO3: SYSGEOTYPE = SYSGEOTYPE(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_RFC1766: SYSGEOTYPE = SYSGEOTYPE(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_LCID: SYSGEOTYPE = SYSGEOTYPE(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_FRIENDLYNAME: SYSGEOTYPE = SYSGEOTYPE(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_OFFICIALNAME: SYSGEOTYPE = SYSGEOTYPE(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_TIMEZONES: SYSGEOTYPE = SYSGEOTYPE(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_OFFICIALLANGUAGES: SYSGEOTYPE = SYSGEOTYPE(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_ISO_UN_NUMBER: SYSGEOTYPE = SYSGEOTYPE(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_PARENT: SYSGEOTYPE = SYSGEOTYPE(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_DIALINGCODE: SYSGEOTYPE = SYSGEOTYPE(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_CURRENCYCODE: SYSGEOTYPE = SYSGEOTYPE(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_CURRENCYSYMBOL: SYSGEOTYPE = SYSGEOTYPE(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_NAME: SYSGEOTYPE = SYSGEOTYPE(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const GEO_ID: SYSGEOTYPE = SYSGEOTYPE(18i32);
impl ::core::marker::Copy for SYSGEOTYPE {}
impl ::core::clone::Clone for SYSGEOTYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SYSGEOTYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SYSGEOTYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for SYSGEOTYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SYSGEOTYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct SYSNLS_FUNCTION(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const COMPARE_STRING: SYSNLS_FUNCTION = SYSNLS_FUNCTION(1i32);
impl ::core::marker::Copy for SYSNLS_FUNCTION {}
impl ::core::clone::Clone for SYSNLS_FUNCTION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SYSNLS_FUNCTION {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SYSNLS_FUNCTION {
    type Abi = Self;
}
impl ::core::fmt::Debug for SYSNLS_FUNCTION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SYSNLS_FUNCTION").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptApplyDigitSubstitution(psds: *const SCRIPT_DIGITSUBSTITUTE, psc: *mut SCRIPT_CONTROL, pss: *mut SCRIPT_STATE) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptApplyDigitSubstitution(psds: *const SCRIPT_DIGITSUBSTITUTE, psc: *mut SCRIPT_CONTROL, pss: *mut SCRIPT_STATE) -> ::windows::core::HRESULT;
        }
        ScriptApplyDigitSubstitution(::core::mem::transmute(psds), ::core::mem::transmute(psc), ::core::mem::transmute(pss)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptApplyLogicalWidth(pidx: *const i32, cchars: i32, cglyphs: i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: *const SCRIPT_ANALYSIS, pabc: *mut super::Graphics::Gdi::ABC, pijustify: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptApplyLogicalWidth(pidx: *const i32, cchars: i32, cglyphs: i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: *const SCRIPT_ANALYSIS, pabc: *mut super::Graphics::Gdi::ABC, pijustify: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptApplyLogicalWidth(::core::mem::transmute(pidx), ::core::mem::transmute(cchars), ::core::mem::transmute(cglyphs), ::core::mem::transmute(pwlogclust), ::core::mem::transmute(psva), ::core::mem::transmute(piadvance), ::core::mem::transmute(psa), ::core::mem::transmute(pabc), ::core::mem::transmute(pijustify)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptBreak<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(pwcchars: Param0, cchars: i32, psa: *const SCRIPT_ANALYSIS) -> ::windows::core::Result<SCRIPT_LOGATTR> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptBreak(pwcchars: ::windows::core::PCWSTR, cchars: i32, psa: *const SCRIPT_ANALYSIS, psla: *mut SCRIPT_LOGATTR) -> ::windows::core::HRESULT;
        }
        let mut result__: SCRIPT_LOGATTR = ::core::mem::zeroed();
        ScriptBreak(pwcchars.into_param().abi(), ::core::mem::transmute(cchars), ::core::mem::transmute(psa), ::core::mem::transmute(&mut result__)).from_abi::<SCRIPT_LOGATTR>(result__)
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ScriptCPtoX<'a, Param1: ::windows::core::IntoParam<'a, super::Foundation::BOOL>>(icp: i32, ftrailing: Param1, cchars: i32, cglyphs: i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: *const SCRIPT_ANALYSIS, pix: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptCPtoX(icp: i32, ftrailing: super::Foundation::BOOL, cchars: i32, cglyphs: i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: *const SCRIPT_ANALYSIS, pix: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptCPtoX(::core::mem::transmute(icp), ftrailing.into_param().abi(), ::core::mem::transmute(cchars), ::core::mem::transmute(cglyphs), ::core::mem::transmute(pwlogclust), ::core::mem::transmute(psva), ::core::mem::transmute(piadvance), ::core::mem::transmute(psa), ::core::mem::transmute(pix)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptCacheGetHeight<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, tmheight: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptCacheGetHeight(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, tmheight: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptCacheGetHeight(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(tmheight)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptFreeCache(psc: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptFreeCache(psc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT;
        }
        ScriptFreeCache(::core::mem::transmute(psc)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptGetCMap<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, pwcinchars: Param2, cchars: i32, dwflags: u32, pwoutglyphs: *mut u16) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptGetCMap(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, pwcinchars: ::windows::core::PCWSTR, cchars: i32, dwflags: u32, pwoutglyphs: *mut u16) -> ::windows::core::HRESULT;
        }
        ScriptGetCMap(hdc.into_param().abi(), ::core::mem::transmute(psc), pwcinchars.into_param().abi(), ::core::mem::transmute(cchars), ::core::mem::transmute(dwflags), ::core::mem::transmute(pwoutglyphs)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptGetFontAlternateGlyphs<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, tagfeature: u32, wglyphid: u16, cmaxalternates: i32, palternateglyphs: *mut u16, pcalternates: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptGetFontAlternateGlyphs(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, tagfeature: u32, wglyphid: u16, cmaxalternates: i32, palternateglyphs: *mut u16, pcalternates: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptGetFontAlternateGlyphs(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), ::core::mem::transmute(tagscript), ::core::mem::transmute(taglangsys), ::core::mem::transmute(tagfeature), ::core::mem::transmute(wglyphid), ::core::mem::transmute(cmaxalternates), ::core::mem::transmute(palternateglyphs), ::core::mem::transmute(pcalternates)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptGetFontFeatureTags<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, cmaxtags: i32, pfeaturetags: *mut u32, pctags: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptGetFontFeatureTags(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, cmaxtags: i32, pfeaturetags: *mut u32, pctags: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptGetFontFeatureTags(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), ::core::mem::transmute(tagscript), ::core::mem::transmute(taglangsys), ::core::mem::transmute(cmaxtags), ::core::mem::transmute(pfeaturetags), ::core::mem::transmute(pctags)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptGetFontLanguageTags<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, cmaxtags: i32, plangsystags: *mut u32, pctags: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptGetFontLanguageTags(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, cmaxtags: i32, plangsystags: *mut u32, pctags: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptGetFontLanguageTags(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), ::core::mem::transmute(tagscript), ::core::mem::transmute(cmaxtags), ::core::mem::transmute(plangsystags), ::core::mem::transmute(pctags)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptGetFontProperties<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, sfp: *mut SCRIPT_FONTPROPERTIES) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptGetFontProperties(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, sfp: *mut SCRIPT_FONTPROPERTIES) -> ::windows::core::HRESULT;
        }
        ScriptGetFontProperties(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(sfp)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptGetFontScriptTags<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, cmaxtags: i32, pscripttags: *mut u32, pctags: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptGetFontScriptTags(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, cmaxtags: i32, pscripttags: *mut u32, pctags: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptGetFontScriptTags(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), ::core::mem::transmute(cmaxtags), ::core::mem::transmute(pscripttags), ::core::mem::transmute(pctags)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptGetGlyphABCWidth<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, wglyph: u16, pabc: *mut super::Graphics::Gdi::ABC) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptGetGlyphABCWidth(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, wglyph: u16, pabc: *mut super::Graphics::Gdi::ABC) -> ::windows::core::HRESULT;
        }
        ScriptGetGlyphABCWidth(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(wglyph), ::core::mem::transmute(pabc)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptGetLogicalWidths(psa: *const SCRIPT_ANALYSIS, cchars: i32, cglyphs: i32, piglyphwidth: *const i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, pidx: *const i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptGetLogicalWidths(psa: *const SCRIPT_ANALYSIS, cchars: i32, cglyphs: i32, piglyphwidth: *const i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, pidx: *const i32) -> ::windows::core::HRESULT;
        }
        ScriptGetLogicalWidths(::core::mem::transmute(psa), ::core::mem::transmute(cchars), ::core::mem::transmute(cglyphs), ::core::mem::transmute(piglyphwidth), ::core::mem::transmute(pwlogclust), ::core::mem::transmute(psva), ::core::mem::transmute(pidx)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptGetProperties(ppsp: *mut *mut *mut SCRIPT_PROPERTIES, pinumscripts: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptGetProperties(ppsp: *mut *mut *mut SCRIPT_PROPERTIES, pinumscripts: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptGetProperties(::core::mem::transmute(ppsp), ::core::mem::transmute(pinumscripts)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptIsComplex<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(pwcinchars: Param0, cinchars: i32, dwflags: SCRIPT_IS_COMPLEX_FLAGS) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptIsComplex(pwcinchars: ::windows::core::PCWSTR, cinchars: i32, dwflags: SCRIPT_IS_COMPLEX_FLAGS) -> ::windows::core::HRESULT;
        }
        ScriptIsComplex(pwcinchars.into_param().abi(), ::core::mem::transmute(cinchars), ::core::mem::transmute(dwflags)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptItemize<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(pwcinchars: Param0, cinchars: i32, cmaxitems: i32, pscontrol: *const SCRIPT_CONTROL, psstate: *const SCRIPT_STATE, pitems: *mut SCRIPT_ITEM, pcitems: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptItemize(pwcinchars: ::windows::core::PCWSTR, cinchars: i32, cmaxitems: i32, pscontrol: *const SCRIPT_CONTROL, psstate: *const SCRIPT_STATE, pitems: *mut SCRIPT_ITEM, pcitems: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptItemize(pwcinchars.into_param().abi(), ::core::mem::transmute(cinchars), ::core::mem::transmute(cmaxitems), ::core::mem::transmute(pscontrol), ::core::mem::transmute(psstate), ::core::mem::transmute(pitems), ::core::mem::transmute(pcitems)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptItemizeOpenType<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(pwcinchars: Param0, cinchars: i32, cmaxitems: i32, pscontrol: *const SCRIPT_CONTROL, psstate: *const SCRIPT_STATE, pitems: *mut SCRIPT_ITEM, pscripttags: *mut u32, pcitems: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptItemizeOpenType(pwcinchars: ::windows::core::PCWSTR, cinchars: i32, cmaxitems: i32, pscontrol: *const SCRIPT_CONTROL, psstate: *const SCRIPT_STATE, pitems: *mut SCRIPT_ITEM, pscripttags: *mut u32, pcitems: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptItemizeOpenType(pwcinchars.into_param().abi(), ::core::mem::transmute(cinchars), ::core::mem::transmute(cmaxitems), ::core::mem::transmute(pscontrol), ::core::mem::transmute(psstate), ::core::mem::transmute(pitems), ::core::mem::transmute(pscripttags), ::core::mem::transmute(pcitems)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptJustify(psva: *const SCRIPT_VISATTR, piadvance: *const i32, cglyphs: i32, idx: i32, iminkashida: i32) -> ::windows::core::Result<i32> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptJustify(psva: *const SCRIPT_VISATTR, piadvance: *const i32, cglyphs: i32, idx: i32, iminkashida: i32, pijustify: *mut i32) -> ::windows::core::HRESULT;
        }
        let mut result__: i32 = ::core::mem::zeroed();
        ScriptJustify(::core::mem::transmute(psva), ::core::mem::transmute(piadvance), ::core::mem::transmute(cglyphs), ::core::mem::transmute(idx), ::core::mem::transmute(iminkashida), ::core::mem::transmute(&mut result__)).from_abi::<i32>(result__)
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptLayout(cruns: i32, pblevel: *const u8, pivisualtological: *mut i32, pilogicaltovisual: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptLayout(cruns: i32, pblevel: *const u8, pivisualtological: *mut i32, pilogicaltovisual: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptLayout(::core::mem::transmute(cruns), ::core::mem::transmute(pblevel), ::core::mem::transmute(pivisualtological), ::core::mem::transmute(pilogicaltovisual)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptPlace<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, pwglyphs: *const u16, cglyphs: i32, psva: *const SCRIPT_VISATTR, psa: *mut SCRIPT_ANALYSIS, piadvance: *mut i32, pgoffset: *mut GOFFSET, pabc: *mut super::Graphics::Gdi::ABC) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptPlace(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, pwglyphs: *const u16, cglyphs: i32, psva: *const SCRIPT_VISATTR, psa: *mut SCRIPT_ANALYSIS, piadvance: *mut i32, pgoffset: *mut GOFFSET, pabc: *mut super::Graphics::Gdi::ABC) -> ::windows::core::HRESULT;
        }
        ScriptPlace(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(pwglyphs), ::core::mem::transmute(cglyphs), ::core::mem::transmute(psva), ::core::mem::transmute(psa), ::core::mem::transmute(piadvance), ::core::mem::transmute(pgoffset), ::core::mem::transmute(pabc)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptPlaceOpenType<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>, Param8: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, psa: *mut SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, rcrangechars: *const i32, rprangeproperties: *const *const textrange_properties, cranges: i32, pwcchars: Param8, pwlogclust: *const u16, pcharprops: *const script_charprop, cchars: i32, pwglyphs: *const u16, pglyphprops: *const script_glyphprop, cglyphs: i32, piadvance: *mut i32, pgoffset: *mut GOFFSET, pabc: *mut super::Graphics::Gdi::ABC) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptPlaceOpenType(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *mut SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, rcrangechars: *const i32, rprangeproperties: *const *const textrange_properties, cranges: i32, pwcchars: ::windows::core::PCWSTR, pwlogclust: *const u16, pcharprops: *const script_charprop, cchars: i32, pwglyphs: *const u16, pglyphprops: *const script_glyphprop, cglyphs: i32, piadvance: *mut i32, pgoffset: *mut GOFFSET, pabc: *mut super::Graphics::Gdi::ABC) -> ::windows::core::HRESULT;
        }
        ScriptPlaceOpenType(
            hdc.into_param().abi(),
            ::core::mem::transmute(psc),
            ::core::mem::transmute(psa),
            ::core::mem::transmute(tagscript),
            ::core::mem::transmute(taglangsys),
            ::core::mem::transmute(rcrangechars),
            ::core::mem::transmute(rprangeproperties),
            ::core::mem::transmute(cranges),
            pwcchars.into_param().abi(),
            ::core::mem::transmute(pwlogclust),
            ::core::mem::transmute(pcharprops),
            ::core::mem::transmute(cchars),
            ::core::mem::transmute(pwglyphs),
            ::core::mem::transmute(pglyphprops),
            ::core::mem::transmute(cglyphs),
            ::core::mem::transmute(piadvance),
            ::core::mem::transmute(pgoffset),
            ::core::mem::transmute(pabc),
        )
        .ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptPositionSingleGlyph<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>, Param9: ::windows::core::IntoParam<'a, GOFFSET>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, tagfeature: u32, lparameter: i32, wglyphid: u16, iadvance: i32, goffset: Param9, pioutadvance: *mut i32, poutgoffset: *mut GOFFSET) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptPositionSingleGlyph(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, tagfeature: u32, lparameter: i32, wglyphid: u16, iadvance: i32, goffset: GOFFSET, pioutadvance: *mut i32, poutgoffset: *mut GOFFSET) -> ::windows::core::HRESULT;
        }
        ScriptPositionSingleGlyph(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), ::core::mem::transmute(tagscript), ::core::mem::transmute(taglangsys), ::core::mem::transmute(tagfeature), ::core::mem::transmute(lparameter), ::core::mem::transmute(wglyphid), ::core::mem::transmute(iadvance), goffset.into_param().abi(), ::core::mem::transmute(pioutadvance), ::core::mem::transmute(poutgoffset)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptRecordDigitSubstitution(locale: u32) -> ::windows::core::Result<SCRIPT_DIGITSUBSTITUTE> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptRecordDigitSubstitution(locale: u32, psds: *mut SCRIPT_DIGITSUBSTITUTE) -> ::windows::core::HRESULT;
        }
        let mut result__: SCRIPT_DIGITSUBSTITUTE = ::core::mem::zeroed();
        ScriptRecordDigitSubstitution(::core::mem::transmute(locale), ::core::mem::transmute(&mut result__)).from_abi::<SCRIPT_DIGITSUBSTITUTE>(result__)
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptShape<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, pwcchars: Param2, cchars: i32, cmaxglyphs: i32, psa: *mut SCRIPT_ANALYSIS, pwoutglyphs: *mut u16, pwlogclust: *mut u16, psva: *mut SCRIPT_VISATTR, pcglyphs: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptShape(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, pwcchars: ::windows::core::PCWSTR, cchars: i32, cmaxglyphs: i32, psa: *mut SCRIPT_ANALYSIS, pwoutglyphs: *mut u16, pwlogclust: *mut u16, psva: *mut SCRIPT_VISATTR, pcglyphs: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptShape(hdc.into_param().abi(), ::core::mem::transmute(psc), pwcchars.into_param().abi(), ::core::mem::transmute(cchars), ::core::mem::transmute(cmaxglyphs), ::core::mem::transmute(psa), ::core::mem::transmute(pwoutglyphs), ::core::mem::transmute(pwlogclust), ::core::mem::transmute(psva), ::core::mem::transmute(pcglyphs)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptShapeOpenType<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>, Param8: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, psa: *mut SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, rcrangechars: *const i32, rprangeproperties: *const *const textrange_properties, cranges: i32, pwcchars: Param8, cchars: i32, cmaxglyphs: i32, pwlogclust: *mut u16, pcharprops: *mut script_charprop, pwoutglyphs: *mut u16, poutglyphprops: *mut script_glyphprop, pcglyphs: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptShapeOpenType(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *mut SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, rcrangechars: *const i32, rprangeproperties: *const *const textrange_properties, cranges: i32, pwcchars: ::windows::core::PCWSTR, cchars: i32, cmaxglyphs: i32, pwlogclust: *mut u16, pcharprops: *mut script_charprop, pwoutglyphs: *mut u16, poutglyphprops: *mut script_glyphprop, pcglyphs: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptShapeOpenType(
            hdc.into_param().abi(),
            ::core::mem::transmute(psc),
            ::core::mem::transmute(psa),
            ::core::mem::transmute(tagscript),
            ::core::mem::transmute(taglangsys),
            ::core::mem::transmute(rcrangechars),
            ::core::mem::transmute(rprangeproperties),
            ::core::mem::transmute(cranges),
            pwcchars.into_param().abi(),
            ::core::mem::transmute(cchars),
            ::core::mem::transmute(cmaxglyphs),
            ::core::mem::transmute(pwlogclust),
            ::core::mem::transmute(pcharprops),
            ::core::mem::transmute(pwoutglyphs),
            ::core::mem::transmute(poutglyphprops),
            ::core::mem::transmute(pcglyphs),
        )
        .ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptStringAnalyse<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, pstring: *const ::core::ffi::c_void, cstring: i32, cglyphs: i32, icharset: i32, dwflags: u32, ireqwidth: i32, pscontrol: *const SCRIPT_CONTROL, psstate: *const SCRIPT_STATE, pidx: *const i32, ptabdef: *const SCRIPT_TABDEF, pbinclass: *const u8, pssa: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptStringAnalyse(hdc: super::Graphics::Gdi::HDC, pstring: *const ::core::ffi::c_void, cstring: i32, cglyphs: i32, icharset: i32, dwflags: u32, ireqwidth: i32, pscontrol: *const SCRIPT_CONTROL, psstate: *const SCRIPT_STATE, pidx: *const i32, ptabdef: *const SCRIPT_TABDEF, pbinclass: *const u8, pssa: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT;
        }
        ScriptStringAnalyse(hdc.into_param().abi(), ::core::mem::transmute(pstring), ::core::mem::transmute(cstring), ::core::mem::transmute(cglyphs), ::core::mem::transmute(icharset), ::core::mem::transmute(dwflags), ::core::mem::transmute(ireqwidth), ::core::mem::transmute(pscontrol), ::core::mem::transmute(psstate), ::core::mem::transmute(pidx), ::core::mem::transmute(ptabdef), ::core::mem::transmute(pbinclass), ::core::mem::transmute(pssa)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ScriptStringCPtoX<'a, Param2: ::windows::core::IntoParam<'a, super::Foundation::BOOL>>(ssa: *const ::core::ffi::c_void, icp: i32, ftrailing: Param2) -> ::windows::core::Result<i32> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptStringCPtoX(ssa: *const ::core::ffi::c_void, icp: i32, ftrailing: super::Foundation::BOOL, px: *mut i32) -> ::windows::core::HRESULT;
        }
        let mut result__: i32 = ::core::mem::zeroed();
        ScriptStringCPtoX(::core::mem::transmute(ssa), ::core::mem::transmute(icp), ftrailing.into_param().abi(), ::core::mem::transmute(&mut result__)).from_abi::<i32>(result__)
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptStringFree(pssa: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptStringFree(pssa: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT;
        }
        ScriptStringFree(::core::mem::transmute(pssa)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptStringGetLogicalWidths(ssa: *const ::core::ffi::c_void, pidx: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptStringGetLogicalWidths(ssa: *const ::core::ffi::c_void, pidx: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptStringGetLogicalWidths(::core::mem::transmute(ssa), ::core::mem::transmute(pidx)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptStringGetOrder(ssa: *const ::core::ffi::c_void, puorder: *mut u32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptStringGetOrder(ssa: *const ::core::ffi::c_void, puorder: *mut u32) -> ::windows::core::HRESULT;
        }
        ScriptStringGetOrder(::core::mem::transmute(ssa), ::core::mem::transmute(puorder)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation', 'Win32_Graphics_Gdi'*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
#[inline]
pub unsafe fn ScriptStringOut<'a, Param7: ::windows::core::IntoParam<'a, super::Foundation::BOOL>>(ssa: *const ::core::ffi::c_void, ix: i32, iy: i32, uoptions: super::Graphics::Gdi::ETO_OPTIONS, prc: *const super::Foundation::RECT, iminsel: i32, imaxsel: i32, fdisabled: Param7) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptStringOut(ssa: *const ::core::ffi::c_void, ix: i32, iy: i32, uoptions: super::Graphics::Gdi::ETO_OPTIONS, prc: *const super::Foundation::RECT, iminsel: i32, imaxsel: i32, fdisabled: super::Foundation::BOOL) -> ::windows::core::HRESULT;
        }
        ScriptStringOut(::core::mem::transmute(ssa), ::core::mem::transmute(ix), ::core::mem::transmute(iy), ::core::mem::transmute(uoptions), ::core::mem::transmute(prc), ::core::mem::transmute(iminsel), ::core::mem::transmute(imaxsel), fdisabled.into_param().abi()).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptStringValidate(ssa: *const ::core::ffi::c_void) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptStringValidate(ssa: *const ::core::ffi::c_void) -> ::windows::core::HRESULT;
        }
        ScriptStringValidate(::core::mem::transmute(ssa)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptStringXtoCP(ssa: *const ::core::ffi::c_void, ix: i32, pich: *mut i32, pitrailing: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptStringXtoCP(ssa: *const ::core::ffi::c_void, ix: i32, pich: *mut i32, pitrailing: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptStringXtoCP(::core::mem::transmute(ssa), ::core::mem::transmute(ix), ::core::mem::transmute(pich), ::core::mem::transmute(pitrailing)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptString_pLogAttr(ssa: *const ::core::ffi::c_void) -> *mut SCRIPT_LOGATTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptString_pLogAttr(ssa: *const ::core::ffi::c_void) -> *mut SCRIPT_LOGATTR;
        }
        ::core::mem::transmute(ScriptString_pLogAttr(::core::mem::transmute(ssa)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ScriptString_pSize(ssa: *const ::core::ffi::c_void) -> *mut super::Foundation::SIZE {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptString_pSize(ssa: *const ::core::ffi::c_void) -> *mut super::Foundation::SIZE;
        }
        ::core::mem::transmute(ScriptString_pSize(::core::mem::transmute(ssa)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptString_pcOutChars(ssa: *const ::core::ffi::c_void) -> *mut i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptString_pcOutChars(ssa: *const ::core::ffi::c_void) -> *mut i32;
        }
        ::core::mem::transmute(ScriptString_pcOutChars(::core::mem::transmute(ssa)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Graphics_Gdi'*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
#[inline]
pub unsafe fn ScriptSubstituteSingleGlyph<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, tagfeature: u32, lparameter: i32, wglyphid: u16, pwoutglyphid: *mut u16) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptSubstituteSingleGlyph(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, tagfeature: u32, lparameter: i32, wglyphid: u16, pwoutglyphid: *mut u16) -> ::windows::core::HRESULT;
        }
        ScriptSubstituteSingleGlyph(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), ::core::mem::transmute(tagscript), ::core::mem::transmute(taglangsys), ::core::mem::transmute(tagfeature), ::core::mem::transmute(lparameter), ::core::mem::transmute(wglyphid), ::core::mem::transmute(pwoutglyphid)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation', 'Win32_Graphics_Gdi'*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
#[inline]
pub unsafe fn ScriptTextOut<'a, Param0: ::windows::core::IntoParam<'a, super::Graphics::Gdi::HDC>, Param7: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(hdc: Param0, psc: *mut *mut ::core::ffi::c_void, x: i32, y: i32, fuoptions: u32, lprc: *const super::Foundation::RECT, psa: *const SCRIPT_ANALYSIS, pwcreserved: Param7, ireserved: i32, pwglyphs: *const u16, cglyphs: i32, piadvance: *const i32, pijustify: *const i32, pgoffset: *const GOFFSET) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptTextOut(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, x: i32, y: i32, fuoptions: u32, lprc: *const super::Foundation::RECT, psa: *const SCRIPT_ANALYSIS, pwcreserved: ::windows::core::PCWSTR, ireserved: i32, pwglyphs: *const u16, cglyphs: i32, piadvance: *const i32, pijustify: *const i32, pgoffset: *const GOFFSET) -> ::windows::core::HRESULT;
        }
        ScriptTextOut(hdc.into_param().abi(), ::core::mem::transmute(psc), ::core::mem::transmute(x), ::core::mem::transmute(y), ::core::mem::transmute(fuoptions), ::core::mem::transmute(lprc), ::core::mem::transmute(psa), pwcreserved.into_param().abi(), ::core::mem::transmute(ireserved), ::core::mem::transmute(pwglyphs), ::core::mem::transmute(cglyphs), ::core::mem::transmute(piadvance), ::core::mem::transmute(pijustify), ::core::mem::transmute(pgoffset)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ScriptXtoCP(ix: i32, cchars: i32, cglyphs: i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: *const SCRIPT_ANALYSIS, picp: *mut i32, pitrailing: *mut i32) -> ::windows::core::Result<()> {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ScriptXtoCP(ix: i32, cchars: i32, cglyphs: i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: *const SCRIPT_ANALYSIS, picp: *mut i32, pitrailing: *mut i32) -> ::windows::core::HRESULT;
        }
        ScriptXtoCP(::core::mem::transmute(ix), ::core::mem::transmute(cchars), ::core::mem::transmute(cglyphs), ::core::mem::transmute(pwlogclust), ::core::mem::transmute(psva), ::core::mem::transmute(piadvance), ::core::mem::transmute(psa), ::core::mem::transmute(picp), ::core::mem::transmute(pitrailing)).ok()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetCalendarInfoA<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: u32, calendar: u32, caltype: u32, lpcaldata: Param3) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetCalendarInfoA(locale: u32, calendar: u32, caltype: u32, lpcaldata: ::windows::core::PCSTR) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(SetCalendarInfoA(::core::mem::transmute(locale), ::core::mem::transmute(calendar), ::core::mem::transmute(caltype), lpcaldata.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetCalendarInfoW<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, calendar: u32, caltype: u32, lpcaldata: Param3) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetCalendarInfoW(locale: u32, calendar: u32, caltype: u32, lpcaldata: ::windows::core::PCWSTR) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(SetCalendarInfoW(::core::mem::transmute(locale), ::core::mem::transmute(calendar), ::core::mem::transmute(caltype), lpcaldata.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetLocaleInfoA<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: u32, lctype: u32, lplcdata: Param2) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetLocaleInfoA(locale: u32, lctype: u32, lplcdata: ::windows::core::PCSTR) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(SetLocaleInfoA(::core::mem::transmute(locale), ::core::mem::transmute(lctype), lplcdata.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetLocaleInfoW<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(locale: u32, lctype: u32, lplcdata: Param2) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetLocaleInfoW(locale: u32, lctype: u32, lplcdata: ::windows::core::PCWSTR) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(SetLocaleInfoW(::core::mem::transmute(locale), ::core::mem::transmute(lctype), lplcdata.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetProcessPreferredUILanguages<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, pwszlanguagesbuffer: Param1, pulnumlanguages: *mut u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetProcessPreferredUILanguages(dwflags: u32, pwszlanguagesbuffer: ::windows::core::PCWSTR, pulnumlanguages: *mut u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(SetProcessPreferredUILanguages(::core::mem::transmute(dwflags), pwszlanguagesbuffer.into_param().abi(), ::core::mem::transmute(pulnumlanguages)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetThreadLocale(locale: u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetThreadLocale(locale: u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(SetThreadLocale(::core::mem::transmute(locale)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetThreadPreferredUILanguages<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, pwszlanguagesbuffer: Param1, pulnumlanguages: *mut u32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetThreadPreferredUILanguages(dwflags: u32, pwszlanguagesbuffer: ::windows::core::PCWSTR, pulnumlanguages: *mut u32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(SetThreadPreferredUILanguages(::core::mem::transmute(dwflags), pwszlanguagesbuffer.into_param().abi(), ::core::mem::transmute(pulnumlanguages)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetThreadPreferredUILanguages2<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(flags: u32, languages: Param1, numlanguagesset: *mut u32, snapshot: *mut HSAVEDUILANGUAGES) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetThreadPreferredUILanguages2(flags: u32, languages: ::windows::core::PCWSTR, numlanguagesset: *mut u32, snapshot: *mut HSAVEDUILANGUAGES) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(SetThreadPreferredUILanguages2(::core::mem::transmute(flags), languages.into_param().abi(), ::core::mem::transmute(numlanguagesset), ::core::mem::transmute(snapshot)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn SetThreadUILanguage(langid: u16) -> u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetThreadUILanguage(langid: u16) -> u16;
        }
        ::core::mem::transmute(SetThreadUILanguage(::core::mem::transmute(langid)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetUserGeoID(geoid: i32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetUserGeoID(geoid: i32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(SetUserGeoID(::core::mem::transmute(geoid)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetUserGeoName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(geoname: Param0) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn SetUserGeoName(geoname: ::windows::core::PCWSTR) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(SetUserGeoName(geoname.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
pub const SpellCheckerFactory: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7ab36653_1796_484b_bdfa_e74f1db7c1dc);
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type TIMEFMT_ENUMPROCA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type TIMEFMT_ENUMPROCEX = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: super::Foundation::LPARAM) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type TIMEFMT_ENUMPROCW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct TIME_FORMAT_FLAGS(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const TIME_NOMINUTESORSECONDS: TIME_FORMAT_FLAGS = TIME_FORMAT_FLAGS(1u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const TIME_NOSECONDS: TIME_FORMAT_FLAGS = TIME_FORMAT_FLAGS(2u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const TIME_NOTIMEMARKER: TIME_FORMAT_FLAGS = TIME_FORMAT_FLAGS(4u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const TIME_FORCE24HOURFORMAT: TIME_FORMAT_FLAGS = TIME_FORMAT_FLAGS(8u32);
impl ::core::marker::Copy for TIME_FORMAT_FLAGS {}
impl ::core::clone::Clone for TIME_FORMAT_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for TIME_FORMAT_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for TIME_FORMAT_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for TIME_FORMAT_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TIME_FORMAT_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for TIME_FORMAT_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for TIME_FORMAT_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for TIME_FORMAT_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for TIME_FORMAT_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for TIME_FORMAT_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct TRANSLATE_CHARSET_INFO_FLAGS(pub u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const TCI_SRCCHARSET: TRANSLATE_CHARSET_INFO_FLAGS = TRANSLATE_CHARSET_INFO_FLAGS(1u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const TCI_SRCCODEPAGE: TRANSLATE_CHARSET_INFO_FLAGS = TRANSLATE_CHARSET_INFO_FLAGS(2u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const TCI_SRCFONTSIG: TRANSLATE_CHARSET_INFO_FLAGS = TRANSLATE_CHARSET_INFO_FLAGS(3u32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const TCI_SRCLOCALE: TRANSLATE_CHARSET_INFO_FLAGS = TRANSLATE_CHARSET_INFO_FLAGS(4096u32);
impl ::core::marker::Copy for TRANSLATE_CHARSET_INFO_FLAGS {}
impl ::core::clone::Clone for TRANSLATE_CHARSET_INFO_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for TRANSLATE_CHARSET_INFO_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for TRANSLATE_CHARSET_INFO_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for TRANSLATE_CHARSET_INFO_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TRANSLATE_CHARSET_INFO_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn TranslateCharsetInfo(lpsrc: *mut u32, lpcs: *mut CHARSETINFO, dwflags: TRANSLATE_CHARSET_INFO_FLAGS) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn TranslateCharsetInfo(lpsrc: *mut u32, lpcs: *mut CHARSETINFO, dwflags: TRANSLATE_CHARSET_INFO_FLAGS) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(TranslateCharsetInfo(::core::mem::transmute(lpsrc), ::core::mem::transmute(lpcs), ::core::mem::transmute(dwflags)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U16_MAX_LENGTH: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U8_LEAD3_T1_BITS: &'static str = " 000000000000\u{10}00";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U8_LEAD4_T1_BITS: &'static str = "\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{1e}\u{f}\u{f}\u{f}\u{0}\u{0}\u{0}\u{0}";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U8_MAX_LENGTH: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UAcceptResult(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_ACCEPT_FAILED: UAcceptResult = UAcceptResult(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_ACCEPT_VALID: UAcceptResult = UAcceptResult(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_ACCEPT_FALLBACK: UAcceptResult = UAcceptResult(2i32);
impl ::core::marker::Copy for UAcceptResult {}
impl ::core::clone::Clone for UAcceptResult {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UAcceptResult {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UAcceptResult {
    type Abi = Self;
}
impl ::core::fmt::Debug for UAcceptResult {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UAcceptResult").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UAlphabeticIndexLabelType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ALPHAINDEX_NORMAL: UAlphabeticIndexLabelType = UAlphabeticIndexLabelType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ALPHAINDEX_UNDERFLOW: UAlphabeticIndexLabelType = UAlphabeticIndexLabelType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ALPHAINDEX_INFLOW: UAlphabeticIndexLabelType = UAlphabeticIndexLabelType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ALPHAINDEX_OVERFLOW: UAlphabeticIndexLabelType = UAlphabeticIndexLabelType(3i32);
impl ::core::marker::Copy for UAlphabeticIndexLabelType {}
impl ::core::clone::Clone for UAlphabeticIndexLabelType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UAlphabeticIndexLabelType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UAlphabeticIndexLabelType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UAlphabeticIndexLabelType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UAlphabeticIndexLabelType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_DEFAULT_LTR: u32 = 254u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_DEFAULT_RTL: u32 = 255u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_DO_MIRRORING: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_INSERT_LRM_FOR_NUMERIC: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_KEEP_BASE_COMBINING: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_LEVEL_OVERRIDE: u32 = 128u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_MAP_NOWHERE: i32 = -1i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_MAX_EXPLICIT_LEVEL: u32 = 125u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_OUTPUT_REVERSE: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_REMOVE_BIDI_CONTROLS: u32 = 8u32;
#[repr(C)]
pub struct UBiDi(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UBiDiClassCallback = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, c: i32) -> UCharDirection>;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UBiDiDirection(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_LTR: UBiDiDirection = UBiDiDirection(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_RTL: UBiDiDirection = UBiDiDirection(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_MIXED: UBiDiDirection = UBiDiDirection(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_NEUTRAL: UBiDiDirection = UBiDiDirection(3i32);
impl ::core::marker::Copy for UBiDiDirection {}
impl ::core::clone::Clone for UBiDiDirection {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UBiDiDirection {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UBiDiDirection {
    type Abi = Self;
}
impl ::core::fmt::Debug for UBiDiDirection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UBiDiDirection").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UBiDiMirroring(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_MIRRORING_OFF: UBiDiMirroring = UBiDiMirroring(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_MIRRORING_ON: UBiDiMirroring = UBiDiMirroring(1i32);
impl ::core::marker::Copy for UBiDiMirroring {}
impl ::core::clone::Clone for UBiDiMirroring {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UBiDiMirroring {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UBiDiMirroring {
    type Abi = Self;
}
impl ::core::fmt::Debug for UBiDiMirroring {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UBiDiMirroring").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UBiDiOrder(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_LOGICAL: UBiDiOrder = UBiDiOrder(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_VISUAL: UBiDiOrder = UBiDiOrder(1i32);
impl ::core::marker::Copy for UBiDiOrder {}
impl ::core::clone::Clone for UBiDiOrder {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UBiDiOrder {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UBiDiOrder {
    type Abi = Self;
}
impl ::core::fmt::Debug for UBiDiOrder {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UBiDiOrder").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UBiDiReorderingMode(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_REORDER_DEFAULT: UBiDiReorderingMode = UBiDiReorderingMode(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_REORDER_NUMBERS_SPECIAL: UBiDiReorderingMode = UBiDiReorderingMode(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_REORDER_GROUP_NUMBERS_WITH_R: UBiDiReorderingMode = UBiDiReorderingMode(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_REORDER_RUNS_ONLY: UBiDiReorderingMode = UBiDiReorderingMode(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_REORDER_INVERSE_NUMBERS_AS_L: UBiDiReorderingMode = UBiDiReorderingMode(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_REORDER_INVERSE_LIKE_DIRECT: UBiDiReorderingMode = UBiDiReorderingMode(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL: UBiDiReorderingMode = UBiDiReorderingMode(6i32);
impl ::core::marker::Copy for UBiDiReorderingMode {}
impl ::core::clone::Clone for UBiDiReorderingMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UBiDiReorderingMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UBiDiReorderingMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for UBiDiReorderingMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UBiDiReorderingMode").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UBiDiReorderingOption(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_OPTION_DEFAULT: UBiDiReorderingOption = UBiDiReorderingOption(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_OPTION_INSERT_MARKS: UBiDiReorderingOption = UBiDiReorderingOption(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_OPTION_REMOVE_CONTROLS: UBiDiReorderingOption = UBiDiReorderingOption(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBIDI_OPTION_STREAMING: UBiDiReorderingOption = UBiDiReorderingOption(4i32);
impl ::core::marker::Copy for UBiDiReorderingOption {}
impl ::core::clone::Clone for UBiDiReorderingOption {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UBiDiReorderingOption {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UBiDiReorderingOption {
    type Abi = Self;
}
impl ::core::fmt::Debug for UBiDiReorderingOption {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UBiDiReorderingOption").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UBiDiTransform(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UBidiPairedBracketType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BPT_NONE: UBidiPairedBracketType = UBidiPairedBracketType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BPT_OPEN: UBidiPairedBracketType = UBidiPairedBracketType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BPT_CLOSE: UBidiPairedBracketType = UBidiPairedBracketType(2i32);
impl ::core::marker::Copy for UBidiPairedBracketType {}
impl ::core::clone::Clone for UBidiPairedBracketType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UBidiPairedBracketType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UBidiPairedBracketType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UBidiPairedBracketType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UBidiPairedBracketType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UBlockCode(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_NO_BLOCK: UBlockCode = UBlockCode(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BASIC_LATIN: UBlockCode = UBlockCode(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LATIN_1_SUPPLEMENT: UBlockCode = UBlockCode(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LATIN_EXTENDED_A: UBlockCode = UBlockCode(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LATIN_EXTENDED_B: UBlockCode = UBlockCode(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_IPA_EXTENSIONS: UBlockCode = UBlockCode(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SPACING_MODIFIER_LETTERS: UBlockCode = UBlockCode(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_COMBINING_DIACRITICAL_MARKS: UBlockCode = UBlockCode(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GREEK: UBlockCode = UBlockCode(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CYRILLIC: UBlockCode = UBlockCode(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ARMENIAN: UBlockCode = UBlockCode(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HEBREW: UBlockCode = UBlockCode(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ARABIC: UBlockCode = UBlockCode(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SYRIAC: UBlockCode = UBlockCode(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_THAANA: UBlockCode = UBlockCode(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_DEVANAGARI: UBlockCode = UBlockCode(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BENGALI: UBlockCode = UBlockCode(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GURMUKHI: UBlockCode = UBlockCode(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GUJARATI: UBlockCode = UBlockCode(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ORIYA: UBlockCode = UBlockCode(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TAMIL: UBlockCode = UBlockCode(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TELUGU: UBlockCode = UBlockCode(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KANNADA: UBlockCode = UBlockCode(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MALAYALAM: UBlockCode = UBlockCode(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SINHALA: UBlockCode = UBlockCode(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_THAI: UBlockCode = UBlockCode(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LAO: UBlockCode = UBlockCode(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TIBETAN: UBlockCode = UBlockCode(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MYANMAR: UBlockCode = UBlockCode(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GEORGIAN: UBlockCode = UBlockCode(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HANGUL_JAMO: UBlockCode = UBlockCode(30i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ETHIOPIC: UBlockCode = UBlockCode(31i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CHEROKEE: UBlockCode = UBlockCode(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS: UBlockCode = UBlockCode(33i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OGHAM: UBlockCode = UBlockCode(34i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_RUNIC: UBlockCode = UBlockCode(35i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KHMER: UBlockCode = UBlockCode(36i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MONGOLIAN: UBlockCode = UBlockCode(37i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LATIN_EXTENDED_ADDITIONAL: UBlockCode = UBlockCode(38i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GREEK_EXTENDED: UBlockCode = UBlockCode(39i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GENERAL_PUNCTUATION: UBlockCode = UBlockCode(40i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS: UBlockCode = UBlockCode(41i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CURRENCY_SYMBOLS: UBlockCode = UBlockCode(42i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_COMBINING_MARKS_FOR_SYMBOLS: UBlockCode = UBlockCode(43i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LETTERLIKE_SYMBOLS: UBlockCode = UBlockCode(44i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_NUMBER_FORMS: UBlockCode = UBlockCode(45i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ARROWS: UBlockCode = UBlockCode(46i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MATHEMATICAL_OPERATORS: UBlockCode = UBlockCode(47i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MISCELLANEOUS_TECHNICAL: UBlockCode = UBlockCode(48i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CONTROL_PICTURES: UBlockCode = UBlockCode(49i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OPTICAL_CHARACTER_RECOGNITION: UBlockCode = UBlockCode(50i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ENCLOSED_ALPHANUMERICS: UBlockCode = UBlockCode(51i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BOX_DRAWING: UBlockCode = UBlockCode(52i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BLOCK_ELEMENTS: UBlockCode = UBlockCode(53i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GEOMETRIC_SHAPES: UBlockCode = UBlockCode(54i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MISCELLANEOUS_SYMBOLS: UBlockCode = UBlockCode(55i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_DINGBATS: UBlockCode = UBlockCode(56i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BRAILLE_PATTERNS: UBlockCode = UBlockCode(57i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_RADICALS_SUPPLEMENT: UBlockCode = UBlockCode(58i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KANGXI_RADICALS: UBlockCode = UBlockCode(59i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS: UBlockCode = UBlockCode(60i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION: UBlockCode = UBlockCode(61i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HIRAGANA: UBlockCode = UBlockCode(62i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KATAKANA: UBlockCode = UBlockCode(63i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BOPOMOFO: UBlockCode = UBlockCode(64i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HANGUL_COMPATIBILITY_JAMO: UBlockCode = UBlockCode(65i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KANBUN: UBlockCode = UBlockCode(66i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BOPOMOFO_EXTENDED: UBlockCode = UBlockCode(67i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS: UBlockCode = UBlockCode(68i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_COMPATIBILITY: UBlockCode = UBlockCode(69i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A: UBlockCode = UBlockCode(70i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS: UBlockCode = UBlockCode(71i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_YI_SYLLABLES: UBlockCode = UBlockCode(72i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_YI_RADICALS: UBlockCode = UBlockCode(73i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HANGUL_SYLLABLES: UBlockCode = UBlockCode(74i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HIGH_SURROGATES: UBlockCode = UBlockCode(75i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HIGH_PRIVATE_USE_SURROGATES: UBlockCode = UBlockCode(76i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LOW_SURROGATES: UBlockCode = UBlockCode(77i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PRIVATE_USE_AREA: UBlockCode = UBlockCode(78i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PRIVATE_USE: UBlockCode = UBlockCode(78i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS: UBlockCode = UBlockCode(79i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ALPHABETIC_PRESENTATION_FORMS: UBlockCode = UBlockCode(80i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ARABIC_PRESENTATION_FORMS_A: UBlockCode = UBlockCode(81i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_COMBINING_HALF_MARKS: UBlockCode = UBlockCode(82i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_COMPATIBILITY_FORMS: UBlockCode = UBlockCode(83i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SMALL_FORM_VARIANTS: UBlockCode = UBlockCode(84i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ARABIC_PRESENTATION_FORMS_B: UBlockCode = UBlockCode(85i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SPECIALS: UBlockCode = UBlockCode(86i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS: UBlockCode = UBlockCode(87i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OLD_ITALIC: UBlockCode = UBlockCode(88i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GOTHIC: UBlockCode = UBlockCode(89i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_DESERET: UBlockCode = UBlockCode(90i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BYZANTINE_MUSICAL_SYMBOLS: UBlockCode = UBlockCode(91i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MUSICAL_SYMBOLS: UBlockCode = UBlockCode(92i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS: UBlockCode = UBlockCode(93i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B: UBlockCode = UBlockCode(94i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT: UBlockCode = UBlockCode(95i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TAGS: UBlockCode = UBlockCode(96i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CYRILLIC_SUPPLEMENT: UBlockCode = UBlockCode(97i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CYRILLIC_SUPPLEMENTARY: UBlockCode = UBlockCode(97i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TAGALOG: UBlockCode = UBlockCode(98i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HANUNOO: UBlockCode = UBlockCode(99i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BUHID: UBlockCode = UBlockCode(100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TAGBANWA: UBlockCode = UBlockCode(101i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A: UBlockCode = UBlockCode(102i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUPPLEMENTAL_ARROWS_A: UBlockCode = UBlockCode(103i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUPPLEMENTAL_ARROWS_B: UBlockCode = UBlockCode(104i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B: UBlockCode = UBlockCode(105i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS: UBlockCode = UBlockCode(106i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KATAKANA_PHONETIC_EXTENSIONS: UBlockCode = UBlockCode(107i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_VARIATION_SELECTORS: UBlockCode = UBlockCode(108i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A: UBlockCode = UBlockCode(109i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B: UBlockCode = UBlockCode(110i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LIMBU: UBlockCode = UBlockCode(111i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TAI_LE: UBlockCode = UBlockCode(112i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KHMER_SYMBOLS: UBlockCode = UBlockCode(113i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PHONETIC_EXTENSIONS: UBlockCode = UBlockCode(114i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS: UBlockCode = UBlockCode(115i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_YIJING_HEXAGRAM_SYMBOLS: UBlockCode = UBlockCode(116i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LINEAR_B_SYLLABARY: UBlockCode = UBlockCode(117i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LINEAR_B_IDEOGRAMS: UBlockCode = UBlockCode(118i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_AEGEAN_NUMBERS: UBlockCode = UBlockCode(119i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_UGARITIC: UBlockCode = UBlockCode(120i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SHAVIAN: UBlockCode = UBlockCode(121i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OSMANYA: UBlockCode = UBlockCode(122i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CYPRIOT_SYLLABARY: UBlockCode = UBlockCode(123i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TAI_XUAN_JING_SYMBOLS: UBlockCode = UBlockCode(124i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_VARIATION_SELECTORS_SUPPLEMENT: UBlockCode = UBlockCode(125i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION: UBlockCode = UBlockCode(126i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ANCIENT_GREEK_NUMBERS: UBlockCode = UBlockCode(127i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ARABIC_SUPPLEMENT: UBlockCode = UBlockCode(128i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BUGINESE: UBlockCode = UBlockCode(129i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_STROKES: UBlockCode = UBlockCode(130i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT: UBlockCode = UBlockCode(131i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_COPTIC: UBlockCode = UBlockCode(132i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ETHIOPIC_EXTENDED: UBlockCode = UBlockCode(133i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ETHIOPIC_SUPPLEMENT: UBlockCode = UBlockCode(134i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GEORGIAN_SUPPLEMENT: UBlockCode = UBlockCode(135i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GLAGOLITIC: UBlockCode = UBlockCode(136i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KHAROSHTHI: UBlockCode = UBlockCode(137i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MODIFIER_TONE_LETTERS: UBlockCode = UBlockCode(138i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_NEW_TAI_LUE: UBlockCode = UBlockCode(139i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OLD_PERSIAN: UBlockCode = UBlockCode(140i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT: UBlockCode = UBlockCode(141i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUPPLEMENTAL_PUNCTUATION: UBlockCode = UBlockCode(142i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SYLOTI_NAGRI: UBlockCode = UBlockCode(143i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TIFINAGH: UBlockCode = UBlockCode(144i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_VERTICAL_FORMS: UBlockCode = UBlockCode(145i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_NKO: UBlockCode = UBlockCode(146i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BALINESE: UBlockCode = UBlockCode(147i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LATIN_EXTENDED_C: UBlockCode = UBlockCode(148i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LATIN_EXTENDED_D: UBlockCode = UBlockCode(149i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PHAGS_PA: UBlockCode = UBlockCode(150i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PHOENICIAN: UBlockCode = UBlockCode(151i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CUNEIFORM: UBlockCode = UBlockCode(152i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION: UBlockCode = UBlockCode(153i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_COUNTING_ROD_NUMERALS: UBlockCode = UBlockCode(154i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUNDANESE: UBlockCode = UBlockCode(155i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LEPCHA: UBlockCode = UBlockCode(156i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OL_CHIKI: UBlockCode = UBlockCode(157i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CYRILLIC_EXTENDED_A: UBlockCode = UBlockCode(158i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_VAI: UBlockCode = UBlockCode(159i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CYRILLIC_EXTENDED_B: UBlockCode = UBlockCode(160i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SAURASHTRA: UBlockCode = UBlockCode(161i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KAYAH_LI: UBlockCode = UBlockCode(162i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_REJANG: UBlockCode = UBlockCode(163i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CHAM: UBlockCode = UBlockCode(164i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ANCIENT_SYMBOLS: UBlockCode = UBlockCode(165i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PHAISTOS_DISC: UBlockCode = UBlockCode(166i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LYCIAN: UBlockCode = UBlockCode(167i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CARIAN: UBlockCode = UBlockCode(168i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LYDIAN: UBlockCode = UBlockCode(169i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MAHJONG_TILES: UBlockCode = UBlockCode(170i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_DOMINO_TILES: UBlockCode = UBlockCode(171i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SAMARITAN: UBlockCode = UBlockCode(172i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED: UBlockCode = UBlockCode(173i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TAI_THAM: UBlockCode = UBlockCode(174i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_VEDIC_EXTENSIONS: UBlockCode = UBlockCode(175i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LISU: UBlockCode = UBlockCode(176i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BAMUM: UBlockCode = UBlockCode(177i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_COMMON_INDIC_NUMBER_FORMS: UBlockCode = UBlockCode(178i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_DEVANAGARI_EXTENDED: UBlockCode = UBlockCode(179i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HANGUL_JAMO_EXTENDED_A: UBlockCode = UBlockCode(180i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_JAVANESE: UBlockCode = UBlockCode(181i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MYANMAR_EXTENDED_A: UBlockCode = UBlockCode(182i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TAI_VIET: UBlockCode = UBlockCode(183i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MEETEI_MAYEK: UBlockCode = UBlockCode(184i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HANGUL_JAMO_EXTENDED_B: UBlockCode = UBlockCode(185i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_IMPERIAL_ARAMAIC: UBlockCode = UBlockCode(186i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OLD_SOUTH_ARABIAN: UBlockCode = UBlockCode(187i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_AVESTAN: UBlockCode = UBlockCode(188i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_INSCRIPTIONAL_PARTHIAN: UBlockCode = UBlockCode(189i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_INSCRIPTIONAL_PAHLAVI: UBlockCode = UBlockCode(190i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OLD_TURKIC: UBlockCode = UBlockCode(191i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_RUMI_NUMERAL_SYMBOLS: UBlockCode = UBlockCode(192i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KAITHI: UBlockCode = UBlockCode(193i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_EGYPTIAN_HIEROGLYPHS: UBlockCode = UBlockCode(194i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT: UBlockCode = UBlockCode(195i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT: UBlockCode = UBlockCode(196i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C: UBlockCode = UBlockCode(197i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MANDAIC: UBlockCode = UBlockCode(198i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BATAK: UBlockCode = UBlockCode(199i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ETHIOPIC_EXTENDED_A: UBlockCode = UBlockCode(200i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BRAHMI: UBlockCode = UBlockCode(201i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BAMUM_SUPPLEMENT: UBlockCode = UBlockCode(202i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KANA_SUPPLEMENT: UBlockCode = UBlockCode(203i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PLAYING_CARDS: UBlockCode = UBlockCode(204i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS: UBlockCode = UBlockCode(205i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_EMOTICONS: UBlockCode = UBlockCode(206i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TRANSPORT_AND_MAP_SYMBOLS: UBlockCode = UBlockCode(207i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ALCHEMICAL_SYMBOLS: UBlockCode = UBlockCode(208i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D: UBlockCode = UBlockCode(209i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ARABIC_EXTENDED_A: UBlockCode = UBlockCode(210i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS: UBlockCode = UBlockCode(211i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CHAKMA: UBlockCode = UBlockCode(212i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MEETEI_MAYEK_EXTENSIONS: UBlockCode = UBlockCode(213i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MEROITIC_CURSIVE: UBlockCode = UBlockCode(214i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MEROITIC_HIEROGLYPHS: UBlockCode = UBlockCode(215i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MIAO: UBlockCode = UBlockCode(216i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SHARADA: UBlockCode = UBlockCode(217i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SORA_SOMPENG: UBlockCode = UBlockCode(218i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUNDANESE_SUPPLEMENT: UBlockCode = UBlockCode(219i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TAKRI: UBlockCode = UBlockCode(220i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BASSA_VAH: UBlockCode = UBlockCode(221i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CAUCASIAN_ALBANIAN: UBlockCode = UBlockCode(222i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_COPTIC_EPACT_NUMBERS: UBlockCode = UBlockCode(223i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_COMBINING_DIACRITICAL_MARKS_EXTENDED: UBlockCode = UBlockCode(224i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_DUPLOYAN: UBlockCode = UBlockCode(225i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ELBASAN: UBlockCode = UBlockCode(226i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GEOMETRIC_SHAPES_EXTENDED: UBlockCode = UBlockCode(227i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GRANTHA: UBlockCode = UBlockCode(228i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KHOJKI: UBlockCode = UBlockCode(229i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KHUDAWADI: UBlockCode = UBlockCode(230i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LATIN_EXTENDED_E: UBlockCode = UBlockCode(231i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LINEAR_A: UBlockCode = UBlockCode(232i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MAHAJANI: UBlockCode = UBlockCode(233i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MANICHAEAN: UBlockCode = UBlockCode(234i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MENDE_KIKAKUI: UBlockCode = UBlockCode(235i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MODI: UBlockCode = UBlockCode(236i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MRO: UBlockCode = UBlockCode(237i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MYANMAR_EXTENDED_B: UBlockCode = UBlockCode(238i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_NABATAEAN: UBlockCode = UBlockCode(239i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OLD_NORTH_ARABIAN: UBlockCode = UBlockCode(240i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OLD_PERMIC: UBlockCode = UBlockCode(241i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ORNAMENTAL_DINGBATS: UBlockCode = UBlockCode(242i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PAHAWH_HMONG: UBlockCode = UBlockCode(243i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PALMYRENE: UBlockCode = UBlockCode(244i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PAU_CIN_HAU: UBlockCode = UBlockCode(245i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_PSALTER_PAHLAVI: UBlockCode = UBlockCode(246i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SHORTHAND_FORMAT_CONTROLS: UBlockCode = UBlockCode(247i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SIDDHAM: UBlockCode = UBlockCode(248i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SINHALA_ARCHAIC_NUMBERS: UBlockCode = UBlockCode(249i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUPPLEMENTAL_ARROWS_C: UBlockCode = UBlockCode(250i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TIRHUTA: UBlockCode = UBlockCode(251i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_WARANG_CITI: UBlockCode = UBlockCode(252i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_AHOM: UBlockCode = UBlockCode(253i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ANATOLIAN_HIEROGLYPHS: UBlockCode = UBlockCode(254i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CHEROKEE_SUPPLEMENT: UBlockCode = UBlockCode(255i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E: UBlockCode = UBlockCode(256i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_EARLY_DYNASTIC_CUNEIFORM: UBlockCode = UBlockCode(257i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HATRAN: UBlockCode = UBlockCode(258i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MULTANI: UBlockCode = UBlockCode(259i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OLD_HUNGARIAN: UBlockCode = UBlockCode(260i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS: UBlockCode = UBlockCode(261i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SUTTON_SIGNWRITING: UBlockCode = UBlockCode(262i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ADLAM: UBlockCode = UBlockCode(263i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_BHAIKSUKI: UBlockCode = UBlockCode(264i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CYRILLIC_EXTENDED_C: UBlockCode = UBlockCode(265i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GLAGOLITIC_SUPPLEMENT: UBlockCode = UBlockCode(266i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION: UBlockCode = UBlockCode(267i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MARCHEN: UBlockCode = UBlockCode(268i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MONGOLIAN_SUPPLEMENT: UBlockCode = UBlockCode(269i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_NEWA: UBlockCode = UBlockCode(270i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OSAGE: UBlockCode = UBlockCode(271i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TANGUT: UBlockCode = UBlockCode(272i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TANGUT_COMPONENTS: UBlockCode = UBlockCode(273i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F: UBlockCode = UBlockCode(274i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KANA_EXTENDED_A: UBlockCode = UBlockCode(275i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MASARAM_GONDI: UBlockCode = UBlockCode(276i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_NUSHU: UBlockCode = UBlockCode(277i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SOYOMBO: UBlockCode = UBlockCode(278i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SYRIAC_SUPPLEMENT: UBlockCode = UBlockCode(279i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ZANABAZAR_SQUARE: UBlockCode = UBlockCode(280i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CHESS_SYMBOLS: UBlockCode = UBlockCode(281i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_DOGRA: UBlockCode = UBlockCode(282i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GEORGIAN_EXTENDED: UBlockCode = UBlockCode(283i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_GUNJALA_GONDI: UBlockCode = UBlockCode(284i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_HANIFI_ROHINGYA: UBlockCode = UBlockCode(285i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_INDIC_SIYAQ_NUMBERS: UBlockCode = UBlockCode(286i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MAKASAR: UBlockCode = UBlockCode(287i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MAYAN_NUMERALS: UBlockCode = UBlockCode(288i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_MEDEFAIDRIN: UBlockCode = UBlockCode(289i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OLD_SOGDIAN: UBlockCode = UBlockCode(290i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SOGDIAN: UBlockCode = UBlockCode(291i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS: UBlockCode = UBlockCode(292i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_ELYMAIC: UBlockCode = UBlockCode(293i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_NANDINAGARI: UBlockCode = UBlockCode(294i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_NYIAKENG_PUACHUE_HMONG: UBlockCode = UBlockCode(295i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_OTTOMAN_SIYAQ_NUMBERS: UBlockCode = UBlockCode(296i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SMALL_KANA_EXTENSION: UBlockCode = UBlockCode(297i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A: UBlockCode = UBlockCode(298i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TAMIL_SUPPLEMENT: UBlockCode = UBlockCode(299i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_WANCHO: UBlockCode = UBlockCode(300i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CHORASMIAN: UBlockCode = UBlockCode(301i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G: UBlockCode = UBlockCode(302i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_DIVES_AKURU: UBlockCode = UBlockCode(303i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_KHITAN_SMALL_SCRIPT: UBlockCode = UBlockCode(304i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_LISU_SUPPLEMENT: UBlockCode = UBlockCode(305i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING: UBlockCode = UBlockCode(306i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_TANGUT_SUPPLEMENT: UBlockCode = UBlockCode(307i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_YEZIDI: UBlockCode = UBlockCode(308i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBLOCK_INVALID_CODE: UBlockCode = UBlockCode(-1i32);
impl ::core::marker::Copy for UBlockCode {}
impl ::core::clone::Clone for UBlockCode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UBlockCode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UBlockCode {
    type Abi = Self;
}
impl ::core::fmt::Debug for UBlockCode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UBlockCode").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UBreakIterator(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UBreakIteratorType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_CHARACTER: UBreakIteratorType = UBreakIteratorType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD: UBreakIteratorType = UBreakIteratorType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_LINE: UBreakIteratorType = UBreakIteratorType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_SENTENCE: UBreakIteratorType = UBreakIteratorType(3i32);
impl ::core::marker::Copy for UBreakIteratorType {}
impl ::core::clone::Clone for UBreakIteratorType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UBreakIteratorType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UBreakIteratorType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UBreakIteratorType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UBreakIteratorType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_UNKNOWN_ZONE_ID: &'static str = "Etc/Unknown";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_MAX_VALUE: u32 = 1114111u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_MIN_VALUE: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCLN_NO_AUTO_CLEANUP: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ESCAPE_C: &'static str = "C";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ESCAPE_CSS2: &'static str = "S";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ESCAPE_JAVA: &'static str = "J";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ESCAPE_UNICODE: &'static str = "U";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ESCAPE_XML_DEC: &'static str = "D";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ESCAPE_XML_HEX: &'static str = "X";
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn UCNV_FROM_U_CALLBACK_ESCAPE(context: *const ::core::ffi::c_void, fromuargs: *mut UConverterFromUnicodeArgs, codeunits: *const u16, length: i32, codepoint: i32, reason: UConverterCallbackReason, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn UCNV_FROM_U_CALLBACK_ESCAPE(context: *const ::core::ffi::c_void, fromuargs: *mut UConverterFromUnicodeArgs, codeunits: *const u16, length: i32, codepoint: i32, reason: UConverterCallbackReason, err: *mut UErrorCode);
        }
        UCNV_FROM_U_CALLBACK_ESCAPE(::core::mem::transmute(context), ::core::mem::transmute(fromuargs), ::core::mem::transmute(codeunits), ::core::mem::transmute(length), ::core::mem::transmute(codepoint), ::core::mem::transmute(reason), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn UCNV_FROM_U_CALLBACK_SKIP(context: *const ::core::ffi::c_void, fromuargs: *mut UConverterFromUnicodeArgs, codeunits: *const u16, length: i32, codepoint: i32, reason: UConverterCallbackReason, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn UCNV_FROM_U_CALLBACK_SKIP(context: *const ::core::ffi::c_void, fromuargs: *mut UConverterFromUnicodeArgs, codeunits: *const u16, length: i32, codepoint: i32, reason: UConverterCallbackReason, err: *mut UErrorCode);
        }
        UCNV_FROM_U_CALLBACK_SKIP(::core::mem::transmute(context), ::core::mem::transmute(fromuargs), ::core::mem::transmute(codeunits), ::core::mem::transmute(length), ::core::mem::transmute(codepoint), ::core::mem::transmute(reason), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn UCNV_FROM_U_CALLBACK_STOP(context: *const ::core::ffi::c_void, fromuargs: *mut UConverterFromUnicodeArgs, codeunits: *const u16, length: i32, codepoint: i32, reason: UConverterCallbackReason, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn UCNV_FROM_U_CALLBACK_STOP(context: *const ::core::ffi::c_void, fromuargs: *mut UConverterFromUnicodeArgs, codeunits: *const u16, length: i32, codepoint: i32, reason: UConverterCallbackReason, err: *mut UErrorCode);
        }
        UCNV_FROM_U_CALLBACK_STOP(::core::mem::transmute(context), ::core::mem::transmute(fromuargs), ::core::mem::transmute(codeunits), ::core::mem::transmute(length), ::core::mem::transmute(codepoint), ::core::mem::transmute(reason), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn UCNV_FROM_U_CALLBACK_SUBSTITUTE(context: *const ::core::ffi::c_void, fromuargs: *mut UConverterFromUnicodeArgs, codeunits: *const u16, length: i32, codepoint: i32, reason: UConverterCallbackReason, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn UCNV_FROM_U_CALLBACK_SUBSTITUTE(context: *const ::core::ffi::c_void, fromuargs: *mut UConverterFromUnicodeArgs, codeunits: *const u16, length: i32, codepoint: i32, reason: UConverterCallbackReason, err: *mut UErrorCode);
        }
        UCNV_FROM_U_CALLBACK_SUBSTITUTE(::core::mem::transmute(context), ::core::mem::transmute(fromuargs), ::core::mem::transmute(codeunits), ::core::mem::transmute(length), ::core::mem::transmute(codepoint), ::core::mem::transmute(reason), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LOCALE_OPTION_STRING: &'static str = ",locale=";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_MAX_CONVERTER_NAME_LENGTH: u32 = 60u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_OPTION_SEP_STRING: &'static str = ",";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_SI: u32 = 15u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_SKIP_STOP_ON_ILLEGAL: &'static str = "i";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_SO: u32 = 14u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_SUB_STOP_ON_ILLEGAL: &'static str = "i";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_SWAP_LFNL_OPTION_STRING: &'static str = ",swaplfnl";
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn UCNV_TO_U_CALLBACK_ESCAPE<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(context: *const ::core::ffi::c_void, touargs: *mut UConverterToUnicodeArgs, codeunits: Param2, length: i32, reason: UConverterCallbackReason, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn UCNV_TO_U_CALLBACK_ESCAPE(context: *const ::core::ffi::c_void, touargs: *mut UConverterToUnicodeArgs, codeunits: ::windows::core::PCSTR, length: i32, reason: UConverterCallbackReason, err: *mut UErrorCode);
        }
        UCNV_TO_U_CALLBACK_ESCAPE(::core::mem::transmute(context), ::core::mem::transmute(touargs), codeunits.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(reason), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn UCNV_TO_U_CALLBACK_SKIP<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(context: *const ::core::ffi::c_void, touargs: *mut UConverterToUnicodeArgs, codeunits: Param2, length: i32, reason: UConverterCallbackReason, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn UCNV_TO_U_CALLBACK_SKIP(context: *const ::core::ffi::c_void, touargs: *mut UConverterToUnicodeArgs, codeunits: ::windows::core::PCSTR, length: i32, reason: UConverterCallbackReason, err: *mut UErrorCode);
        }
        UCNV_TO_U_CALLBACK_SKIP(::core::mem::transmute(context), ::core::mem::transmute(touargs), codeunits.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(reason), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn UCNV_TO_U_CALLBACK_STOP<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(context: *const ::core::ffi::c_void, touargs: *mut UConverterToUnicodeArgs, codeunits: Param2, length: i32, reason: UConverterCallbackReason, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn UCNV_TO_U_CALLBACK_STOP(context: *const ::core::ffi::c_void, touargs: *mut UConverterToUnicodeArgs, codeunits: ::windows::core::PCSTR, length: i32, reason: UConverterCallbackReason, err: *mut UErrorCode);
        }
        UCNV_TO_U_CALLBACK_STOP(::core::mem::transmute(context), ::core::mem::transmute(touargs), codeunits.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(reason), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn UCNV_TO_U_CALLBACK_SUBSTITUTE<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(context: *const ::core::ffi::c_void, touargs: *mut UConverterToUnicodeArgs, codeunits: Param2, length: i32, reason: UConverterCallbackReason, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn UCNV_TO_U_CALLBACK_SUBSTITUTE(context: *const ::core::ffi::c_void, touargs: *mut UConverterToUnicodeArgs, codeunits: ::windows::core::PCSTR, length: i32, reason: UConverterCallbackReason, err: *mut UErrorCode);
        }
        UCNV_TO_U_CALLBACK_SUBSTITUTE(::core::mem::transmute(context), ::core::mem::transmute(touargs), codeunits.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(reason), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_VALUE_SEP_STRING: &'static str = "=";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_VERSION_OPTION_STRING: &'static str = ",version=";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_ENABLE_PLUGINS: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_FORMAT_FASTPATHS_49: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_HAVE_PARSEALLINPUT: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_BREAK_ITERATION: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_COLLATION: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_CONVERSION: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_FILE_IO: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_FILTERED_BREAK_ITERATION: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_FORMATTING: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_IDNA: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_LEGACY_CONVERSION: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_NORMALIZATION: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_REGULAR_EXPRESSIONS: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_SERVICE: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_NO_TRANSLITERATION: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_ONLY_COLLATION: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCONFIG_ONLY_HTML_CONVERSION: u32 = 0u32;
#[repr(C)]
pub struct UCPMap(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCPMapRangeOption(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPMAP_RANGE_NORMAL: UCPMapRangeOption = UCPMapRangeOption(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPMAP_RANGE_FIXED_LEAD_SURROGATES: UCPMapRangeOption = UCPMapRangeOption(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPMAP_RANGE_FIXED_ALL_SURROGATES: UCPMapRangeOption = UCPMapRangeOption(2i32);
impl ::core::marker::Copy for UCPMapRangeOption {}
impl ::core::clone::Clone for UCPMapRangeOption {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCPMapRangeOption {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCPMapRangeOption {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCPMapRangeOption {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCPMapRangeOption").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCPMapValueFilter = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, value: u32) -> u32>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET: i32 = 1i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_FAST_DATA_BLOCK_LENGTH: i32 = 64i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_FAST_DATA_MASK: i32 = 63i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_FAST_SHIFT: i32 = 6i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET: i32 = 2i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_SMALL_MAX: i32 = 4095i32;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UCPTrie {
    pub index: *const u16,
    pub data: UCPTrieData,
    pub indexLength: i32,
    pub dataLength: i32,
    pub highStart: i32,
    pub shifted12HighStart: u16,
    pub r#type: i8,
    pub valueWidth: i8,
    pub reserved32: u32,
    pub reserved16: u16,
    pub index3NullOffset: u16,
    pub dataNullOffset: i32,
    pub nullValue: u32,
}
impl ::core::marker::Copy for UCPTrie {}
impl ::core::clone::Clone for UCPTrie {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for UCPTrie {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UCPTrie {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UCPTrie>()) == 0 }
    }
}
impl ::core::cmp::Eq for UCPTrie {}
impl ::core::default::Default for UCPTrie {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub union UCPTrieData {
    pub ptr0: *const ::core::ffi::c_void,
    pub ptr16: *const u16,
    pub ptr32: *const u32,
    pub ptr8: *const u8,
}
impl ::core::marker::Copy for UCPTrieData {}
impl ::core::clone::Clone for UCPTrieData {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for UCPTrieData {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UCPTrieData {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UCPTrieData>()) == 0 }
    }
}
impl ::core::cmp::Eq for UCPTrieData {}
impl ::core::default::Default for UCPTrieData {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCPTrieType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_TYPE_ANY: UCPTrieType = UCPTrieType(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_TYPE_FAST: UCPTrieType = UCPTrieType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_TYPE_SMALL: UCPTrieType = UCPTrieType(1i32);
impl ::core::marker::Copy for UCPTrieType {}
impl ::core::clone::Clone for UCPTrieType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCPTrieType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCPTrieType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCPTrieType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCPTrieType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCPTrieValueWidth(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_VALUE_BITS_ANY: UCPTrieValueWidth = UCPTrieValueWidth(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_VALUE_BITS_16: UCPTrieValueWidth = UCPTrieValueWidth(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_VALUE_BITS_32: UCPTrieValueWidth = UCPTrieValueWidth(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCPTRIE_VALUE_BITS_8: UCPTrieValueWidth = UCPTrieValueWidth(2i32);
impl ::core::marker::Copy for UCPTrieValueWidth {}
impl ::core::clone::Clone for UCPTrieValueWidth {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCPTrieValueWidth {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCPTrieValueWidth {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCPTrieValueWidth {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCPTrieValueWidth").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCalendarAMPMs(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_AM: UCalendarAMPMs = UCalendarAMPMs(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_PM: UCalendarAMPMs = UCalendarAMPMs(1i32);
impl ::core::marker::Copy for UCalendarAMPMs {}
impl ::core::clone::Clone for UCalendarAMPMs {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCalendarAMPMs {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCalendarAMPMs {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCalendarAMPMs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCalendarAMPMs").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCalendarAttribute(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_LENIENT: UCalendarAttribute = UCalendarAttribute(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_FIRST_DAY_OF_WEEK: UCalendarAttribute = UCalendarAttribute(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_MINIMAL_DAYS_IN_FIRST_WEEK: UCalendarAttribute = UCalendarAttribute(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_REPEATED_WALL_TIME: UCalendarAttribute = UCalendarAttribute(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_SKIPPED_WALL_TIME: UCalendarAttribute = UCalendarAttribute(4i32);
impl ::core::marker::Copy for UCalendarAttribute {}
impl ::core::clone::Clone for UCalendarAttribute {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCalendarAttribute {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCalendarAttribute {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCalendarAttribute {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCalendarAttribute").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCalendarDateFields(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_ERA: UCalendarDateFields = UCalendarDateFields(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_YEAR: UCalendarDateFields = UCalendarDateFields(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_MONTH: UCalendarDateFields = UCalendarDateFields(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_WEEK_OF_YEAR: UCalendarDateFields = UCalendarDateFields(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_WEEK_OF_MONTH: UCalendarDateFields = UCalendarDateFields(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_DATE: UCalendarDateFields = UCalendarDateFields(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_DAY_OF_YEAR: UCalendarDateFields = UCalendarDateFields(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_DAY_OF_WEEK: UCalendarDateFields = UCalendarDateFields(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_DAY_OF_WEEK_IN_MONTH: UCalendarDateFields = UCalendarDateFields(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_AM_PM: UCalendarDateFields = UCalendarDateFields(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_HOUR: UCalendarDateFields = UCalendarDateFields(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_HOUR_OF_DAY: UCalendarDateFields = UCalendarDateFields(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_MINUTE: UCalendarDateFields = UCalendarDateFields(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_SECOND: UCalendarDateFields = UCalendarDateFields(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_MILLISECOND: UCalendarDateFields = UCalendarDateFields(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_ZONE_OFFSET: UCalendarDateFields = UCalendarDateFields(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_DST_OFFSET: UCalendarDateFields = UCalendarDateFields(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_YEAR_WOY: UCalendarDateFields = UCalendarDateFields(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_DOW_LOCAL: UCalendarDateFields = UCalendarDateFields(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_EXTENDED_YEAR: UCalendarDateFields = UCalendarDateFields(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_JULIAN_DAY: UCalendarDateFields = UCalendarDateFields(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_MILLISECONDS_IN_DAY: UCalendarDateFields = UCalendarDateFields(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_IS_LEAP_MONTH: UCalendarDateFields = UCalendarDateFields(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_FIELD_COUNT: UCalendarDateFields = UCalendarDateFields(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_DAY_OF_MONTH: UCalendarDateFields = UCalendarDateFields(5i32);
impl ::core::marker::Copy for UCalendarDateFields {}
impl ::core::clone::Clone for UCalendarDateFields {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCalendarDateFields {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCalendarDateFields {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCalendarDateFields {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCalendarDateFields").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCalendarDaysOfWeek(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_SUNDAY: UCalendarDaysOfWeek = UCalendarDaysOfWeek(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_MONDAY: UCalendarDaysOfWeek = UCalendarDaysOfWeek(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_TUESDAY: UCalendarDaysOfWeek = UCalendarDaysOfWeek(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_WEDNESDAY: UCalendarDaysOfWeek = UCalendarDaysOfWeek(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_THURSDAY: UCalendarDaysOfWeek = UCalendarDaysOfWeek(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_FRIDAY: UCalendarDaysOfWeek = UCalendarDaysOfWeek(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_SATURDAY: UCalendarDaysOfWeek = UCalendarDaysOfWeek(7i32);
impl ::core::marker::Copy for UCalendarDaysOfWeek {}
impl ::core::clone::Clone for UCalendarDaysOfWeek {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCalendarDaysOfWeek {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCalendarDaysOfWeek {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCalendarDaysOfWeek {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCalendarDaysOfWeek").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCalendarDisplayNameType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_STANDARD: UCalendarDisplayNameType = UCalendarDisplayNameType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_SHORT_STANDARD: UCalendarDisplayNameType = UCalendarDisplayNameType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_DST: UCalendarDisplayNameType = UCalendarDisplayNameType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_SHORT_DST: UCalendarDisplayNameType = UCalendarDisplayNameType(3i32);
impl ::core::marker::Copy for UCalendarDisplayNameType {}
impl ::core::clone::Clone for UCalendarDisplayNameType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCalendarDisplayNameType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCalendarDisplayNameType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCalendarDisplayNameType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCalendarDisplayNameType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCalendarLimitType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_MINIMUM: UCalendarLimitType = UCalendarLimitType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_MAXIMUM: UCalendarLimitType = UCalendarLimitType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_GREATEST_MINIMUM: UCalendarLimitType = UCalendarLimitType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_LEAST_MAXIMUM: UCalendarLimitType = UCalendarLimitType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_ACTUAL_MINIMUM: UCalendarLimitType = UCalendarLimitType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_ACTUAL_MAXIMUM: UCalendarLimitType = UCalendarLimitType(5i32);
impl ::core::marker::Copy for UCalendarLimitType {}
impl ::core::clone::Clone for UCalendarLimitType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCalendarLimitType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCalendarLimitType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCalendarLimitType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCalendarLimitType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCalendarMonths(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_JANUARY: UCalendarMonths = UCalendarMonths(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_FEBRUARY: UCalendarMonths = UCalendarMonths(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_MARCH: UCalendarMonths = UCalendarMonths(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_APRIL: UCalendarMonths = UCalendarMonths(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_MAY: UCalendarMonths = UCalendarMonths(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_JUNE: UCalendarMonths = UCalendarMonths(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_JULY: UCalendarMonths = UCalendarMonths(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_AUGUST: UCalendarMonths = UCalendarMonths(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_SEPTEMBER: UCalendarMonths = UCalendarMonths(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_OCTOBER: UCalendarMonths = UCalendarMonths(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_NOVEMBER: UCalendarMonths = UCalendarMonths(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_DECEMBER: UCalendarMonths = UCalendarMonths(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_UNDECIMBER: UCalendarMonths = UCalendarMonths(12i32);
impl ::core::marker::Copy for UCalendarMonths {}
impl ::core::clone::Clone for UCalendarMonths {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCalendarMonths {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCalendarMonths {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCalendarMonths {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCalendarMonths").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCalendarType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_TRADITIONAL: UCalendarType = UCalendarType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_DEFAULT: UCalendarType = UCalendarType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_GREGORIAN: UCalendarType = UCalendarType(1i32);
impl ::core::marker::Copy for UCalendarType {}
impl ::core::clone::Clone for UCalendarType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCalendarType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCalendarType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCalendarType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCalendarType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCalendarWallTimeOption(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_WALLTIME_LAST: UCalendarWallTimeOption = UCalendarWallTimeOption(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_WALLTIME_FIRST: UCalendarWallTimeOption = UCalendarWallTimeOption(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_WALLTIME_NEXT_VALID: UCalendarWallTimeOption = UCalendarWallTimeOption(2i32);
impl ::core::marker::Copy for UCalendarWallTimeOption {}
impl ::core::clone::Clone for UCalendarWallTimeOption {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCalendarWallTimeOption {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCalendarWallTimeOption {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCalendarWallTimeOption {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCalendarWallTimeOption").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCalendarWeekdayType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_WEEKDAY: UCalendarWeekdayType = UCalendarWeekdayType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_WEEKEND: UCalendarWeekdayType = UCalendarWeekdayType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_WEEKEND_ONSET: UCalendarWeekdayType = UCalendarWeekdayType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_WEEKEND_CEASE: UCalendarWeekdayType = UCalendarWeekdayType(3i32);
impl ::core::marker::Copy for UCalendarWeekdayType {}
impl ::core::clone::Clone for UCalendarWeekdayType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCalendarWeekdayType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCalendarWeekdayType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCalendarWeekdayType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCalendarWeekdayType").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UCaseMap(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCharCategory(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNASSIGNED: UCharCategory = UCharCategory(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GENERAL_OTHER_TYPES: UCharCategory = UCharCategory(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UPPERCASE_LETTER: UCharCategory = UCharCategory(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LOWERCASE_LETTER: UCharCategory = UCharCategory(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_TITLECASE_LETTER: UCharCategory = UCharCategory(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MODIFIER_LETTER: UCharCategory = UCharCategory(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_OTHER_LETTER: UCharCategory = UCharCategory(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_NON_SPACING_MARK: UCharCategory = UCharCategory(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ENCLOSING_MARK: UCharCategory = UCharCategory(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_COMBINING_SPACING_MARK: UCharCategory = UCharCategory(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DECIMAL_DIGIT_NUMBER: UCharCategory = UCharCategory(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LETTER_NUMBER: UCharCategory = UCharCategory(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_OTHER_NUMBER: UCharCategory = UCharCategory(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SPACE_SEPARATOR: UCharCategory = UCharCategory(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LINE_SEPARATOR: UCharCategory = UCharCategory(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PARAGRAPH_SEPARATOR: UCharCategory = UCharCategory(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CONTROL_CHAR: UCharCategory = UCharCategory(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_FORMAT_CHAR: UCharCategory = UCharCategory(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PRIVATE_USE_CHAR: UCharCategory = UCharCategory(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SURROGATE: UCharCategory = UCharCategory(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DASH_PUNCTUATION: UCharCategory = UCharCategory(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_START_PUNCTUATION: UCharCategory = UCharCategory(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_END_PUNCTUATION: UCharCategory = UCharCategory(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CONNECTOR_PUNCTUATION: UCharCategory = UCharCategory(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_OTHER_PUNCTUATION: UCharCategory = UCharCategory(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MATH_SYMBOL: UCharCategory = UCharCategory(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CURRENCY_SYMBOL: UCharCategory = UCharCategory(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MODIFIER_SYMBOL: UCharCategory = UCharCategory(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_OTHER_SYMBOL: UCharCategory = UCharCategory(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INITIAL_PUNCTUATION: UCharCategory = UCharCategory(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_FINAL_PUNCTUATION: UCharCategory = UCharCategory(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CHAR_CATEGORY_COUNT: UCharCategory = UCharCategory(30i32);
impl ::core::marker::Copy for UCharCategory {}
impl ::core::clone::Clone for UCharCategory {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCharCategory {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCharCategory {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCharCategory {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCharCategory").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCharDirection(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LEFT_TO_RIGHT: UCharDirection = UCharDirection(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_RIGHT_TO_LEFT: UCharDirection = UCharDirection(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EUROPEAN_NUMBER: UCharDirection = UCharDirection(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EUROPEAN_NUMBER_SEPARATOR: UCharDirection = UCharDirection(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EUROPEAN_NUMBER_TERMINATOR: UCharDirection = UCharDirection(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ARABIC_NUMBER: UCharDirection = UCharDirection(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_COMMON_NUMBER_SEPARATOR: UCharDirection = UCharDirection(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BLOCK_SEPARATOR: UCharDirection = UCharDirection(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SEGMENT_SEPARATOR: UCharDirection = UCharDirection(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WHITE_SPACE_NEUTRAL: UCharDirection = UCharDirection(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_OTHER_NEUTRAL: UCharDirection = UCharDirection(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LEFT_TO_RIGHT_EMBEDDING: UCharDirection = UCharDirection(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LEFT_TO_RIGHT_OVERRIDE: UCharDirection = UCharDirection(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_RIGHT_TO_LEFT_ARABIC: UCharDirection = UCharDirection(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_RIGHT_TO_LEFT_EMBEDDING: UCharDirection = UCharDirection(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_RIGHT_TO_LEFT_OVERRIDE: UCharDirection = UCharDirection(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_POP_DIRECTIONAL_FORMAT: UCharDirection = UCharDirection(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DIR_NON_SPACING_MARK: UCharDirection = UCharDirection(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BOUNDARY_NEUTRAL: UCharDirection = UCharDirection(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_FIRST_STRONG_ISOLATE: UCharDirection = UCharDirection(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LEFT_TO_RIGHT_ISOLATE: UCharDirection = UCharDirection(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_RIGHT_TO_LEFT_ISOLATE: UCharDirection = UCharDirection(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_POP_DIRECTIONAL_ISOLATE: UCharDirection = UCharDirection(22i32);
impl ::core::marker::Copy for UCharDirection {}
impl ::core::clone::Clone for UCharDirection {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCharDirection {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCharDirection {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCharDirection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCharDirection").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharEnumTypeRange = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, start: i32, limit: i32, r#type: UCharCategory) -> i8>;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UCharIterator {
    pub context: *const ::core::ffi::c_void,
    pub length: i32,
    pub start: i32,
    pub index: i32,
    pub limit: i32,
    pub reservedField: i32,
    pub getIndex: UCharIteratorGetIndex,
    pub r#move: UCharIteratorMove,
    pub hasNext: UCharIteratorHasNext,
    pub hasPrevious: UCharIteratorHasPrevious,
    pub current: UCharIteratorCurrent,
    pub next: UCharIteratorNext,
    pub previous: UCharIteratorPrevious,
    pub reservedFn: UCharIteratorReserved,
    pub getState: UCharIteratorGetState,
    pub setState: UCharIteratorSetState,
}
impl ::core::marker::Copy for UCharIterator {}
impl ::core::clone::Clone for UCharIterator {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UCharIterator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UCharIterator")
            .field("context", &self.context)
            .field("length", &self.length)
            .field("start", &self.start)
            .field("index", &self.index)
            .field("limit", &self.limit)
            .field("reservedField", &self.reservedField)
            .field("getIndex", &self.getIndex.map(|f| f as usize))
            .field("move", &self.r#move.map(|f| f as usize))
            .field("hasNext", &self.hasNext.map(|f| f as usize))
            .field("hasPrevious", &self.hasPrevious.map(|f| f as usize))
            .field("current", &self.current.map(|f| f as usize))
            .field("next", &self.next.map(|f| f as usize))
            .field("previous", &self.previous.map(|f| f as usize))
            .field("reservedFn", &self.reservedFn.map(|f| f as usize))
            .field("getState", &self.getState.map(|f| f as usize))
            .field("setState", &self.setState.map(|f| f as usize))
            .finish()
    }
}
unsafe impl ::windows::core::Abi for UCharIterator {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UCharIterator {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UCharIterator>()) == 0 }
    }
}
impl ::core::cmp::Eq for UCharIterator {}
impl ::core::default::Default for UCharIterator {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharIteratorCurrent = ::core::option::Option<unsafe extern "system" fn(iter: *mut UCharIterator) -> i32>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharIteratorGetIndex = ::core::option::Option<unsafe extern "system" fn(iter: *mut UCharIterator, origin: UCharIteratorOrigin) -> i32>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharIteratorGetState = ::core::option::Option<unsafe extern "system" fn(iter: *const UCharIterator) -> u32>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharIteratorHasNext = ::core::option::Option<unsafe extern "system" fn(iter: *mut UCharIterator) -> i8>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharIteratorHasPrevious = ::core::option::Option<unsafe extern "system" fn(iter: *mut UCharIterator) -> i8>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharIteratorMove = ::core::option::Option<unsafe extern "system" fn(iter: *mut UCharIterator, delta: i32, origin: UCharIteratorOrigin) -> i32>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharIteratorNext = ::core::option::Option<unsafe extern "system" fn(iter: *mut UCharIterator) -> i32>;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCharIteratorOrigin(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UITER_START: UCharIteratorOrigin = UCharIteratorOrigin(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UITER_CURRENT: UCharIteratorOrigin = UCharIteratorOrigin(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UITER_LIMIT: UCharIteratorOrigin = UCharIteratorOrigin(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UITER_ZERO: UCharIteratorOrigin = UCharIteratorOrigin(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UITER_LENGTH: UCharIteratorOrigin = UCharIteratorOrigin(4i32);
impl ::core::marker::Copy for UCharIteratorOrigin {}
impl ::core::clone::Clone for UCharIteratorOrigin {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCharIteratorOrigin {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCharIteratorOrigin {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCharIteratorOrigin {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCharIteratorOrigin").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharIteratorPrevious = ::core::option::Option<unsafe extern "system" fn(iter: *mut UCharIterator) -> i32>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharIteratorReserved = ::core::option::Option<unsafe extern "system" fn(iter: *mut UCharIterator, something: i32) -> i32>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UCharIteratorSetState = ::core::option::Option<unsafe extern "system" fn(iter: *mut UCharIterator, state: u32, perrorcode: *mut UErrorCode)>;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCharNameChoice(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNICODE_CHAR_NAME: UCharNameChoice = UCharNameChoice(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EXTENDED_CHAR_NAME: UCharNameChoice = UCharNameChoice(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CHAR_NAME_ALIAS: UCharNameChoice = UCharNameChoice(3i32);
impl ::core::marker::Copy for UCharNameChoice {}
impl ::core::clone::Clone for UCharNameChoice {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCharNameChoice {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCharNameChoice {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCharNameChoice {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCharNameChoice").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UCharsetDetector(pub u8);
#[repr(C)]
pub struct UCharsetMatch(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UColAttribute(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_FRENCH_COLLATION: UColAttribute = UColAttribute(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_ALTERNATE_HANDLING: UColAttribute = UColAttribute(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_CASE_FIRST: UColAttribute = UColAttribute(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_CASE_LEVEL: UColAttribute = UColAttribute(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_NORMALIZATION_MODE: UColAttribute = UColAttribute(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_DECOMPOSITION_MODE: UColAttribute = UColAttribute(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_STRENGTH: UColAttribute = UColAttribute(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_NUMERIC_COLLATION: UColAttribute = UColAttribute(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_ATTRIBUTE_COUNT: UColAttribute = UColAttribute(8i32);
impl ::core::marker::Copy for UColAttribute {}
impl ::core::clone::Clone for UColAttribute {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UColAttribute {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UColAttribute {
    type Abi = Self;
}
impl ::core::fmt::Debug for UColAttribute {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UColAttribute").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UColAttributeValue(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_DEFAULT: UColAttributeValue = UColAttributeValue(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_PRIMARY: UColAttributeValue = UColAttributeValue(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_SECONDARY: UColAttributeValue = UColAttributeValue(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_TERTIARY: UColAttributeValue = UColAttributeValue(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_DEFAULT_STRENGTH: UColAttributeValue = UColAttributeValue(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_CE_STRENGTH_LIMIT: UColAttributeValue = UColAttributeValue(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_QUATERNARY: UColAttributeValue = UColAttributeValue(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_IDENTICAL: UColAttributeValue = UColAttributeValue(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_STRENGTH_LIMIT: UColAttributeValue = UColAttributeValue(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_OFF: UColAttributeValue = UColAttributeValue(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_ON: UColAttributeValue = UColAttributeValue(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_SHIFTED: UColAttributeValue = UColAttributeValue(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_NON_IGNORABLE: UColAttributeValue = UColAttributeValue(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_LOWER_FIRST: UColAttributeValue = UColAttributeValue(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_UPPER_FIRST: UColAttributeValue = UColAttributeValue(25i32);
impl ::core::marker::Copy for UColAttributeValue {}
impl ::core::clone::Clone for UColAttributeValue {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UColAttributeValue {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UColAttributeValue {
    type Abi = Self;
}
impl ::core::fmt::Debug for UColAttributeValue {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UColAttributeValue").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UColBoundMode(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_BOUND_LOWER: UColBoundMode = UColBoundMode(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_BOUND_UPPER: UColBoundMode = UColBoundMode(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_BOUND_UPPER_LONG: UColBoundMode = UColBoundMode(2i32);
impl ::core::marker::Copy for UColBoundMode {}
impl ::core::clone::Clone for UColBoundMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UColBoundMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UColBoundMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for UColBoundMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UColBoundMode").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UColReorderCode(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_REORDER_CODE_DEFAULT: UColReorderCode = UColReorderCode(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_REORDER_CODE_NONE: UColReorderCode = UColReorderCode(103i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_REORDER_CODE_OTHERS: UColReorderCode = UColReorderCode(103i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_REORDER_CODE_SPACE: UColReorderCode = UColReorderCode(4096i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_REORDER_CODE_FIRST: UColReorderCode = UColReorderCode(4096i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_REORDER_CODE_PUNCTUATION: UColReorderCode = UColReorderCode(4097i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_REORDER_CODE_SYMBOL: UColReorderCode = UColReorderCode(4098i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_REORDER_CODE_CURRENCY: UColReorderCode = UColReorderCode(4099i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_REORDER_CODE_DIGIT: UColReorderCode = UColReorderCode(4100i32);
impl ::core::marker::Copy for UColReorderCode {}
impl ::core::clone::Clone for UColReorderCode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UColReorderCode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UColReorderCode {
    type Abi = Self;
}
impl ::core::fmt::Debug for UColReorderCode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UColReorderCode").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UColRuleOption(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_TAILORING_ONLY: UColRuleOption = UColRuleOption(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_FULL_RULES: UColRuleOption = UColRuleOption(1i32);
impl ::core::marker::Copy for UColRuleOption {}
impl ::core::clone::Clone for UColRuleOption {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UColRuleOption {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UColRuleOption {
    type Abi = Self;
}
impl ::core::fmt::Debug for UColRuleOption {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UColRuleOption").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UCollationElements(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCollationResult(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_EQUAL: UCollationResult = UCollationResult(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_GREATER: UCollationResult = UCollationResult(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCOL_LESS: UCollationResult = UCollationResult(-1i32);
impl ::core::marker::Copy for UCollationResult {}
impl ::core::clone::Clone for UCollationResult {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCollationResult {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCollationResult {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCollationResult {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCollationResult").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UCollator(pub u8);
#[repr(C)]
pub struct UConstrainedFieldPosition(pub u8);
#[repr(C)]
pub struct UConverter(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UConverterCallbackReason(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UNASSIGNED: UConverterCallbackReason = UConverterCallbackReason(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ILLEGAL: UConverterCallbackReason = UConverterCallbackReason(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_IRREGULAR: UConverterCallbackReason = UConverterCallbackReason(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_RESET: UConverterCallbackReason = UConverterCallbackReason(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_CLOSE: UConverterCallbackReason = UConverterCallbackReason(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_CLONE: UConverterCallbackReason = UConverterCallbackReason(5i32);
impl ::core::marker::Copy for UConverterCallbackReason {}
impl ::core::clone::Clone for UConverterCallbackReason {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UConverterCallbackReason {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UConverterCallbackReason {
    type Abi = Self;
}
impl ::core::fmt::Debug for UConverterCallbackReason {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UConverterCallbackReason").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UConverterFromUCallback = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, args: *mut UConverterFromUnicodeArgs, codeunits: *const u16, length: i32, codepoint: i32, reason: UConverterCallbackReason, perrorcode: *mut UErrorCode)>;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UConverterFromUnicodeArgs {
    pub size: u16,
    pub flush: i8,
    pub converter: *mut UConverter,
    pub source: *const u16,
    pub sourceLimit: *const u16,
    pub target: ::windows::core::PSTR,
    pub targetLimit: ::windows::core::PCSTR,
    pub offsets: *mut i32,
}
impl ::core::marker::Copy for UConverterFromUnicodeArgs {}
impl ::core::clone::Clone for UConverterFromUnicodeArgs {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UConverterFromUnicodeArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UConverterFromUnicodeArgs").field("size", &self.size).field("flush", &self.flush).field("converter", &self.converter).field("source", &self.source).field("sourceLimit", &self.sourceLimit).field("target", &self.target).field("targetLimit", &self.targetLimit).field("offsets", &self.offsets).finish()
    }
}
unsafe impl ::windows::core::Abi for UConverterFromUnicodeArgs {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UConverterFromUnicodeArgs {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UConverterFromUnicodeArgs>()) == 0 }
    }
}
impl ::core::cmp::Eq for UConverterFromUnicodeArgs {}
impl ::core::default::Default for UConverterFromUnicodeArgs {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UConverterPlatform(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UNKNOWN: UConverterPlatform = UConverterPlatform(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_IBM: UConverterPlatform = UConverterPlatform(0i32);
impl ::core::marker::Copy for UConverterPlatform {}
impl ::core::clone::Clone for UConverterPlatform {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UConverterPlatform {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UConverterPlatform {
    type Abi = Self;
}
impl ::core::fmt::Debug for UConverterPlatform {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UConverterPlatform").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UConverterSelector(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UConverterToUCallback = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, args: *mut UConverterToUnicodeArgs, codeunits: ::windows::core::PCSTR, length: i32, reason: UConverterCallbackReason, perrorcode: *mut UErrorCode)>;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UConverterToUnicodeArgs {
    pub size: u16,
    pub flush: i8,
    pub converter: *mut UConverter,
    pub source: ::windows::core::PCSTR,
    pub sourceLimit: ::windows::core::PCSTR,
    pub target: *mut u16,
    pub targetLimit: *const u16,
    pub offsets: *mut i32,
}
impl ::core::marker::Copy for UConverterToUnicodeArgs {}
impl ::core::clone::Clone for UConverterToUnicodeArgs {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UConverterToUnicodeArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UConverterToUnicodeArgs").field("size", &self.size).field("flush", &self.flush).field("converter", &self.converter).field("source", &self.source).field("sourceLimit", &self.sourceLimit).field("target", &self.target).field("targetLimit", &self.targetLimit).field("offsets", &self.offsets).finish()
    }
}
unsafe impl ::windows::core::Abi for UConverterToUnicodeArgs {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UConverterToUnicodeArgs {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UConverterToUnicodeArgs>()) == 0 }
    }
}
impl ::core::cmp::Eq for UConverterToUnicodeArgs {}
impl ::core::default::Default for UConverterToUnicodeArgs {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UConverterType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UNSUPPORTED_CONVERTER: UConverterType = UConverterType(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_SBCS: UConverterType = UConverterType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_DBCS: UConverterType = UConverterType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_MBCS: UConverterType = UConverterType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LATIN_1: UConverterType = UConverterType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UTF8: UConverterType = UConverterType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UTF16_BigEndian: UConverterType = UConverterType(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UTF16_LittleEndian: UConverterType = UConverterType(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UTF32_BigEndian: UConverterType = UConverterType(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UTF32_LittleEndian: UConverterType = UConverterType(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_EBCDIC_STATEFUL: UConverterType = UConverterType(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ISO_2022: UConverterType = UConverterType(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_1: UConverterType = UConverterType(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_2: UConverterType = UConverterType(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_3: UConverterType = UConverterType(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_4: UConverterType = UConverterType(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_5: UConverterType = UConverterType(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_6: UConverterType = UConverterType(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_8: UConverterType = UConverterType(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_11: UConverterType = UConverterType(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_16: UConverterType = UConverterType(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_17: UConverterType = UConverterType(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_18: UConverterType = UConverterType(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_19: UConverterType = UConverterType(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_LMBCS_LAST: UConverterType = UConverterType(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_HZ: UConverterType = UConverterType(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_SCSU: UConverterType = UConverterType(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ISCII: UConverterType = UConverterType(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_US_ASCII: UConverterType = UConverterType(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UTF7: UConverterType = UConverterType(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_BOCU1: UConverterType = UConverterType(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UTF16: UConverterType = UConverterType(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_UTF32: UConverterType = UConverterType(30i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_CESU8: UConverterType = UConverterType(31i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_IMAP_MAILBOX: UConverterType = UConverterType(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_COMPOUND_TEXT: UConverterType = UConverterType(33i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_NUMBER_OF_SUPPORTED_CONVERTER_TYPES: UConverterType = UConverterType(34i32);
impl ::core::marker::Copy for UConverterType {}
impl ::core::clone::Clone for UConverterType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UConverterType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UConverterType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UConverterType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UConverterType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UConverterUnicodeSet(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ROUNDTRIP_SET: UConverterUnicodeSet = UConverterUnicodeSet(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCNV_ROUNDTRIP_AND_FALLBACK_SET: UConverterUnicodeSet = UConverterUnicodeSet(1i32);
impl ::core::marker::Copy for UConverterUnicodeSet {}
impl ::core::clone::Clone for UConverterUnicodeSet {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UConverterUnicodeSet {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UConverterUnicodeSet {
    type Abi = Self;
}
impl ::core::fmt::Debug for UConverterUnicodeSet {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UConverterUnicodeSet").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCurrCurrencyType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCURR_ALL: UCurrCurrencyType = UCurrCurrencyType(2147483647i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCURR_COMMON: UCurrCurrencyType = UCurrCurrencyType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCURR_UNCOMMON: UCurrCurrencyType = UCurrCurrencyType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCURR_DEPRECATED: UCurrCurrencyType = UCurrCurrencyType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCURR_NON_DEPRECATED: UCurrCurrencyType = UCurrCurrencyType(8i32);
impl ::core::marker::Copy for UCurrCurrencyType {}
impl ::core::clone::Clone for UCurrCurrencyType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCurrCurrencyType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCurrCurrencyType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCurrCurrencyType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCurrCurrencyType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCurrNameStyle(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCURR_SYMBOL_NAME: UCurrNameStyle = UCurrNameStyle(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCURR_LONG_NAME: UCurrNameStyle = UCurrNameStyle(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCURR_NARROW_SYMBOL_NAME: UCurrNameStyle = UCurrNameStyle(2i32);
impl ::core::marker::Copy for UCurrNameStyle {}
impl ::core::clone::Clone for UCurrNameStyle {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCurrNameStyle {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCurrNameStyle {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCurrNameStyle {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCurrNameStyle").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCurrencySpacing(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_MATCH: UCurrencySpacing = UCurrencySpacing(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_SURROUNDING_MATCH: UCurrencySpacing = UCurrencySpacing(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_INSERT: UCurrencySpacing = UCurrencySpacing(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_SPACING_COUNT: UCurrencySpacing = UCurrencySpacing(3i32);
impl ::core::marker::Copy for UCurrencySpacing {}
impl ::core::clone::Clone for UCurrencySpacing {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCurrencySpacing {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCurrencySpacing {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCurrencySpacing {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCurrencySpacing").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UCurrencyUsage(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCURR_USAGE_STANDARD: UCurrencyUsage = UCurrencyUsage(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCURR_USAGE_CASH: UCurrencyUsage = UCurrencyUsage(1i32);
impl ::core::marker::Copy for UCurrencyUsage {}
impl ::core::clone::Clone for UCurrencyUsage {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UCurrencyUsage {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UCurrencyUsage {
    type Abi = Self;
}
impl ::core::fmt::Debug for UCurrencyUsage {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UCurrencyUsage").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABBR_GENERIC_TZ: &'static str = "v";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABBR_MONTH: &'static str = "MMM";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABBR_MONTH_DAY: &'static str = "MMMd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABBR_MONTH_WEEKDAY_DAY: &'static str = "MMMEd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABBR_QUARTER: &'static str = "QQQ";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABBR_SPECIFIC_TZ: &'static str = "z";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABBR_UTC_TZ: &'static str = "ZZZZ";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABBR_WEEKDAY: &'static str = "E";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DAY: &'static str = "d";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_GENERIC_TZ: &'static str = "vvvv";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_HOUR: &'static str = "j";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_HOUR24: &'static str = "H";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_HOUR24_MINUTE: &'static str = "Hm";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_HOUR24_MINUTE_SECOND: &'static str = "Hms";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_HOUR_MINUTE: &'static str = "jm";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_HOUR_MINUTE_SECOND: &'static str = "jms";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_LOCATION_TZ: &'static str = "VVVV";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MINUTE: &'static str = "m";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MINUTE_SECOND: &'static str = "ms";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MONTH: &'static str = "MMMM";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MONTH_DAY: &'static str = "MMMMd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MONTH_WEEKDAY_DAY: &'static str = "MMMMEEEEd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_NUM_MONTH: &'static str = "M";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_NUM_MONTH_DAY: &'static str = "Md";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_NUM_MONTH_WEEKDAY_DAY: &'static str = "MEd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_QUARTER: &'static str = "QQQQ";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_SECOND: &'static str = "s";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_SPECIFIC_TZ: &'static str = "zzzz";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_WEEKDAY: &'static str = "EEEE";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR: &'static str = "y";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_ABBR_MONTH: &'static str = "yMMM";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_ABBR_MONTH_DAY: &'static str = "yMMMd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_ABBR_MONTH_WEEKDAY_DAY: &'static str = "yMMMEd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_ABBR_QUARTER: &'static str = "yQQQ";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_MONTH: &'static str = "yMMMM";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_MONTH_DAY: &'static str = "yMMMMd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_MONTH_WEEKDAY_DAY: &'static str = "yMMMMEEEEd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_NUM_MONTH: &'static str = "yM";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_NUM_MONTH_DAY: &'static str = "yMd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_NUM_MONTH_WEEKDAY_DAY: &'static str = "yMEd";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_QUARTER: &'static str = "yQQQQ";
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateAbsoluteUnit(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_SUNDAY: UDateAbsoluteUnit = UDateAbsoluteUnit(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_MONDAY: UDateAbsoluteUnit = UDateAbsoluteUnit(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_TUESDAY: UDateAbsoluteUnit = UDateAbsoluteUnit(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_WEDNESDAY: UDateAbsoluteUnit = UDateAbsoluteUnit(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_THURSDAY: UDateAbsoluteUnit = UDateAbsoluteUnit(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_FRIDAY: UDateAbsoluteUnit = UDateAbsoluteUnit(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_SATURDAY: UDateAbsoluteUnit = UDateAbsoluteUnit(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_DAY: UDateAbsoluteUnit = UDateAbsoluteUnit(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_WEEK: UDateAbsoluteUnit = UDateAbsoluteUnit(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_MONTH: UDateAbsoluteUnit = UDateAbsoluteUnit(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_YEAR: UDateAbsoluteUnit = UDateAbsoluteUnit(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_NOW: UDateAbsoluteUnit = UDateAbsoluteUnit(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ABSOLUTE_UNIT_COUNT: UDateAbsoluteUnit = UDateAbsoluteUnit(12i32);
impl ::core::marker::Copy for UDateAbsoluteUnit {}
impl ::core::clone::Clone for UDateAbsoluteUnit {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateAbsoluteUnit {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateAbsoluteUnit {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateAbsoluteUnit {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateAbsoluteUnit").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateDirection(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DIRECTION_LAST_2: UDateDirection = UDateDirection(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DIRECTION_LAST: UDateDirection = UDateDirection(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DIRECTION_THIS: UDateDirection = UDateDirection(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DIRECTION_NEXT: UDateDirection = UDateDirection(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DIRECTION_NEXT_2: UDateDirection = UDateDirection(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DIRECTION_PLAIN: UDateDirection = UDateDirection(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DIRECTION_COUNT: UDateDirection = UDateDirection(6i32);
impl ::core::marker::Copy for UDateDirection {}
impl ::core::clone::Clone for UDateDirection {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateDirection {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateDirection {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateDirection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateDirection").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateFormatBooleanAttribute(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_PARSE_ALLOW_WHITESPACE: UDateFormatBooleanAttribute = UDateFormatBooleanAttribute(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_PARSE_ALLOW_NUMERIC: UDateFormatBooleanAttribute = UDateFormatBooleanAttribute(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_PARSE_PARTIAL_LITERAL_MATCH: UDateFormatBooleanAttribute = UDateFormatBooleanAttribute(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH: UDateFormatBooleanAttribute = UDateFormatBooleanAttribute(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_BOOLEAN_ATTRIBUTE_COUNT: UDateFormatBooleanAttribute = UDateFormatBooleanAttribute(4i32);
impl ::core::marker::Copy for UDateFormatBooleanAttribute {}
impl ::core::clone::Clone for UDateFormatBooleanAttribute {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateFormatBooleanAttribute {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateFormatBooleanAttribute {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateFormatBooleanAttribute {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateFormatBooleanAttribute").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateFormatField(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ERA_FIELD: UDateFormatField = UDateFormatField(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_FIELD: UDateFormatField = UDateFormatField(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MONTH_FIELD: UDateFormatField = UDateFormatField(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DATE_FIELD: UDateFormatField = UDateFormatField(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_HOUR_OF_DAY1_FIELD: UDateFormatField = UDateFormatField(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_HOUR_OF_DAY0_FIELD: UDateFormatField = UDateFormatField(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MINUTE_FIELD: UDateFormatField = UDateFormatField(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_SECOND_FIELD: UDateFormatField = UDateFormatField(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_FRACTIONAL_SECOND_FIELD: UDateFormatField = UDateFormatField(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DAY_OF_WEEK_FIELD: UDateFormatField = UDateFormatField(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DAY_OF_YEAR_FIELD: UDateFormatField = UDateFormatField(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DAY_OF_WEEK_IN_MONTH_FIELD: UDateFormatField = UDateFormatField(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_WEEK_OF_YEAR_FIELD: UDateFormatField = UDateFormatField(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_WEEK_OF_MONTH_FIELD: UDateFormatField = UDateFormatField(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_AM_PM_FIELD: UDateFormatField = UDateFormatField(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_HOUR1_FIELD: UDateFormatField = UDateFormatField(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_HOUR0_FIELD: UDateFormatField = UDateFormatField(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_TIMEZONE_FIELD: UDateFormatField = UDateFormatField(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_WOY_FIELD: UDateFormatField = UDateFormatField(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DOW_LOCAL_FIELD: UDateFormatField = UDateFormatField(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_EXTENDED_YEAR_FIELD: UDateFormatField = UDateFormatField(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_JULIAN_DAY_FIELD: UDateFormatField = UDateFormatField(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MILLISECONDS_IN_DAY_FIELD: UDateFormatField = UDateFormatField(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_TIMEZONE_RFC_FIELD: UDateFormatField = UDateFormatField(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_TIMEZONE_GENERIC_FIELD: UDateFormatField = UDateFormatField(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_DAY_FIELD: UDateFormatField = UDateFormatField(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_MONTH_FIELD: UDateFormatField = UDateFormatField(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_QUARTER_FIELD: UDateFormatField = UDateFormatField(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_QUARTER_FIELD: UDateFormatField = UDateFormatField(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_TIMEZONE_SPECIAL_FIELD: UDateFormatField = UDateFormatField(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_YEAR_NAME_FIELD: UDateFormatField = UDateFormatField(30i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD: UDateFormatField = UDateFormatField(31i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_TIMEZONE_ISO_FIELD: UDateFormatField = UDateFormatField(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_TIMEZONE_ISO_LOCAL_FIELD: UDateFormatField = UDateFormatField(33i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_AM_PM_MIDNIGHT_NOON_FIELD: UDateFormatField = UDateFormatField(35i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_FLEXIBLE_DAY_PERIOD_FIELD: UDateFormatField = UDateFormatField(36i32);
impl ::core::marker::Copy for UDateFormatField {}
impl ::core::clone::Clone for UDateFormatField {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateFormatField {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateFormatField {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateFormatField {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateFormatField").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateFormatStyle(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_FULL: UDateFormatStyle = UDateFormatStyle(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_LONG: UDateFormatStyle = UDateFormatStyle(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MEDIUM: UDateFormatStyle = UDateFormatStyle(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_SHORT: UDateFormatStyle = UDateFormatStyle(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_DEFAULT: UDateFormatStyle = UDateFormatStyle(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_RELATIVE: UDateFormatStyle = UDateFormatStyle(128i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_FULL_RELATIVE: UDateFormatStyle = UDateFormatStyle(128i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_LONG_RELATIVE: UDateFormatStyle = UDateFormatStyle(129i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MEDIUM_RELATIVE: UDateFormatStyle = UDateFormatStyle(130i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_SHORT_RELATIVE: UDateFormatStyle = UDateFormatStyle(131i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_NONE: UDateFormatStyle = UDateFormatStyle(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_PATTERN: UDateFormatStyle = UDateFormatStyle(-2i32);
impl ::core::marker::Copy for UDateFormatStyle {}
impl ::core::clone::Clone for UDateFormatStyle {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateFormatStyle {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateFormatStyle {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateFormatStyle {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateFormatStyle").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateFormatSymbolType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ERAS: UDateFormatSymbolType = UDateFormatSymbolType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_MONTHS: UDateFormatSymbolType = UDateFormatSymbolType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_SHORT_MONTHS: UDateFormatSymbolType = UDateFormatSymbolType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_WEEKDAYS: UDateFormatSymbolType = UDateFormatSymbolType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_SHORT_WEEKDAYS: UDateFormatSymbolType = UDateFormatSymbolType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_AM_PMS: UDateFormatSymbolType = UDateFormatSymbolType(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_LOCALIZED_CHARS: UDateFormatSymbolType = UDateFormatSymbolType(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ERA_NAMES: UDateFormatSymbolType = UDateFormatSymbolType(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_NARROW_MONTHS: UDateFormatSymbolType = UDateFormatSymbolType(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_NARROW_WEEKDAYS: UDateFormatSymbolType = UDateFormatSymbolType(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_MONTHS: UDateFormatSymbolType = UDateFormatSymbolType(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_SHORT_MONTHS: UDateFormatSymbolType = UDateFormatSymbolType(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_NARROW_MONTHS: UDateFormatSymbolType = UDateFormatSymbolType(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_WEEKDAYS: UDateFormatSymbolType = UDateFormatSymbolType(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_SHORT_WEEKDAYS: UDateFormatSymbolType = UDateFormatSymbolType(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_NARROW_WEEKDAYS: UDateFormatSymbolType = UDateFormatSymbolType(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_QUARTERS: UDateFormatSymbolType = UDateFormatSymbolType(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_SHORT_QUARTERS: UDateFormatSymbolType = UDateFormatSymbolType(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_QUARTERS: UDateFormatSymbolType = UDateFormatSymbolType(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_SHORT_QUARTERS: UDateFormatSymbolType = UDateFormatSymbolType(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_SHORTER_WEEKDAYS: UDateFormatSymbolType = UDateFormatSymbolType(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STANDALONE_SHORTER_WEEKDAYS: UDateFormatSymbolType = UDateFormatSymbolType(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_CYCLIC_YEARS_WIDE: UDateFormatSymbolType = UDateFormatSymbolType(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_CYCLIC_YEARS_ABBREVIATED: UDateFormatSymbolType = UDateFormatSymbolType(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_CYCLIC_YEARS_NARROW: UDateFormatSymbolType = UDateFormatSymbolType(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ZODIAC_NAMES_WIDE: UDateFormatSymbolType = UDateFormatSymbolType(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ZODIAC_NAMES_ABBREVIATED: UDateFormatSymbolType = UDateFormatSymbolType(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_ZODIAC_NAMES_NARROW: UDateFormatSymbolType = UDateFormatSymbolType(27i32);
impl ::core::marker::Copy for UDateFormatSymbolType {}
impl ::core::clone::Clone for UDateFormatSymbolType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateFormatSymbolType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateFormatSymbolType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateFormatSymbolType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateFormatSymbolType").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UDateFormatSymbols(pub u8);
#[repr(C)]
pub struct UDateIntervalFormat(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateRelativeDateTimeFormatterStyle(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STYLE_LONG: UDateRelativeDateTimeFormatterStyle = UDateRelativeDateTimeFormatterStyle(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STYLE_SHORT: UDateRelativeDateTimeFormatterStyle = UDateRelativeDateTimeFormatterStyle(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_STYLE_NARROW: UDateRelativeDateTimeFormatterStyle = UDateRelativeDateTimeFormatterStyle(2i32);
impl ::core::marker::Copy for UDateRelativeDateTimeFormatterStyle {}
impl ::core::clone::Clone for UDateRelativeDateTimeFormatterStyle {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateRelativeDateTimeFormatterStyle {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateRelativeDateTimeFormatterStyle {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateRelativeDateTimeFormatterStyle {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateRelativeDateTimeFormatterStyle").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateRelativeUnit(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_RELATIVE_SECONDS: UDateRelativeUnit = UDateRelativeUnit(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_RELATIVE_MINUTES: UDateRelativeUnit = UDateRelativeUnit(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_RELATIVE_HOURS: UDateRelativeUnit = UDateRelativeUnit(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_RELATIVE_DAYS: UDateRelativeUnit = UDateRelativeUnit(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_RELATIVE_WEEKS: UDateRelativeUnit = UDateRelativeUnit(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_RELATIVE_MONTHS: UDateRelativeUnit = UDateRelativeUnit(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_RELATIVE_YEARS: UDateRelativeUnit = UDateRelativeUnit(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_RELATIVE_UNIT_COUNT: UDateRelativeUnit = UDateRelativeUnit(7i32);
impl ::core::marker::Copy for UDateRelativeUnit {}
impl ::core::clone::Clone for UDateRelativeUnit {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateRelativeUnit {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateRelativeUnit {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateRelativeUnit {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateRelativeUnit").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateTimePGDisplayWidth(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_WIDE: UDateTimePGDisplayWidth = UDateTimePGDisplayWidth(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_ABBREVIATED: UDateTimePGDisplayWidth = UDateTimePGDisplayWidth(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_NARROW: UDateTimePGDisplayWidth = UDateTimePGDisplayWidth(2i32);
impl ::core::marker::Copy for UDateTimePGDisplayWidth {}
impl ::core::clone::Clone for UDateTimePGDisplayWidth {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateTimePGDisplayWidth {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateTimePGDisplayWidth {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateTimePGDisplayWidth {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateTimePGDisplayWidth").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateTimePatternConflict(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_NO_CONFLICT: UDateTimePatternConflict = UDateTimePatternConflict(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_BASE_CONFLICT: UDateTimePatternConflict = UDateTimePatternConflict(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_CONFLICT: UDateTimePatternConflict = UDateTimePatternConflict(2i32);
impl ::core::marker::Copy for UDateTimePatternConflict {}
impl ::core::clone::Clone for UDateTimePatternConflict {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateTimePatternConflict {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateTimePatternConflict {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateTimePatternConflict {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateTimePatternConflict").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateTimePatternField(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_ERA_FIELD: UDateTimePatternField = UDateTimePatternField(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_YEAR_FIELD: UDateTimePatternField = UDateTimePatternField(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_QUARTER_FIELD: UDateTimePatternField = UDateTimePatternField(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_MONTH_FIELD: UDateTimePatternField = UDateTimePatternField(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_WEEK_OF_YEAR_FIELD: UDateTimePatternField = UDateTimePatternField(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_WEEK_OF_MONTH_FIELD: UDateTimePatternField = UDateTimePatternField(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_WEEKDAY_FIELD: UDateTimePatternField = UDateTimePatternField(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_DAY_OF_YEAR_FIELD: UDateTimePatternField = UDateTimePatternField(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD: UDateTimePatternField = UDateTimePatternField(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_DAY_FIELD: UDateTimePatternField = UDateTimePatternField(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_DAYPERIOD_FIELD: UDateTimePatternField = UDateTimePatternField(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_HOUR_FIELD: UDateTimePatternField = UDateTimePatternField(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_MINUTE_FIELD: UDateTimePatternField = UDateTimePatternField(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_SECOND_FIELD: UDateTimePatternField = UDateTimePatternField(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_FRACTIONAL_SECOND_FIELD: UDateTimePatternField = UDateTimePatternField(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_ZONE_FIELD: UDateTimePatternField = UDateTimePatternField(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_FIELD_COUNT: UDateTimePatternField = UDateTimePatternField(16i32);
impl ::core::marker::Copy for UDateTimePatternField {}
impl ::core::clone::Clone for UDateTimePatternField {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateTimePatternField {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateTimePatternField {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateTimePatternField {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateTimePatternField").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateTimePatternMatchOptions(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_MATCH_NO_OPTIONS: UDateTimePatternMatchOptions = UDateTimePatternMatchOptions(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_MATCH_HOUR_FIELD_LENGTH: UDateTimePatternMatchOptions = UDateTimePatternMatchOptions(2048i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDATPG_MATCH_ALL_FIELDS_LENGTH: UDateTimePatternMatchOptions = UDateTimePatternMatchOptions(65535i32);
impl ::core::marker::Copy for UDateTimePatternMatchOptions {}
impl ::core::clone::Clone for UDateTimePatternMatchOptions {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateTimePatternMatchOptions {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateTimePatternMatchOptions {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateTimePatternMatchOptions {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateTimePatternMatchOptions").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDateTimeScale(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDTS_JAVA_TIME: UDateTimeScale = UDateTimeScale(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDTS_UNIX_TIME: UDateTimeScale = UDateTimeScale(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDTS_ICU4C_TIME: UDateTimeScale = UDateTimeScale(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDTS_WINDOWS_FILE_TIME: UDateTimeScale = UDateTimeScale(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDTS_DOTNET_DATE_TIME: UDateTimeScale = UDateTimeScale(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDTS_MAC_OLD_TIME: UDateTimeScale = UDateTimeScale(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDTS_MAC_TIME: UDateTimeScale = UDateTimeScale(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDTS_EXCEL_TIME: UDateTimeScale = UDateTimeScale(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDTS_DB2_TIME: UDateTimeScale = UDateTimeScale(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDTS_UNIX_MICROSECONDS_TIME: UDateTimeScale = UDateTimeScale(9i32);
impl ::core::marker::Copy for UDateTimeScale {}
impl ::core::clone::Clone for UDateTimeScale {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDateTimeScale {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDateTimeScale {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDateTimeScale {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDateTimeScale").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDecompositionType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_NONE: UDecompositionType = UDecompositionType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_CANONICAL: UDecompositionType = UDecompositionType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_COMPAT: UDecompositionType = UDecompositionType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_CIRCLE: UDecompositionType = UDecompositionType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_FINAL: UDecompositionType = UDecompositionType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_FONT: UDecompositionType = UDecompositionType(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_FRACTION: UDecompositionType = UDecompositionType(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_INITIAL: UDecompositionType = UDecompositionType(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_ISOLATED: UDecompositionType = UDecompositionType(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_MEDIAL: UDecompositionType = UDecompositionType(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_NARROW: UDecompositionType = UDecompositionType(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_NOBREAK: UDecompositionType = UDecompositionType(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_SMALL: UDecompositionType = UDecompositionType(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_SQUARE: UDecompositionType = UDecompositionType(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_SUB: UDecompositionType = UDecompositionType(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_SUPER: UDecompositionType = UDecompositionType(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_VERTICAL: UDecompositionType = UDecompositionType(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DT_WIDE: UDecompositionType = UDecompositionType(17i32);
impl ::core::marker::Copy for UDecompositionType {}
impl ::core::clone::Clone for UDecompositionType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDecompositionType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDecompositionType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDecompositionType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDecompositionType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDialectHandling(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULDN_STANDARD_NAMES: UDialectHandling = UDialectHandling(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULDN_DIALECT_NAMES: UDialectHandling = UDialectHandling(1i32);
impl ::core::marker::Copy for UDialectHandling {}
impl ::core::clone::Clone for UDialectHandling {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDialectHandling {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDialectHandling {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDialectHandling {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDialectHandling").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDisplayContext(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_STANDARD_NAMES: UDisplayContext = UDisplayContext(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_DIALECT_NAMES: UDisplayContext = UDisplayContext(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_CAPITALIZATION_NONE: UDisplayContext = UDisplayContext(256i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE: UDisplayContext = UDisplayContext(257i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE: UDisplayContext = UDisplayContext(258i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU: UDisplayContext = UDisplayContext(259i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_CAPITALIZATION_FOR_STANDALONE: UDisplayContext = UDisplayContext(260i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_LENGTH_FULL: UDisplayContext = UDisplayContext(512i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_LENGTH_SHORT: UDisplayContext = UDisplayContext(513i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_SUBSTITUTE: UDisplayContext = UDisplayContext(768i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_NO_SUBSTITUTE: UDisplayContext = UDisplayContext(769i32);
impl ::core::marker::Copy for UDisplayContext {}
impl ::core::clone::Clone for UDisplayContext {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDisplayContext {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDisplayContext {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDisplayContext {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDisplayContext").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UDisplayContextType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_TYPE_DIALECT_HANDLING: UDisplayContextType = UDisplayContextType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_TYPE_CAPITALIZATION: UDisplayContextType = UDisplayContextType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_TYPE_DISPLAY_LENGTH: UDisplayContextType = UDisplayContextType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDISPCTX_TYPE_SUBSTITUTE_HANDLING: UDisplayContextType = UDisplayContextType(3i32);
impl ::core::marker::Copy for UDisplayContextType {}
impl ::core::clone::Clone for UDisplayContextType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UDisplayContextType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UDisplayContextType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UDisplayContextType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UDisplayContextType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UEastAsianWidth(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EA_NEUTRAL: UEastAsianWidth = UEastAsianWidth(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EA_AMBIGUOUS: UEastAsianWidth = UEastAsianWidth(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EA_HALFWIDTH: UEastAsianWidth = UEastAsianWidth(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EA_FULLWIDTH: UEastAsianWidth = UEastAsianWidth(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EA_NARROW: UEastAsianWidth = UEastAsianWidth(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EA_WIDE: UEastAsianWidth = UEastAsianWidth(5i32);
impl ::core::marker::Copy for UEastAsianWidth {}
impl ::core::clone::Clone for UEastAsianWidth {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UEastAsianWidth {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UEastAsianWidth {
    type Abi = Self;
}
impl ::core::fmt::Debug for UEastAsianWidth {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UEastAsianWidth").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UEnumCharNamesFn = ::core::option::Option<unsafe extern "system" fn(context: *mut ::core::ffi::c_void, code: i32, namechoice: UCharNameChoice, name: ::windows::core::PCSTR, length: i32) -> i8>;
#[repr(C)]
pub struct UEnumeration(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UErrorCode(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_USING_FALLBACK_WARNING: UErrorCode = UErrorCode(-128i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ERROR_WARNING_START: UErrorCode = UErrorCode(-128i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_USING_DEFAULT_WARNING: UErrorCode = UErrorCode(-127i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SAFECLONE_ALLOCATED_WARNING: UErrorCode = UErrorCode(-126i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_STATE_OLD_WARNING: UErrorCode = UErrorCode(-125i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_STRING_NOT_TERMINATED_WARNING: UErrorCode = UErrorCode(-124i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SORT_KEY_TOO_SHORT_WARNING: UErrorCode = UErrorCode(-123i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_AMBIGUOUS_ALIAS_WARNING: UErrorCode = UErrorCode(-122i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DIFFERENT_UCA_VERSION: UErrorCode = UErrorCode(-121i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLUGIN_CHANGED_LEVEL_WARNING: UErrorCode = UErrorCode(-120i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ZERO_ERROR: UErrorCode = UErrorCode(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ILLEGAL_ARGUMENT_ERROR: UErrorCode = UErrorCode(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MISSING_RESOURCE_ERROR: UErrorCode = UErrorCode(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INVALID_FORMAT_ERROR: UErrorCode = UErrorCode(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_FILE_ACCESS_ERROR: UErrorCode = UErrorCode(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INTERNAL_PROGRAM_ERROR: UErrorCode = UErrorCode(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MESSAGE_PARSE_ERROR: UErrorCode = UErrorCode(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MEMORY_ALLOCATION_ERROR: UErrorCode = UErrorCode(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INDEX_OUTOFBOUNDS_ERROR: UErrorCode = UErrorCode(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PARSE_ERROR: UErrorCode = UErrorCode(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INVALID_CHAR_FOUND: UErrorCode = UErrorCode(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_TRUNCATED_CHAR_FOUND: UErrorCode = UErrorCode(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ILLEGAL_CHAR_FOUND: UErrorCode = UErrorCode(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INVALID_TABLE_FORMAT: UErrorCode = UErrorCode(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INVALID_TABLE_FILE: UErrorCode = UErrorCode(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BUFFER_OVERFLOW_ERROR: UErrorCode = UErrorCode(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNSUPPORTED_ERROR: UErrorCode = UErrorCode(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_RESOURCE_TYPE_MISMATCH: UErrorCode = UErrorCode(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ILLEGAL_ESCAPE_SEQUENCE: UErrorCode = UErrorCode(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNSUPPORTED_ESCAPE_SEQUENCE: UErrorCode = UErrorCode(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_NO_SPACE_AVAILABLE: UErrorCode = UErrorCode(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CE_NOT_FOUND_ERROR: UErrorCode = UErrorCode(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PRIMARY_TOO_LONG_ERROR: UErrorCode = UErrorCode(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_STATE_TOO_OLD_ERROR: UErrorCode = UErrorCode(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_TOO_MANY_ALIASES_ERROR: UErrorCode = UErrorCode(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ENUM_OUT_OF_SYNC_ERROR: UErrorCode = UErrorCode(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INVARIANT_CONVERSION_ERROR: UErrorCode = UErrorCode(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INVALID_STATE_ERROR: UErrorCode = UErrorCode(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_COLLATOR_VERSION_MISMATCH: UErrorCode = UErrorCode(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_USELESS_COLLATOR_ERROR: UErrorCode = UErrorCode(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_NO_WRITE_PERMISSION: UErrorCode = UErrorCode(30i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BAD_VARIABLE_DEFINITION: UErrorCode = UErrorCode(65536i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PARSE_ERROR_START: UErrorCode = UErrorCode(65536i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MALFORMED_RULE: UErrorCode = UErrorCode(65537i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MALFORMED_SET: UErrorCode = UErrorCode(65538i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MALFORMED_SYMBOL_REFERENCE: UErrorCode = UErrorCode(65539i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MALFORMED_UNICODE_ESCAPE: UErrorCode = UErrorCode(65540i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MALFORMED_VARIABLE_DEFINITION: UErrorCode = UErrorCode(65541i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MALFORMED_VARIABLE_REFERENCE: UErrorCode = UErrorCode(65542i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MISMATCHED_SEGMENT_DELIMITERS: UErrorCode = UErrorCode(65543i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MISPLACED_ANCHOR_START: UErrorCode = UErrorCode(65544i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MISPLACED_CURSOR_OFFSET: UErrorCode = UErrorCode(65545i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MISPLACED_QUANTIFIER: UErrorCode = UErrorCode(65546i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MISSING_OPERATOR: UErrorCode = UErrorCode(65547i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MISSING_SEGMENT_CLOSE: UErrorCode = UErrorCode(65548i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MULTIPLE_ANTE_CONTEXTS: UErrorCode = UErrorCode(65549i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MULTIPLE_CURSORS: UErrorCode = UErrorCode(65550i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MULTIPLE_POST_CONTEXTS: UErrorCode = UErrorCode(65551i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_TRAILING_BACKSLASH: UErrorCode = UErrorCode(65552i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNDEFINED_SEGMENT_REFERENCE: UErrorCode = UErrorCode(65553i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNDEFINED_VARIABLE: UErrorCode = UErrorCode(65554i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNQUOTED_SPECIAL: UErrorCode = UErrorCode(65555i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNTERMINATED_QUOTE: UErrorCode = UErrorCode(65556i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_RULE_MASK_ERROR: UErrorCode = UErrorCode(65557i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MISPLACED_COMPOUND_FILTER: UErrorCode = UErrorCode(65558i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MULTIPLE_COMPOUND_FILTERS: UErrorCode = UErrorCode(65559i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INVALID_RBT_SYNTAX: UErrorCode = UErrorCode(65560i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INVALID_PROPERTY_PATTERN: UErrorCode = UErrorCode(65561i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MALFORMED_PRAGMA: UErrorCode = UErrorCode(65562i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNCLOSED_SEGMENT: UErrorCode = UErrorCode(65563i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ILLEGAL_CHAR_IN_SEGMENT: UErrorCode = UErrorCode(65564i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_VARIABLE_RANGE_EXHAUSTED: UErrorCode = UErrorCode(65565i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_VARIABLE_RANGE_OVERLAP: UErrorCode = UErrorCode(65566i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ILLEGAL_CHARACTER: UErrorCode = UErrorCode(65567i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INTERNAL_TRANSLITERATOR_ERROR: UErrorCode = UErrorCode(65568i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INVALID_ID: UErrorCode = UErrorCode(65569i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INVALID_FUNCTION: UErrorCode = UErrorCode(65570i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNEXPECTED_TOKEN: UErrorCode = UErrorCode(65792i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_FMT_PARSE_ERROR_START: UErrorCode = UErrorCode(65792i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MULTIPLE_DECIMAL_SEPARATORS: UErrorCode = UErrorCode(65793i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MULTIPLE_DECIMAL_SEPERATORS: UErrorCode = UErrorCode(65793i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MULTIPLE_EXPONENTIAL_SYMBOLS: UErrorCode = UErrorCode(65794i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MALFORMED_EXPONENTIAL_PATTERN: UErrorCode = UErrorCode(65795i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MULTIPLE_PERCENT_SYMBOLS: UErrorCode = UErrorCode(65796i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MULTIPLE_PERMILL_SYMBOLS: UErrorCode = UErrorCode(65797i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MULTIPLE_PAD_SPECIFIERS: UErrorCode = UErrorCode(65798i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PATTERN_SYNTAX_ERROR: UErrorCode = UErrorCode(65799i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ILLEGAL_PAD_POSITION: UErrorCode = UErrorCode(65800i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNMATCHED_BRACES: UErrorCode = UErrorCode(65801i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNSUPPORTED_PROPERTY: UErrorCode = UErrorCode(65802i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNSUPPORTED_ATTRIBUTE: UErrorCode = UErrorCode(65803i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ARGUMENT_TYPE_MISMATCH: UErrorCode = UErrorCode(65804i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DUPLICATE_KEYWORD: UErrorCode = UErrorCode(65805i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNDEFINED_KEYWORD: UErrorCode = UErrorCode(65806i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DEFAULT_KEYWORD_MISSING: UErrorCode = UErrorCode(65807i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DECIMAL_NUMBER_SYNTAX_ERROR: UErrorCode = UErrorCode(65808i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_FORMAT_INEXACT_ERROR: UErrorCode = UErrorCode(65809i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_NUMBER_ARG_OUTOFBOUNDS_ERROR: UErrorCode = UErrorCode(65810i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_NUMBER_SKELETON_SYNTAX_ERROR: UErrorCode = UErrorCode(65811i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_INTERNAL_ERROR: UErrorCode = UErrorCode(66048i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_ERROR_START: UErrorCode = UErrorCode(66048i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_HEX_DIGITS_EXPECTED: UErrorCode = UErrorCode(66049i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_SEMICOLON_EXPECTED: UErrorCode = UErrorCode(66050i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_RULE_SYNTAX: UErrorCode = UErrorCode(66051i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_UNCLOSED_SET: UErrorCode = UErrorCode(66052i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_ASSIGN_ERROR: UErrorCode = UErrorCode(66053i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_VARIABLE_REDFINITION: UErrorCode = UErrorCode(66054i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_MISMATCHED_PAREN: UErrorCode = UErrorCode(66055i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_NEW_LINE_IN_QUOTED_STRING: UErrorCode = UErrorCode(66056i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_UNDEFINED_VARIABLE: UErrorCode = UErrorCode(66057i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_INIT_ERROR: UErrorCode = UErrorCode(66058i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_RULE_EMPTY_SET: UErrorCode = UErrorCode(66059i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_UNRECOGNIZED_OPTION: UErrorCode = UErrorCode(66060i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_BRK_MALFORMED_RULE_TAG: UErrorCode = UErrorCode(66061i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_INTERNAL_ERROR: UErrorCode = UErrorCode(66304i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_ERROR_START: UErrorCode = UErrorCode(66304i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_RULE_SYNTAX: UErrorCode = UErrorCode(66305i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_INVALID_STATE: UErrorCode = UErrorCode(66306i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_BAD_ESCAPE_SEQUENCE: UErrorCode = UErrorCode(66307i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_PROPERTY_SYNTAX: UErrorCode = UErrorCode(66308i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_UNIMPLEMENTED: UErrorCode = UErrorCode(66309i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_MISMATCHED_PAREN: UErrorCode = UErrorCode(66310i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_NUMBER_TOO_BIG: UErrorCode = UErrorCode(66311i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_BAD_INTERVAL: UErrorCode = UErrorCode(66312i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_MAX_LT_MIN: UErrorCode = UErrorCode(66313i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_INVALID_BACK_REF: UErrorCode = UErrorCode(66314i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_INVALID_FLAG: UErrorCode = UErrorCode(66315i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_LOOK_BEHIND_LIMIT: UErrorCode = UErrorCode(66316i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_SET_CONTAINS_STRING: UErrorCode = UErrorCode(66317i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_MISSING_CLOSE_BRACKET: UErrorCode = UErrorCode(66319i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_INVALID_RANGE: UErrorCode = UErrorCode(66320i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_STACK_OVERFLOW: UErrorCode = UErrorCode(66321i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_TIME_OUT: UErrorCode = UErrorCode(66322i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_STOPPED_BY_CALLER: UErrorCode = UErrorCode(66323i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_PATTERN_TOO_BIG: UErrorCode = UErrorCode(66324i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_REGEX_INVALID_CAPTURE_GROUP_NAME: UErrorCode = UErrorCode(66325i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IDNA_PROHIBITED_ERROR: UErrorCode = UErrorCode(66560i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IDNA_ERROR_START: UErrorCode = UErrorCode(66560i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IDNA_UNASSIGNED_ERROR: UErrorCode = UErrorCode(66561i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IDNA_CHECK_BIDI_ERROR: UErrorCode = UErrorCode(66562i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IDNA_STD3_ASCII_RULES_ERROR: UErrorCode = UErrorCode(66563i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IDNA_ACE_PREFIX_ERROR: UErrorCode = UErrorCode(66564i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IDNA_VERIFICATION_ERROR: UErrorCode = UErrorCode(66565i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IDNA_LABEL_TOO_LONG_ERROR: UErrorCode = UErrorCode(66566i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IDNA_ZERO_LENGTH_LABEL_ERROR: UErrorCode = UErrorCode(66567i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR: UErrorCode = UErrorCode(66568i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_STRINGPREP_PROHIBITED_ERROR: UErrorCode = UErrorCode(66560i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_STRINGPREP_UNASSIGNED_ERROR: UErrorCode = UErrorCode(66561i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_STRINGPREP_CHECK_BIDI_ERROR: UErrorCode = UErrorCode(66562i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLUGIN_ERROR_START: UErrorCode = UErrorCode(66816i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLUGIN_TOO_HIGH: UErrorCode = UErrorCode(66816i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLUGIN_DIDNT_SET_LEVEL: UErrorCode = UErrorCode(66817i32);
impl ::core::marker::Copy for UErrorCode {}
impl ::core::clone::Clone for UErrorCode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UErrorCode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UErrorCode {
    type Abi = Self;
}
impl ::core::fmt::Debug for UErrorCode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UErrorCode").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UFieldCategory(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFIELD_CATEGORY_UNDEFINED: UFieldCategory = UFieldCategory(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFIELD_CATEGORY_DATE: UFieldCategory = UFieldCategory(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFIELD_CATEGORY_NUMBER: UFieldCategory = UFieldCategory(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFIELD_CATEGORY_LIST: UFieldCategory = UFieldCategory(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFIELD_CATEGORY_RELATIVE_DATETIME: UFieldCategory = UFieldCategory(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFIELD_CATEGORY_DATE_INTERVAL: UFieldCategory = UFieldCategory(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFIELD_CATEGORY_LIST_SPAN: UFieldCategory = UFieldCategory(4099i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFIELD_CATEGORY_DATE_INTERVAL_SPAN: UFieldCategory = UFieldCategory(4101i32);
impl ::core::marker::Copy for UFieldCategory {}
impl ::core::clone::Clone for UFieldCategory {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UFieldCategory {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UFieldCategory {
    type Abi = Self;
}
impl ::core::fmt::Debug for UFieldCategory {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UFieldCategory").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UFieldPosition {
    pub field: i32,
    pub beginIndex: i32,
    pub endIndex: i32,
}
impl ::core::marker::Copy for UFieldPosition {}
impl ::core::clone::Clone for UFieldPosition {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UFieldPosition {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UFieldPosition").field("field", &self.field).field("beginIndex", &self.beginIndex).field("endIndex", &self.endIndex).finish()
    }
}
unsafe impl ::windows::core::Abi for UFieldPosition {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UFieldPosition {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UFieldPosition>()) == 0 }
    }
}
impl ::core::cmp::Eq for UFieldPosition {}
impl ::core::default::Default for UFieldPosition {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
pub struct UFieldPositionIterator(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UFormattableType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFMT_DATE: UFormattableType = UFormattableType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFMT_DOUBLE: UFormattableType = UFormattableType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFMT_LONG: UFormattableType = UFormattableType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFMT_STRING: UFormattableType = UFormattableType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFMT_ARRAY: UFormattableType = UFormattableType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFMT_INT64: UFormattableType = UFormattableType(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UFMT_OBJECT: UFormattableType = UFormattableType(6i32);
impl ::core::marker::Copy for UFormattableType {}
impl ::core::clone::Clone for UFormattableType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UFormattableType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UFormattableType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UFormattableType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UFormattableType").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UFormattedDateInterval(pub u8);
#[repr(C)]
pub struct UFormattedList(pub u8);
#[repr(C)]
pub struct UFormattedNumber(pub u8);
#[repr(C)]
pub struct UFormattedNumberRange(pub u8);
#[repr(C)]
pub struct UFormattedRelativeDateTime(pub u8);
#[repr(C)]
pub struct UFormattedValue(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UGender(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UGENDER_MALE: UGender = UGender(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UGENDER_FEMALE: UGender = UGender(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UGENDER_OTHER: UGender = UGender(2i32);
impl ::core::marker::Copy for UGender {}
impl ::core::clone::Clone for UGender {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UGender {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UGender {
    type Abi = Self;
}
impl ::core::fmt::Debug for UGender {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UGender").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UGenderInfo(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UGraphemeClusterBreak(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_OTHER: UGraphemeClusterBreak = UGraphemeClusterBreak(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_CONTROL: UGraphemeClusterBreak = UGraphemeClusterBreak(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_CR: UGraphemeClusterBreak = UGraphemeClusterBreak(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_EXTEND: UGraphemeClusterBreak = UGraphemeClusterBreak(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_L: UGraphemeClusterBreak = UGraphemeClusterBreak(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_LF: UGraphemeClusterBreak = UGraphemeClusterBreak(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_LV: UGraphemeClusterBreak = UGraphemeClusterBreak(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_LVT: UGraphemeClusterBreak = UGraphemeClusterBreak(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_T: UGraphemeClusterBreak = UGraphemeClusterBreak(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_V: UGraphemeClusterBreak = UGraphemeClusterBreak(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_SPACING_MARK: UGraphemeClusterBreak = UGraphemeClusterBreak(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_PREPEND: UGraphemeClusterBreak = UGraphemeClusterBreak(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_REGIONAL_INDICATOR: UGraphemeClusterBreak = UGraphemeClusterBreak(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_E_BASE: UGraphemeClusterBreak = UGraphemeClusterBreak(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_E_BASE_GAZ: UGraphemeClusterBreak = UGraphemeClusterBreak(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_E_MODIFIER: UGraphemeClusterBreak = UGraphemeClusterBreak(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_GLUE_AFTER_ZWJ: UGraphemeClusterBreak = UGraphemeClusterBreak(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCB_ZWJ: UGraphemeClusterBreak = UGraphemeClusterBreak(17i32);
impl ::core::marker::Copy for UGraphemeClusterBreak {}
impl ::core::clone::Clone for UGraphemeClusterBreak {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UGraphemeClusterBreak {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UGraphemeClusterBreak {
    type Abi = Self;
}
impl ::core::fmt::Debug for UGraphemeClusterBreak {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UGraphemeClusterBreak").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UHangulSyllableType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HST_NOT_APPLICABLE: UHangulSyllableType = UHangulSyllableType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HST_LEADING_JAMO: UHangulSyllableType = UHangulSyllableType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HST_VOWEL_JAMO: UHangulSyllableType = UHangulSyllableType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HST_TRAILING_JAMO: UHangulSyllableType = UHangulSyllableType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HST_LV_SYLLABLE: UHangulSyllableType = UHangulSyllableType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HST_LVT_SYLLABLE: UHangulSyllableType = UHangulSyllableType(5i32);
impl ::core::marker::Copy for UHangulSyllableType {}
impl ::core::clone::Clone for UHangulSyllableType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UHangulSyllableType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UHangulSyllableType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UHangulSyllableType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UHangulSyllableType").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UHashtable(pub u8);
#[repr(C)]
pub struct UIDNA(pub u8);
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UIDNAInfo {
    pub size: i16,
    pub isTransitionalDifferent: i8,
    pub reservedB3: i8,
    pub errors: u32,
    pub reservedI2: i32,
    pub reservedI3: i32,
}
impl ::core::marker::Copy for UIDNAInfo {}
impl ::core::clone::Clone for UIDNAInfo {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UIDNAInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UIDNAInfo").field("size", &self.size).field("isTransitionalDifferent", &self.isTransitionalDifferent).field("reservedB3", &self.reservedB3).field("errors", &self.errors).field("reservedI2", &self.reservedI2).field("reservedI3", &self.reservedI3).finish()
    }
}
unsafe impl ::windows::core::Abi for UIDNAInfo {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UIDNAInfo {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UIDNAInfo>()) == 0 }
    }
}
impl ::core::cmp::Eq for UIDNAInfo {}
impl ::core::default::Default for UIDNAInfo {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_CHECK_BIDI: i32 = 4i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_CHECK_CONTEXTJ: i32 = 8i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_CHECK_CONTEXTO: i32 = 64i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_DEFAULT: i32 = 0i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_BIDI: i32 = 2048i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_CONTEXTJ: i32 = 4096i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_CONTEXTO_DIGITS: i32 = 16384i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_CONTEXTO_PUNCTUATION: i32 = 8192i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_DISALLOWED: i32 = 128i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_DOMAIN_NAME_TOO_LONG: i32 = 4i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_EMPTY_LABEL: i32 = 1i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_HYPHEN_3_4: i32 = 32i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_INVALID_ACE_LABEL: i32 = 1024i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_LABEL_HAS_DOT: i32 = 512i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_LABEL_TOO_LONG: i32 = 2i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_LEADING_COMBINING_MARK: i32 = 64i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_LEADING_HYPHEN: i32 = 8i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_PUNYCODE: i32 = 256i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_ERROR_TRAILING_HYPHEN: i32 = 16i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_NONTRANSITIONAL_TO_ASCII: i32 = 16i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_NONTRANSITIONAL_TO_UNICODE: i32 = 32i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UIDNA_USE_STD3_RULES: i32 = 2i32;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type UILANGUAGE_ENUMPROCA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: isize) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
pub type UILANGUAGE_ENUMPROCW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: isize) -> super::Foundation::BOOL>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UITER_UNKNOWN_INDEX: i32 = -2i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UIndicPositionalCategory(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_NA: UIndicPositionalCategory = UIndicPositionalCategory(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_BOTTOM: UIndicPositionalCategory = UIndicPositionalCategory(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_BOTTOM_AND_LEFT: UIndicPositionalCategory = UIndicPositionalCategory(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_BOTTOM_AND_RIGHT: UIndicPositionalCategory = UIndicPositionalCategory(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_LEFT: UIndicPositionalCategory = UIndicPositionalCategory(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_LEFT_AND_RIGHT: UIndicPositionalCategory = UIndicPositionalCategory(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_OVERSTRUCK: UIndicPositionalCategory = UIndicPositionalCategory(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_RIGHT: UIndicPositionalCategory = UIndicPositionalCategory(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_TOP: UIndicPositionalCategory = UIndicPositionalCategory(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_TOP_AND_BOTTOM: UIndicPositionalCategory = UIndicPositionalCategory(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_TOP_AND_BOTTOM_AND_RIGHT: UIndicPositionalCategory = UIndicPositionalCategory(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_TOP_AND_LEFT: UIndicPositionalCategory = UIndicPositionalCategory(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_TOP_AND_LEFT_AND_RIGHT: UIndicPositionalCategory = UIndicPositionalCategory(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_TOP_AND_RIGHT: UIndicPositionalCategory = UIndicPositionalCategory(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_VISUAL_ORDER_LEFT: UIndicPositionalCategory = UIndicPositionalCategory(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INPC_TOP_AND_BOTTOM_AND_LEFT: UIndicPositionalCategory = UIndicPositionalCategory(15i32);
impl ::core::marker::Copy for UIndicPositionalCategory {}
impl ::core::clone::Clone for UIndicPositionalCategory {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UIndicPositionalCategory {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UIndicPositionalCategory {
    type Abi = Self;
}
impl ::core::fmt::Debug for UIndicPositionalCategory {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UIndicPositionalCategory").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UIndicSyllabicCategory(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_OTHER: UIndicSyllabicCategory = UIndicSyllabicCategory(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_AVAGRAHA: UIndicSyllabicCategory = UIndicSyllabicCategory(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_BINDU: UIndicSyllabicCategory = UIndicSyllabicCategory(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_BRAHMI_JOINING_NUMBER: UIndicSyllabicCategory = UIndicSyllabicCategory(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CANTILLATION_MARK: UIndicSyllabicCategory = UIndicSyllabicCategory(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT: UIndicSyllabicCategory = UIndicSyllabicCategory(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_DEAD: UIndicSyllabicCategory = UIndicSyllabicCategory(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_FINAL: UIndicSyllabicCategory = UIndicSyllabicCategory(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_HEAD_LETTER: UIndicSyllabicCategory = UIndicSyllabicCategory(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_INITIAL_POSTFIXED: UIndicSyllabicCategory = UIndicSyllabicCategory(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_KILLER: UIndicSyllabicCategory = UIndicSyllabicCategory(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_MEDIAL: UIndicSyllabicCategory = UIndicSyllabicCategory(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_PLACEHOLDER: UIndicSyllabicCategory = UIndicSyllabicCategory(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_PRECEDING_REPHA: UIndicSyllabicCategory = UIndicSyllabicCategory(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_PREFIXED: UIndicSyllabicCategory = UIndicSyllabicCategory(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_SUBJOINED: UIndicSyllabicCategory = UIndicSyllabicCategory(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_SUCCEEDING_REPHA: UIndicSyllabicCategory = UIndicSyllabicCategory(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_CONSONANT_WITH_STACKER: UIndicSyllabicCategory = UIndicSyllabicCategory(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_GEMINATION_MARK: UIndicSyllabicCategory = UIndicSyllabicCategory(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_INVISIBLE_STACKER: UIndicSyllabicCategory = UIndicSyllabicCategory(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_JOINER: UIndicSyllabicCategory = UIndicSyllabicCategory(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_MODIFYING_LETTER: UIndicSyllabicCategory = UIndicSyllabicCategory(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_NON_JOINER: UIndicSyllabicCategory = UIndicSyllabicCategory(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_NUKTA: UIndicSyllabicCategory = UIndicSyllabicCategory(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_NUMBER: UIndicSyllabicCategory = UIndicSyllabicCategory(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_NUMBER_JOINER: UIndicSyllabicCategory = UIndicSyllabicCategory(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_PURE_KILLER: UIndicSyllabicCategory = UIndicSyllabicCategory(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_REGISTER_SHIFTER: UIndicSyllabicCategory = UIndicSyllabicCategory(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_SYLLABLE_MODIFIER: UIndicSyllabicCategory = UIndicSyllabicCategory(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_TONE_LETTER: UIndicSyllabicCategory = UIndicSyllabicCategory(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_TONE_MARK: UIndicSyllabicCategory = UIndicSyllabicCategory(30i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_VIRAMA: UIndicSyllabicCategory = UIndicSyllabicCategory(31i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_VISARGA: UIndicSyllabicCategory = UIndicSyllabicCategory(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_VOWEL: UIndicSyllabicCategory = UIndicSyllabicCategory(33i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_VOWEL_DEPENDENT: UIndicSyllabicCategory = UIndicSyllabicCategory(34i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_INSC_VOWEL_INDEPENDENT: UIndicSyllabicCategory = UIndicSyllabicCategory(35i32);
impl ::core::marker::Copy for UIndicSyllabicCategory {}
impl ::core::clone::Clone for UIndicSyllabicCategory {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UIndicSyllabicCategory {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UIndicSyllabicCategory {
    type Abi = Self;
}
impl ::core::fmt::Debug for UIndicSyllabicCategory {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UIndicSyllabicCategory").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UJoiningGroup(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_NO_JOINING_GROUP: UJoiningGroup = UJoiningGroup(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_AIN: UJoiningGroup = UJoiningGroup(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_ALAPH: UJoiningGroup = UJoiningGroup(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_ALEF: UJoiningGroup = UJoiningGroup(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_BEH: UJoiningGroup = UJoiningGroup(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_BETH: UJoiningGroup = UJoiningGroup(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_DAL: UJoiningGroup = UJoiningGroup(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_DALATH_RISH: UJoiningGroup = UJoiningGroup(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_E: UJoiningGroup = UJoiningGroup(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_FEH: UJoiningGroup = UJoiningGroup(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_FINAL_SEMKATH: UJoiningGroup = UJoiningGroup(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_GAF: UJoiningGroup = UJoiningGroup(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_GAMAL: UJoiningGroup = UJoiningGroup(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_HAH: UJoiningGroup = UJoiningGroup(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_TEH_MARBUTA_GOAL: UJoiningGroup = UJoiningGroup(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_HAMZA_ON_HEH_GOAL: UJoiningGroup = UJoiningGroup(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_HE: UJoiningGroup = UJoiningGroup(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_HEH: UJoiningGroup = UJoiningGroup(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_HEH_GOAL: UJoiningGroup = UJoiningGroup(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_HETH: UJoiningGroup = UJoiningGroup(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_KAF: UJoiningGroup = UJoiningGroup(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_KAPH: UJoiningGroup = UJoiningGroup(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_KNOTTED_HEH: UJoiningGroup = UJoiningGroup(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_LAM: UJoiningGroup = UJoiningGroup(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_LAMADH: UJoiningGroup = UJoiningGroup(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MEEM: UJoiningGroup = UJoiningGroup(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MIM: UJoiningGroup = UJoiningGroup(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_NOON: UJoiningGroup = UJoiningGroup(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_NUN: UJoiningGroup = UJoiningGroup(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_PE: UJoiningGroup = UJoiningGroup(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_QAF: UJoiningGroup = UJoiningGroup(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_QAPH: UJoiningGroup = UJoiningGroup(30i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_REH: UJoiningGroup = UJoiningGroup(31i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_REVERSED_PE: UJoiningGroup = UJoiningGroup(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_SAD: UJoiningGroup = UJoiningGroup(33i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_SADHE: UJoiningGroup = UJoiningGroup(34i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_SEEN: UJoiningGroup = UJoiningGroup(35i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_SEMKATH: UJoiningGroup = UJoiningGroup(36i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_SHIN: UJoiningGroup = UJoiningGroup(37i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_SWASH_KAF: UJoiningGroup = UJoiningGroup(38i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_SYRIAC_WAW: UJoiningGroup = UJoiningGroup(39i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_TAH: UJoiningGroup = UJoiningGroup(40i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_TAW: UJoiningGroup = UJoiningGroup(41i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_TEH_MARBUTA: UJoiningGroup = UJoiningGroup(42i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_TETH: UJoiningGroup = UJoiningGroup(43i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_WAW: UJoiningGroup = UJoiningGroup(44i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_YEH: UJoiningGroup = UJoiningGroup(45i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_YEH_BARREE: UJoiningGroup = UJoiningGroup(46i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_YEH_WITH_TAIL: UJoiningGroup = UJoiningGroup(47i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_YUDH: UJoiningGroup = UJoiningGroup(48i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_YUDH_HE: UJoiningGroup = UJoiningGroup(49i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_ZAIN: UJoiningGroup = UJoiningGroup(50i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_FE: UJoiningGroup = UJoiningGroup(51i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_KHAPH: UJoiningGroup = UJoiningGroup(52i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_ZHAIN: UJoiningGroup = UJoiningGroup(53i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_BURUSHASKI_YEH_BARREE: UJoiningGroup = UJoiningGroup(54i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_FARSI_YEH: UJoiningGroup = UJoiningGroup(55i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_NYA: UJoiningGroup = UJoiningGroup(56i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_ROHINGYA_YEH: UJoiningGroup = UJoiningGroup(57i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_ALEPH: UJoiningGroup = UJoiningGroup(58i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_AYIN: UJoiningGroup = UJoiningGroup(59i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_BETH: UJoiningGroup = UJoiningGroup(60i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_DALETH: UJoiningGroup = UJoiningGroup(61i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_DHAMEDH: UJoiningGroup = UJoiningGroup(62i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_FIVE: UJoiningGroup = UJoiningGroup(63i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_GIMEL: UJoiningGroup = UJoiningGroup(64i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_HETH: UJoiningGroup = UJoiningGroup(65i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_HUNDRED: UJoiningGroup = UJoiningGroup(66i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_KAPH: UJoiningGroup = UJoiningGroup(67i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_LAMEDH: UJoiningGroup = UJoiningGroup(68i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_MEM: UJoiningGroup = UJoiningGroup(69i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_NUN: UJoiningGroup = UJoiningGroup(70i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_ONE: UJoiningGroup = UJoiningGroup(71i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_PE: UJoiningGroup = UJoiningGroup(72i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_QOPH: UJoiningGroup = UJoiningGroup(73i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_RESH: UJoiningGroup = UJoiningGroup(74i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_SADHE: UJoiningGroup = UJoiningGroup(75i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_SAMEKH: UJoiningGroup = UJoiningGroup(76i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_TAW: UJoiningGroup = UJoiningGroup(77i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_TEN: UJoiningGroup = UJoiningGroup(78i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_TETH: UJoiningGroup = UJoiningGroup(79i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_THAMEDH: UJoiningGroup = UJoiningGroup(80i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_TWENTY: UJoiningGroup = UJoiningGroup(81i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_WAW: UJoiningGroup = UJoiningGroup(82i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_YODH: UJoiningGroup = UJoiningGroup(83i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MANICHAEAN_ZAYIN: UJoiningGroup = UJoiningGroup(84i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_STRAIGHT_WAW: UJoiningGroup = UJoiningGroup(85i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_AFRICAN_FEH: UJoiningGroup = UJoiningGroup(86i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_AFRICAN_NOON: UJoiningGroup = UJoiningGroup(87i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_AFRICAN_QAF: UJoiningGroup = UJoiningGroup(88i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_BHA: UJoiningGroup = UJoiningGroup(89i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_JA: UJoiningGroup = UJoiningGroup(90i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_LLA: UJoiningGroup = UJoiningGroup(91i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_LLLA: UJoiningGroup = UJoiningGroup(92i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_NGA: UJoiningGroup = UJoiningGroup(93i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_NNA: UJoiningGroup = UJoiningGroup(94i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_NNNA: UJoiningGroup = UJoiningGroup(95i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_NYA: UJoiningGroup = UJoiningGroup(96i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_RA: UJoiningGroup = UJoiningGroup(97i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_SSA: UJoiningGroup = UJoiningGroup(98i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_MALAYALAM_TTA: UJoiningGroup = UJoiningGroup(99i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_HANIFI_ROHINGYA_KINNA_YA: UJoiningGroup = UJoiningGroup(100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JG_HANIFI_ROHINGYA_PA: UJoiningGroup = UJoiningGroup(101i32);
impl ::core::marker::Copy for UJoiningGroup {}
impl ::core::clone::Clone for UJoiningGroup {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UJoiningGroup {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UJoiningGroup {
    type Abi = Self;
}
impl ::core::fmt::Debug for UJoiningGroup {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UJoiningGroup").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UJoiningType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JT_NON_JOINING: UJoiningType = UJoiningType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JT_JOIN_CAUSING: UJoiningType = UJoiningType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JT_DUAL_JOINING: UJoiningType = UJoiningType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JT_LEFT_JOINING: UJoiningType = UJoiningType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JT_RIGHT_JOINING: UJoiningType = UJoiningType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_JT_TRANSPARENT: UJoiningType = UJoiningType(5i32);
impl ::core::marker::Copy for UJoiningType {}
impl ::core::clone::Clone for UJoiningType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UJoiningType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UJoiningType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UJoiningType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UJoiningType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_CANADA: &'static str = "en_CA";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_CANADA_FRENCH: &'static str = "fr_CA";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_CHINA: &'static str = "zh_CN";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_CHINESE: &'static str = "zh";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_COUNTRY_CAPACITY: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_ENGLISH: &'static str = "en";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_FRANCE: &'static str = "fr_FR";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_FRENCH: &'static str = "fr";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_FULLNAME_CAPACITY: u32 = 157u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_GERMAN: &'static str = "de";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_GERMANY: &'static str = "de_DE";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_ITALIAN: &'static str = "it";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_ITALY: &'static str = "it_IT";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_JAPAN: &'static str = "ja_JP";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_JAPANESE: &'static str = "ja";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_KEYWORDS_CAPACITY: u32 = 96u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_KEYWORD_AND_VALUES_CAPACITY: u32 = 100u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_KEYWORD_ASSIGN_UNICODE: u32 = 61u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_KEYWORD_ITEM_SEPARATOR_UNICODE: u32 = 59u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_KEYWORD_SEPARATOR_UNICODE: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_KOREA: &'static str = "ko_KR";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_KOREAN: &'static str = "ko";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_LANG_CAPACITY: u32 = 12u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_PRC: &'static str = "zh_CN";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_SCRIPT_CAPACITY: u32 = 6u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_SIMPLIFIED_CHINESE: &'static str = "zh_CN";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_TAIWAN: &'static str = "zh_TW";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_TRADITIONAL_CHINESE: &'static str = "zh_TW";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_UK: &'static str = "en_GB";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_US: &'static str = "en_US";
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ULayoutType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_LAYOUT_LTR: ULayoutType = ULayoutType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_LAYOUT_RTL: ULayoutType = ULayoutType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_LAYOUT_TTB: ULayoutType = ULayoutType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_LAYOUT_BTT: ULayoutType = ULayoutType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_LAYOUT_UNKNOWN: ULayoutType = ULayoutType(4i32);
impl ::core::marker::Copy for ULayoutType {}
impl ::core::clone::Clone for ULayoutType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ULayoutType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ULayoutType {
    type Abi = Self;
}
impl ::core::fmt::Debug for ULayoutType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ULayoutType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ULineBreak(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_UNKNOWN: ULineBreak = ULineBreak(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_AMBIGUOUS: ULineBreak = ULineBreak(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_ALPHABETIC: ULineBreak = ULineBreak(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_BREAK_BOTH: ULineBreak = ULineBreak(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_BREAK_AFTER: ULineBreak = ULineBreak(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_BREAK_BEFORE: ULineBreak = ULineBreak(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_MANDATORY_BREAK: ULineBreak = ULineBreak(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_CONTINGENT_BREAK: ULineBreak = ULineBreak(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_CLOSE_PUNCTUATION: ULineBreak = ULineBreak(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_COMBINING_MARK: ULineBreak = ULineBreak(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_CARRIAGE_RETURN: ULineBreak = ULineBreak(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_EXCLAMATION: ULineBreak = ULineBreak(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_GLUE: ULineBreak = ULineBreak(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_HYPHEN: ULineBreak = ULineBreak(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_IDEOGRAPHIC: ULineBreak = ULineBreak(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_INSEPARABLE: ULineBreak = ULineBreak(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_INSEPERABLE: ULineBreak = ULineBreak(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_INFIX_NUMERIC: ULineBreak = ULineBreak(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_LINE_FEED: ULineBreak = ULineBreak(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_NONSTARTER: ULineBreak = ULineBreak(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_NUMERIC: ULineBreak = ULineBreak(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_OPEN_PUNCTUATION: ULineBreak = ULineBreak(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_POSTFIX_NUMERIC: ULineBreak = ULineBreak(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_PREFIX_NUMERIC: ULineBreak = ULineBreak(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_QUOTATION: ULineBreak = ULineBreak(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_COMPLEX_CONTEXT: ULineBreak = ULineBreak(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_SURROGATE: ULineBreak = ULineBreak(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_SPACE: ULineBreak = ULineBreak(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_BREAK_SYMBOLS: ULineBreak = ULineBreak(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_ZWSPACE: ULineBreak = ULineBreak(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_NEXT_LINE: ULineBreak = ULineBreak(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_WORD_JOINER: ULineBreak = ULineBreak(30i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_H2: ULineBreak = ULineBreak(31i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_H3: ULineBreak = ULineBreak(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_JL: ULineBreak = ULineBreak(33i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_JT: ULineBreak = ULineBreak(34i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_JV: ULineBreak = ULineBreak(35i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_CLOSE_PARENTHESIS: ULineBreak = ULineBreak(36i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_CONDITIONAL_JAPANESE_STARTER: ULineBreak = ULineBreak(37i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_HEBREW_LETTER: ULineBreak = ULineBreak(38i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_REGIONAL_INDICATOR: ULineBreak = ULineBreak(39i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_E_BASE: ULineBreak = ULineBreak(40i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_E_MODIFIER: ULineBreak = ULineBreak(41i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LB_ZWJ: ULineBreak = ULineBreak(42i32);
impl ::core::marker::Copy for ULineBreak {}
impl ::core::clone::Clone for ULineBreak {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ULineBreak {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ULineBreak {
    type Abi = Self;
}
impl ::core::fmt::Debug for ULineBreak {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ULineBreak").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ULineBreakTag(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_LINE_SOFT: ULineBreakTag = ULineBreakTag(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_LINE_SOFT_LIMIT: ULineBreakTag = ULineBreakTag(100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_LINE_HARD: ULineBreakTag = ULineBreakTag(100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_LINE_HARD_LIMIT: ULineBreakTag = ULineBreakTag(200i32);
impl ::core::marker::Copy for ULineBreakTag {}
impl ::core::clone::Clone for ULineBreakTag {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ULineBreakTag {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ULineBreakTag {
    type Abi = Self;
}
impl ::core::fmt::Debug for ULineBreakTag {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ULineBreakTag").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UListFormatter(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UListFormatterField(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULISTFMT_LITERAL_FIELD: UListFormatterField = UListFormatterField(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULISTFMT_ELEMENT_FIELD: UListFormatterField = UListFormatterField(1i32);
impl ::core::marker::Copy for UListFormatterField {}
impl ::core::clone::Clone for UListFormatterField {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UListFormatterField {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UListFormatterField {
    type Abi = Self;
}
impl ::core::fmt::Debug for UListFormatterField {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UListFormatterField").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UListFormatterType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULISTFMT_TYPE_AND: UListFormatterType = UListFormatterType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULISTFMT_TYPE_OR: UListFormatterType = UListFormatterType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULISTFMT_TYPE_UNITS: UListFormatterType = UListFormatterType(2i32);
impl ::core::marker::Copy for UListFormatterType {}
impl ::core::clone::Clone for UListFormatterType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UListFormatterType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UListFormatterType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UListFormatterType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UListFormatterType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UListFormatterWidth(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULISTFMT_WIDTH_WIDE: UListFormatterWidth = UListFormatterWidth(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULISTFMT_WIDTH_SHORT: UListFormatterWidth = UListFormatterWidth(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULISTFMT_WIDTH_NARROW: UListFormatterWidth = UListFormatterWidth(2i32);
impl ::core::marker::Copy for UListFormatterWidth {}
impl ::core::clone::Clone for UListFormatterWidth {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UListFormatterWidth {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UListFormatterWidth {
    type Abi = Self;
}
impl ::core::fmt::Debug for UListFormatterWidth {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UListFormatterWidth").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ULocAvailableType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_AVAILABLE_DEFAULT: ULocAvailableType = ULocAvailableType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_AVAILABLE_ONLY_LEGACY_ALIASES: ULocAvailableType = ULocAvailableType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_AVAILABLE_WITH_LEGACY_ALIASES: ULocAvailableType = ULocAvailableType(2i32);
impl ::core::marker::Copy for ULocAvailableType {}
impl ::core::clone::Clone for ULocAvailableType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ULocAvailableType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ULocAvailableType {
    type Abi = Self;
}
impl ::core::fmt::Debug for ULocAvailableType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ULocAvailableType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ULocDataLocaleType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_ACTUAL_LOCALE: ULocDataLocaleType = ULocDataLocaleType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOC_VALID_LOCALE: ULocDataLocaleType = ULocDataLocaleType(1i32);
impl ::core::marker::Copy for ULocDataLocaleType {}
impl ::core::clone::Clone for ULocDataLocaleType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ULocDataLocaleType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ULocDataLocaleType {
    type Abi = Self;
}
impl ::core::fmt::Debug for ULocDataLocaleType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ULocDataLocaleType").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct ULocaleData(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ULocaleDataDelimiterType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOCDATA_QUOTATION_START: ULocaleDataDelimiterType = ULocaleDataDelimiterType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOCDATA_QUOTATION_END: ULocaleDataDelimiterType = ULocaleDataDelimiterType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOCDATA_ALT_QUOTATION_START: ULocaleDataDelimiterType = ULocaleDataDelimiterType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOCDATA_ALT_QUOTATION_END: ULocaleDataDelimiterType = ULocaleDataDelimiterType(3i32);
impl ::core::marker::Copy for ULocaleDataDelimiterType {}
impl ::core::clone::Clone for ULocaleDataDelimiterType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ULocaleDataDelimiterType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ULocaleDataDelimiterType {
    type Abi = Self;
}
impl ::core::fmt::Debug for ULocaleDataDelimiterType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ULocaleDataDelimiterType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct ULocaleDataExemplarSetType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOCDATA_ES_STANDARD: ULocaleDataExemplarSetType = ULocaleDataExemplarSetType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOCDATA_ES_AUXILIARY: ULocaleDataExemplarSetType = ULocaleDataExemplarSetType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOCDATA_ES_INDEX: ULocaleDataExemplarSetType = ULocaleDataExemplarSetType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const ULOCDATA_ES_PUNCTUATION: ULocaleDataExemplarSetType = ULocaleDataExemplarSetType(3i32);
impl ::core::marker::Copy for ULocaleDataExemplarSetType {}
impl ::core::clone::Clone for ULocaleDataExemplarSetType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ULocaleDataExemplarSetType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ULocaleDataExemplarSetType {
    type Abi = Self;
}
impl ::core::fmt::Debug for ULocaleDataExemplarSetType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ULocaleDataExemplarSetType").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct ULocaleDisplayNames(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_ARG_NAME_NOT_NUMBER: i32 = -1i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_ARG_NAME_NOT_VALID: i32 = -2i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UMeasureFormatWidth(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMEASFMT_WIDTH_WIDE: UMeasureFormatWidth = UMeasureFormatWidth(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMEASFMT_WIDTH_SHORT: UMeasureFormatWidth = UMeasureFormatWidth(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMEASFMT_WIDTH_NARROW: UMeasureFormatWidth = UMeasureFormatWidth(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMEASFMT_WIDTH_NUMERIC: UMeasureFormatWidth = UMeasureFormatWidth(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMEASFMT_WIDTH_COUNT: UMeasureFormatWidth = UMeasureFormatWidth(4i32);
impl ::core::marker::Copy for UMeasureFormatWidth {}
impl ::core::clone::Clone for UMeasureFormatWidth {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UMeasureFormatWidth {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UMeasureFormatWidth {
    type Abi = Self;
}
impl ::core::fmt::Debug for UMeasureFormatWidth {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UMeasureFormatWidth").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UMeasurementSystem(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMS_SI: UMeasurementSystem = UMeasurementSystem(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMS_US: UMeasurementSystem = UMeasurementSystem(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMS_UK: UMeasurementSystem = UMeasurementSystem(2i32);
impl ::core::marker::Copy for UMeasurementSystem {}
impl ::core::clone::Clone for UMeasurementSystem {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UMeasurementSystem {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UMeasurementSystem {
    type Abi = Self;
}
impl ::core::fmt::Debug for UMeasurementSystem {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UMeasurementSystem").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UMemAllocFn = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, size: usize) -> *mut ::core::ffi::c_void>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UMemFreeFn = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, mem: *mut ::core::ffi::c_void)>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UMemReallocFn = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, mem: *mut ::core::ffi::c_void, size: usize) -> *mut ::core::ffi::c_void>;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UMessagePatternApostropheMode(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_APOS_DOUBLE_OPTIONAL: UMessagePatternApostropheMode = UMessagePatternApostropheMode(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_APOS_DOUBLE_REQUIRED: UMessagePatternApostropheMode = UMessagePatternApostropheMode(1i32);
impl ::core::marker::Copy for UMessagePatternApostropheMode {}
impl ::core::clone::Clone for UMessagePatternApostropheMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UMessagePatternApostropheMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UMessagePatternApostropheMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for UMessagePatternApostropheMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UMessagePatternApostropheMode").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UMessagePatternArgType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_ARG_TYPE_NONE: UMessagePatternArgType = UMessagePatternArgType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_ARG_TYPE_SIMPLE: UMessagePatternArgType = UMessagePatternArgType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_ARG_TYPE_CHOICE: UMessagePatternArgType = UMessagePatternArgType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_ARG_TYPE_PLURAL: UMessagePatternArgType = UMessagePatternArgType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_ARG_TYPE_SELECT: UMessagePatternArgType = UMessagePatternArgType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_ARG_TYPE_SELECTORDINAL: UMessagePatternArgType = UMessagePatternArgType(5i32);
impl ::core::marker::Copy for UMessagePatternArgType {}
impl ::core::clone::Clone for UMessagePatternArgType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UMessagePatternArgType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UMessagePatternArgType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UMessagePatternArgType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UMessagePatternArgType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UMessagePatternPartType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_MSG_START: UMessagePatternPartType = UMessagePatternPartType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_MSG_LIMIT: UMessagePatternPartType = UMessagePatternPartType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_SKIP_SYNTAX: UMessagePatternPartType = UMessagePatternPartType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_INSERT_CHAR: UMessagePatternPartType = UMessagePatternPartType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_REPLACE_NUMBER: UMessagePatternPartType = UMessagePatternPartType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_ARG_START: UMessagePatternPartType = UMessagePatternPartType(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_ARG_LIMIT: UMessagePatternPartType = UMessagePatternPartType(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_ARG_NUMBER: UMessagePatternPartType = UMessagePatternPartType(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_ARG_NAME: UMessagePatternPartType = UMessagePatternPartType(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_ARG_TYPE: UMessagePatternPartType = UMessagePatternPartType(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_ARG_STYLE: UMessagePatternPartType = UMessagePatternPartType(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_ARG_SELECTOR: UMessagePatternPartType = UMessagePatternPartType(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_ARG_INT: UMessagePatternPartType = UMessagePatternPartType(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UMSGPAT_PART_TYPE_ARG_DOUBLE: UMessagePatternPartType = UMessagePatternPartType(13i32);
impl ::core::marker::Copy for UMessagePatternPartType {}
impl ::core::clone::Clone for UMessagePatternPartType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UMessagePatternPartType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UMessagePatternPartType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UMessagePatternPartType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UMessagePatternPartType").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UMutableCPTrie(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UNESCAPE_CHAR_AT = ::core::option::Option<unsafe extern "system" fn(offset: i32, context: *mut ::core::ffi::c_void) -> u16>;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UNICODERANGE {
    pub wcFrom: u16,
    pub wcTo: u16,
}
impl ::core::marker::Copy for UNICODERANGE {}
impl ::core::clone::Clone for UNICODERANGE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UNICODERANGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UNICODERANGE").field("wcFrom", &self.wcFrom).field("wcTo", &self.wcTo).finish()
    }
}
unsafe impl ::windows::core::Abi for UNICODERANGE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UNICODERANGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UNICODERANGE>()) == 0 }
    }
}
impl ::core::cmp::Eq for UNICODERANGE {}
impl ::core::default::Default for UNICODERANGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNISCRIBE_OPENTYPE: u32 = 256u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_INPUT_IS_FCD: u32 = 131072u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNormalization2Mode(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM2_COMPOSE: UNormalization2Mode = UNormalization2Mode(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM2_DECOMPOSE: UNormalization2Mode = UNormalization2Mode(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM2_FCD: UNormalization2Mode = UNormalization2Mode(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM2_COMPOSE_CONTIGUOUS: UNormalization2Mode = UNormalization2Mode(3i32);
impl ::core::marker::Copy for UNormalization2Mode {}
impl ::core::clone::Clone for UNormalization2Mode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNormalization2Mode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNormalization2Mode {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNormalization2Mode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNormalization2Mode").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNormalizationCheckResult(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_NO: UNormalizationCheckResult = UNormalizationCheckResult(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_YES: UNormalizationCheckResult = UNormalizationCheckResult(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_MAYBE: UNormalizationCheckResult = UNormalizationCheckResult(2i32);
impl ::core::marker::Copy for UNormalizationCheckResult {}
impl ::core::clone::Clone for UNormalizationCheckResult {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNormalizationCheckResult {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNormalizationCheckResult {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNormalizationCheckResult {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNormalizationCheckResult").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNormalizationMode(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_NONE: UNormalizationMode = UNormalizationMode(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_NFD: UNormalizationMode = UNormalizationMode(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_NFKD: UNormalizationMode = UNormalizationMode(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_NFC: UNormalizationMode = UNormalizationMode(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_DEFAULT: UNormalizationMode = UNormalizationMode(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_NFKC: UNormalizationMode = UNormalizationMode(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_FCD: UNormalizationMode = UNormalizationMode(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNORM_MODE_COUNT: UNormalizationMode = UNormalizationMode(7i32);
impl ::core::marker::Copy for UNormalizationMode {}
impl ::core::clone::Clone for UNormalizationMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNormalizationMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNormalizationMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNormalizationMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNormalizationMode").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UNormalizer2(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberCompactStyle(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SHORT: UNumberCompactStyle = UNumberCompactStyle(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_LONG: UNumberCompactStyle = UNumberCompactStyle(1i32);
impl ::core::marker::Copy for UNumberCompactStyle {}
impl ::core::clone::Clone for UNumberCompactStyle {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberCompactStyle {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberCompactStyle {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberCompactStyle {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberCompactStyle").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberDecimalSeparatorDisplay(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DECIMAL_SEPARATOR_AUTO: UNumberDecimalSeparatorDisplay = UNumberDecimalSeparatorDisplay(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DECIMAL_SEPARATOR_ALWAYS: UNumberDecimalSeparatorDisplay = UNumberDecimalSeparatorDisplay(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DECIMAL_SEPARATOR_COUNT: UNumberDecimalSeparatorDisplay = UNumberDecimalSeparatorDisplay(2i32);
impl ::core::marker::Copy for UNumberDecimalSeparatorDisplay {}
impl ::core::clone::Clone for UNumberDecimalSeparatorDisplay {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberDecimalSeparatorDisplay {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberDecimalSeparatorDisplay {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberDecimalSeparatorDisplay {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberDecimalSeparatorDisplay").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberFormatAttribute(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PARSE_INT_ONLY: UNumberFormatAttribute = UNumberFormatAttribute(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_GROUPING_USED: UNumberFormatAttribute = UNumberFormatAttribute(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DECIMAL_ALWAYS_SHOWN: UNumberFormatAttribute = UNumberFormatAttribute(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MAX_INTEGER_DIGITS: UNumberFormatAttribute = UNumberFormatAttribute(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MIN_INTEGER_DIGITS: UNumberFormatAttribute = UNumberFormatAttribute(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_INTEGER_DIGITS: UNumberFormatAttribute = UNumberFormatAttribute(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MAX_FRACTION_DIGITS: UNumberFormatAttribute = UNumberFormatAttribute(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MIN_FRACTION_DIGITS: UNumberFormatAttribute = UNumberFormatAttribute(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_FRACTION_DIGITS: UNumberFormatAttribute = UNumberFormatAttribute(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MULTIPLIER: UNumberFormatAttribute = UNumberFormatAttribute(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_GROUPING_SIZE: UNumberFormatAttribute = UNumberFormatAttribute(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ROUNDING_MODE: UNumberFormatAttribute = UNumberFormatAttribute(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ROUNDING_INCREMENT: UNumberFormatAttribute = UNumberFormatAttribute(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_FORMAT_WIDTH: UNumberFormatAttribute = UNumberFormatAttribute(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PADDING_POSITION: UNumberFormatAttribute = UNumberFormatAttribute(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SECONDARY_GROUPING_SIZE: UNumberFormatAttribute = UNumberFormatAttribute(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGNIFICANT_DIGITS_USED: UNumberFormatAttribute = UNumberFormatAttribute(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MIN_SIGNIFICANT_DIGITS: UNumberFormatAttribute = UNumberFormatAttribute(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MAX_SIGNIFICANT_DIGITS: UNumberFormatAttribute = UNumberFormatAttribute(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_LENIENT_PARSE: UNumberFormatAttribute = UNumberFormatAttribute(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PARSE_ALL_INPUT: UNumberFormatAttribute = UNumberFormatAttribute(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SCALE: UNumberFormatAttribute = UNumberFormatAttribute(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MINIMUM_GROUPING_DIGITS: UNumberFormatAttribute = UNumberFormatAttribute(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_USAGE: UNumberFormatAttribute = UNumberFormatAttribute(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS: UNumberFormatAttribute = UNumberFormatAttribute(4096i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PARSE_NO_EXPONENT: UNumberFormatAttribute = UNumberFormatAttribute(4097i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PARSE_DECIMAL_MARK_REQUIRED: UNumberFormatAttribute = UNumberFormatAttribute(4098i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PARSE_CASE_SENSITIVE: UNumberFormatAttribute = UNumberFormatAttribute(4099i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGN_ALWAYS_SHOWN: UNumberFormatAttribute = UNumberFormatAttribute(4100i32);
impl ::core::marker::Copy for UNumberFormatAttribute {}
impl ::core::clone::Clone for UNumberFormatAttribute {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberFormatAttribute {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberFormatAttribute {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberFormatAttribute {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberFormatAttribute").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberFormatAttributeValue(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_FORMAT_ATTRIBUTE_VALUE_HIDDEN: UNumberFormatAttributeValue = UNumberFormatAttributeValue(0i32);
impl ::core::marker::Copy for UNumberFormatAttributeValue {}
impl ::core::clone::Clone for UNumberFormatAttributeValue {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberFormatAttributeValue {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberFormatAttributeValue {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberFormatAttributeValue {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberFormatAttributeValue").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberFormatFields(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_INTEGER_FIELD: UNumberFormatFields = UNumberFormatFields(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_FRACTION_FIELD: UNumberFormatFields = UNumberFormatFields(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DECIMAL_SEPARATOR_FIELD: UNumberFormatFields = UNumberFormatFields(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_EXPONENT_SYMBOL_FIELD: UNumberFormatFields = UNumberFormatFields(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_EXPONENT_SIGN_FIELD: UNumberFormatFields = UNumberFormatFields(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_EXPONENT_FIELD: UNumberFormatFields = UNumberFormatFields(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_GROUPING_SEPARATOR_FIELD: UNumberFormatFields = UNumberFormatFields(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_FIELD: UNumberFormatFields = UNumberFormatFields(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PERCENT_FIELD: UNumberFormatFields = UNumberFormatFields(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PERMILL_FIELD: UNumberFormatFields = UNumberFormatFields(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGN_FIELD: UNumberFormatFields = UNumberFormatFields(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MEASURE_UNIT_FIELD: UNumberFormatFields = UNumberFormatFields(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_COMPACT_FIELD: UNumberFormatFields = UNumberFormatFields(12i32);
impl ::core::marker::Copy for UNumberFormatFields {}
impl ::core::clone::Clone for UNumberFormatFields {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberFormatFields {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberFormatFields {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberFormatFields {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberFormatFields").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberFormatPadPosition(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PAD_BEFORE_PREFIX: UNumberFormatPadPosition = UNumberFormatPadPosition(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PAD_AFTER_PREFIX: UNumberFormatPadPosition = UNumberFormatPadPosition(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PAD_BEFORE_SUFFIX: UNumberFormatPadPosition = UNumberFormatPadPosition(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PAD_AFTER_SUFFIX: UNumberFormatPadPosition = UNumberFormatPadPosition(3i32);
impl ::core::marker::Copy for UNumberFormatPadPosition {}
impl ::core::clone::Clone for UNumberFormatPadPosition {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberFormatPadPosition {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberFormatPadPosition {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberFormatPadPosition {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberFormatPadPosition").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberFormatRoundingMode(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ROUND_CEILING: UNumberFormatRoundingMode = UNumberFormatRoundingMode(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ROUND_FLOOR: UNumberFormatRoundingMode = UNumberFormatRoundingMode(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ROUND_DOWN: UNumberFormatRoundingMode = UNumberFormatRoundingMode(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ROUND_UP: UNumberFormatRoundingMode = UNumberFormatRoundingMode(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ROUND_HALFEVEN: UNumberFormatRoundingMode = UNumberFormatRoundingMode(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ROUND_HALFDOWN: UNumberFormatRoundingMode = UNumberFormatRoundingMode(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ROUND_HALFUP: UNumberFormatRoundingMode = UNumberFormatRoundingMode(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ROUND_UNNECESSARY: UNumberFormatRoundingMode = UNumberFormatRoundingMode(7i32);
impl ::core::marker::Copy for UNumberFormatRoundingMode {}
impl ::core::clone::Clone for UNumberFormatRoundingMode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberFormatRoundingMode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberFormatRoundingMode {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberFormatRoundingMode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberFormatRoundingMode").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberFormatStyle(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PATTERN_DECIMAL: UNumberFormatStyle = UNumberFormatStyle(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DECIMAL: UNumberFormatStyle = UNumberFormatStyle(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY: UNumberFormatStyle = UNumberFormatStyle(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PERCENT: UNumberFormatStyle = UNumberFormatStyle(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SCIENTIFIC: UNumberFormatStyle = UNumberFormatStyle(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SPELLOUT: UNumberFormatStyle = UNumberFormatStyle(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ORDINAL: UNumberFormatStyle = UNumberFormatStyle(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DURATION: UNumberFormatStyle = UNumberFormatStyle(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_NUMBERING_SYSTEM: UNumberFormatStyle = UNumberFormatStyle(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PATTERN_RULEBASED: UNumberFormatStyle = UNumberFormatStyle(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_ISO: UNumberFormatStyle = UNumberFormatStyle(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_PLURAL: UNumberFormatStyle = UNumberFormatStyle(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_ACCOUNTING: UNumberFormatStyle = UNumberFormatStyle(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CASH_CURRENCY: UNumberFormatStyle = UNumberFormatStyle(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DECIMAL_COMPACT_SHORT: UNumberFormatStyle = UNumberFormatStyle(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DECIMAL_COMPACT_LONG: UNumberFormatStyle = UNumberFormatStyle(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_STANDARD: UNumberFormatStyle = UNumberFormatStyle(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DEFAULT: UNumberFormatStyle = UNumberFormatStyle(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_IGNORE: UNumberFormatStyle = UNumberFormatStyle(0i32);
impl ::core::marker::Copy for UNumberFormatStyle {}
impl ::core::clone::Clone for UNumberFormatStyle {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberFormatStyle {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberFormatStyle {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberFormatStyle {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberFormatStyle").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberFormatSymbol(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DECIMAL_SEPARATOR_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_GROUPING_SEPARATOR_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PATTERN_SEPARATOR_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PERCENT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ZERO_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MINUS_SIGN_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PLUS_SIGN_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_INTL_CURRENCY_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MONETARY_SEPARATOR_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_EXPONENTIAL_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PERMILL_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PAD_ESCAPE_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_INFINITY_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_NAN_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGNIFICANT_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_MONETARY_GROUPING_SEPARATOR_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_ONE_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_TWO_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_THREE_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_FOUR_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_FIVE_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIX_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SEVEN_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_EIGHT_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_NINE_DIGIT_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_EXPONENT_MULTIPLICATION_SYMBOL: UNumberFormatSymbol = UNumberFormatSymbol(27i32);
impl ::core::marker::Copy for UNumberFormatSymbol {}
impl ::core::clone::Clone for UNumberFormatSymbol {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberFormatSymbol {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberFormatSymbol {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberFormatSymbol {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberFormatSymbol").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberFormatTextAttribute(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_POSITIVE_PREFIX: UNumberFormatTextAttribute = UNumberFormatTextAttribute(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_POSITIVE_SUFFIX: UNumberFormatTextAttribute = UNumberFormatTextAttribute(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_NEGATIVE_PREFIX: UNumberFormatTextAttribute = UNumberFormatTextAttribute(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_NEGATIVE_SUFFIX: UNumberFormatTextAttribute = UNumberFormatTextAttribute(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PADDING_CHARACTER: UNumberFormatTextAttribute = UNumberFormatTextAttribute(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_CURRENCY_CODE: UNumberFormatTextAttribute = UNumberFormatTextAttribute(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_DEFAULT_RULESET: UNumberFormatTextAttribute = UNumberFormatTextAttribute(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_PUBLIC_RULESETS: UNumberFormatTextAttribute = UNumberFormatTextAttribute(7i32);
impl ::core::marker::Copy for UNumberFormatTextAttribute {}
impl ::core::clone::Clone for UNumberFormatTextAttribute {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberFormatTextAttribute {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberFormatTextAttribute {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberFormatTextAttribute {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberFormatTextAttribute").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UNumberFormatter(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberGroupingStrategy(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_GROUPING_OFF: UNumberGroupingStrategy = UNumberGroupingStrategy(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_GROUPING_MIN2: UNumberGroupingStrategy = UNumberGroupingStrategy(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_GROUPING_AUTO: UNumberGroupingStrategy = UNumberGroupingStrategy(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_GROUPING_ON_ALIGNED: UNumberGroupingStrategy = UNumberGroupingStrategy(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_GROUPING_THOUSANDS: UNumberGroupingStrategy = UNumberGroupingStrategy(4i32);
impl ::core::marker::Copy for UNumberGroupingStrategy {}
impl ::core::clone::Clone for UNumberGroupingStrategy {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberGroupingStrategy {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberGroupingStrategy {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberGroupingStrategy {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberGroupingStrategy").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberRangeCollapse(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_RANGE_COLLAPSE_AUTO: UNumberRangeCollapse = UNumberRangeCollapse(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_RANGE_COLLAPSE_NONE: UNumberRangeCollapse = UNumberRangeCollapse(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_RANGE_COLLAPSE_UNIT: UNumberRangeCollapse = UNumberRangeCollapse(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_RANGE_COLLAPSE_ALL: UNumberRangeCollapse = UNumberRangeCollapse(3i32);
impl ::core::marker::Copy for UNumberRangeCollapse {}
impl ::core::clone::Clone for UNumberRangeCollapse {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberRangeCollapse {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberRangeCollapse {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberRangeCollapse {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberRangeCollapse").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberRangeIdentityFallback(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_IDENTITY_FALLBACK_SINGLE_VALUE: UNumberRangeIdentityFallback = UNumberRangeIdentityFallback(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE: UNumberRangeIdentityFallback = UNumberRangeIdentityFallback(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_IDENTITY_FALLBACK_APPROXIMATELY: UNumberRangeIdentityFallback = UNumberRangeIdentityFallback(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_IDENTITY_FALLBACK_RANGE: UNumberRangeIdentityFallback = UNumberRangeIdentityFallback(3i32);
impl ::core::marker::Copy for UNumberRangeIdentityFallback {}
impl ::core::clone::Clone for UNumberRangeIdentityFallback {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberRangeIdentityFallback {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberRangeIdentityFallback {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberRangeIdentityFallback {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberRangeIdentityFallback").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberRangeIdentityResult(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING: UNumberRangeIdentityResult = UNumberRangeIdentityResult(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING: UNumberRangeIdentityResult = UNumberRangeIdentityResult(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_IDENTITY_RESULT_NOT_EQUAL: UNumberRangeIdentityResult = UNumberRangeIdentityResult(2i32);
impl ::core::marker::Copy for UNumberRangeIdentityResult {}
impl ::core::clone::Clone for UNumberRangeIdentityResult {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberRangeIdentityResult {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberRangeIdentityResult {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberRangeIdentityResult {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberRangeIdentityResult").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberSignDisplay(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGN_AUTO: UNumberSignDisplay = UNumberSignDisplay(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGN_ALWAYS: UNumberSignDisplay = UNumberSignDisplay(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGN_NEVER: UNumberSignDisplay = UNumberSignDisplay(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGN_ACCOUNTING: UNumberSignDisplay = UNumberSignDisplay(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGN_ACCOUNTING_ALWAYS: UNumberSignDisplay = UNumberSignDisplay(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGN_EXCEPT_ZERO: UNumberSignDisplay = UNumberSignDisplay(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO: UNumberSignDisplay = UNumberSignDisplay(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_SIGN_COUNT: UNumberSignDisplay = UNumberSignDisplay(7i32);
impl ::core::marker::Copy for UNumberSignDisplay {}
impl ::core::clone::Clone for UNumberSignDisplay {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberSignDisplay {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberSignDisplay {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberSignDisplay {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberSignDisplay").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumberUnitWidth(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_UNIT_WIDTH_NARROW: UNumberUnitWidth = UNumberUnitWidth(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_UNIT_WIDTH_SHORT: UNumberUnitWidth = UNumberUnitWidth(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_UNIT_WIDTH_FULL_NAME: UNumberUnitWidth = UNumberUnitWidth(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_UNIT_WIDTH_ISO_CODE: UNumberUnitWidth = UNumberUnitWidth(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_UNIT_WIDTH_HIDDEN: UNumberUnitWidth = UNumberUnitWidth(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UNUM_UNIT_WIDTH_COUNT: UNumberUnitWidth = UNumberUnitWidth(5i32);
impl ::core::marker::Copy for UNumberUnitWidth {}
impl ::core::clone::Clone for UNumberUnitWidth {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumberUnitWidth {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumberUnitWidth {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumberUnitWidth {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumberUnitWidth").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UNumberingSystem(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UNumericType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_NT_NONE: UNumericType = UNumericType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_NT_DECIMAL: UNumericType = UNumericType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_NT_DIGIT: UNumericType = UNumericType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_NT_NUMERIC: UNumericType = UNumericType(3i32);
impl ::core::marker::Copy for UNumericType {}
impl ::core::clone::Clone for UNumericType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UNumericType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UNumericType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UNumericType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UNumericType").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UParseError {
    pub line: i32,
    pub offset: i32,
    pub preContext: [u16; 16],
    pub postContext: [u16; 16],
}
impl ::core::marker::Copy for UParseError {}
impl ::core::clone::Clone for UParseError {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UParseError {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UParseError").field("line", &self.line).field("offset", &self.offset).field("preContext", &self.preContext).field("postContext", &self.postContext).finish()
    }
}
unsafe impl ::windows::core::Abi for UParseError {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UParseError {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UParseError>()) == 0 }
    }
}
impl ::core::cmp::Eq for UParseError {}
impl ::core::default::Default for UParseError {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
pub struct UPluralRules(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UPluralType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UPLURAL_TYPE_CARDINAL: UPluralType = UPluralType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UPLURAL_TYPE_ORDINAL: UPluralType = UPluralType(1i32);
impl ::core::marker::Copy for UPluralType {}
impl ::core::clone::Clone for UPluralType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UPluralType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UPluralType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UPluralType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UPluralType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UProperty(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_ALPHABETIC: UProperty = UProperty(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_BINARY_START: UProperty = UProperty(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_ASCII_HEX_DIGIT: UProperty = UProperty(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_BIDI_CONTROL: UProperty = UProperty(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_BIDI_MIRRORED: UProperty = UProperty(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_DASH: UProperty = UProperty(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_DEFAULT_IGNORABLE_CODE_POINT: UProperty = UProperty(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_DEPRECATED: UProperty = UProperty(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_DIACRITIC: UProperty = UProperty(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_EXTENDER: UProperty = UProperty(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_FULL_COMPOSITION_EXCLUSION: UProperty = UProperty(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_GRAPHEME_BASE: UProperty = UProperty(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_GRAPHEME_EXTEND: UProperty = UProperty(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_GRAPHEME_LINK: UProperty = UProperty(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_HEX_DIGIT: UProperty = UProperty(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_HYPHEN: UProperty = UProperty(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_ID_CONTINUE: UProperty = UProperty(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_ID_START: UProperty = UProperty(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_IDEOGRAPHIC: UProperty = UProperty(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_IDS_BINARY_OPERATOR: UProperty = UProperty(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_IDS_TRINARY_OPERATOR: UProperty = UProperty(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_JOIN_CONTROL: UProperty = UProperty(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_LOGICAL_ORDER_EXCEPTION: UProperty = UProperty(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_LOWERCASE: UProperty = UProperty(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_MATH: UProperty = UProperty(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NONCHARACTER_CODE_POINT: UProperty = UProperty(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_QUOTATION_MARK: UProperty = UProperty(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_RADICAL: UProperty = UProperty(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_SOFT_DOTTED: UProperty = UProperty(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_TERMINAL_PUNCTUATION: UProperty = UProperty(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_UNIFIED_IDEOGRAPH: UProperty = UProperty(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_UPPERCASE: UProperty = UProperty(30i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_WHITE_SPACE: UProperty = UProperty(31i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_XID_CONTINUE: UProperty = UProperty(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_XID_START: UProperty = UProperty(33i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CASE_SENSITIVE: UProperty = UProperty(34i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_S_TERM: UProperty = UProperty(35i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_VARIATION_SELECTOR: UProperty = UProperty(36i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NFD_INERT: UProperty = UProperty(37i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NFKD_INERT: UProperty = UProperty(38i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NFC_INERT: UProperty = UProperty(39i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NFKC_INERT: UProperty = UProperty(40i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_SEGMENT_STARTER: UProperty = UProperty(41i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_PATTERN_SYNTAX: UProperty = UProperty(42i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_PATTERN_WHITE_SPACE: UProperty = UProperty(43i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_POSIX_ALNUM: UProperty = UProperty(44i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_POSIX_BLANK: UProperty = UProperty(45i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_POSIX_GRAPH: UProperty = UProperty(46i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_POSIX_PRINT: UProperty = UProperty(47i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_POSIX_XDIGIT: UProperty = UProperty(48i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CASED: UProperty = UProperty(49i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CASE_IGNORABLE: UProperty = UProperty(50i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CHANGES_WHEN_LOWERCASED: UProperty = UProperty(51i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CHANGES_WHEN_UPPERCASED: UProperty = UProperty(52i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CHANGES_WHEN_TITLECASED: UProperty = UProperty(53i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CHANGES_WHEN_CASEFOLDED: UProperty = UProperty(54i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CHANGES_WHEN_CASEMAPPED: UProperty = UProperty(55i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED: UProperty = UProperty(56i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_EMOJI: UProperty = UProperty(57i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_EMOJI_PRESENTATION: UProperty = UProperty(58i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_EMOJI_MODIFIER: UProperty = UProperty(59i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_EMOJI_MODIFIER_BASE: UProperty = UProperty(60i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_EMOJI_COMPONENT: UProperty = UProperty(61i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_REGIONAL_INDICATOR: UProperty = UProperty(62i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_PREPENDED_CONCATENATION_MARK: UProperty = UProperty(63i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_EXTENDED_PICTOGRAPHIC: UProperty = UProperty(64i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_BIDI_CLASS: UProperty = UProperty(4096i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_INT_START: UProperty = UProperty(4096i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_BLOCK: UProperty = UProperty(4097i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CANONICAL_COMBINING_CLASS: UProperty = UProperty(4098i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_DECOMPOSITION_TYPE: UProperty = UProperty(4099i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_EAST_ASIAN_WIDTH: UProperty = UProperty(4100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_GENERAL_CATEGORY: UProperty = UProperty(4101i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_JOINING_GROUP: UProperty = UProperty(4102i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_JOINING_TYPE: UProperty = UProperty(4103i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_LINE_BREAK: UProperty = UProperty(4104i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NUMERIC_TYPE: UProperty = UProperty(4105i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_SCRIPT: UProperty = UProperty(4106i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_HANGUL_SYLLABLE_TYPE: UProperty = UProperty(4107i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NFD_QUICK_CHECK: UProperty = UProperty(4108i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NFKD_QUICK_CHECK: UProperty = UProperty(4109i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NFC_QUICK_CHECK: UProperty = UProperty(4110i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NFKC_QUICK_CHECK: UProperty = UProperty(4111i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_LEAD_CANONICAL_COMBINING_CLASS: UProperty = UProperty(4112i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_TRAIL_CANONICAL_COMBINING_CLASS: UProperty = UProperty(4113i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_GRAPHEME_CLUSTER_BREAK: UProperty = UProperty(4114i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_SENTENCE_BREAK: UProperty = UProperty(4115i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_WORD_BREAK: UProperty = UProperty(4116i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_BIDI_PAIRED_BRACKET_TYPE: UProperty = UProperty(4117i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_INDIC_POSITIONAL_CATEGORY: UProperty = UProperty(4118i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_INDIC_SYLLABIC_CATEGORY: UProperty = UProperty(4119i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_VERTICAL_ORIENTATION: UProperty = UProperty(4120i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_GENERAL_CATEGORY_MASK: UProperty = UProperty(8192i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_MASK_START: UProperty = UProperty(8192i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NUMERIC_VALUE: UProperty = UProperty(12288i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_DOUBLE_START: UProperty = UProperty(12288i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_AGE: UProperty = UProperty(16384i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_STRING_START: UProperty = UProperty(16384i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_BIDI_MIRRORING_GLYPH: UProperty = UProperty(16385i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_CASE_FOLDING: UProperty = UProperty(16386i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_LOWERCASE_MAPPING: UProperty = UProperty(16388i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_NAME: UProperty = UProperty(16389i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_SIMPLE_CASE_FOLDING: UProperty = UProperty(16390i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_SIMPLE_LOWERCASE_MAPPING: UProperty = UProperty(16391i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_SIMPLE_TITLECASE_MAPPING: UProperty = UProperty(16392i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_SIMPLE_UPPERCASE_MAPPING: UProperty = UProperty(16393i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_TITLECASE_MAPPING: UProperty = UProperty(16394i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_UPPERCASE_MAPPING: UProperty = UProperty(16396i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_BIDI_PAIRED_BRACKET: UProperty = UProperty(16397i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_SCRIPT_EXTENSIONS: UProperty = UProperty(28672i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_OTHER_PROPERTY_START: UProperty = UProperty(28672i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCHAR_INVALID_CODE: UProperty = UProperty(-1i32);
impl ::core::marker::Copy for UProperty {}
impl ::core::clone::Clone for UProperty {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UProperty {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UProperty {
    type Abi = Self;
}
impl ::core::fmt::Debug for UProperty {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UProperty").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UPropertyNameChoice(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHORT_PROPERTY_NAME: UPropertyNameChoice = UPropertyNameChoice(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LONG_PROPERTY_NAME: UPropertyNameChoice = UPropertyNameChoice(1i32);
impl ::core::marker::Copy for UPropertyNameChoice {}
impl ::core::clone::Clone for UPropertyNameChoice {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UPropertyNameChoice {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UPropertyNameChoice {
    type Abi = Self;
}
impl ::core::fmt::Debug for UPropertyNameChoice {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UPropertyNameChoice").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type URegexFindProgressCallback = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, matchindex: i64) -> i8>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type URegexMatchCallback = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, steps: i32) -> i8>;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct URegexpFlag(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UREGEX_CASE_INSENSITIVE: URegexpFlag = URegexpFlag(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UREGEX_COMMENTS: URegexpFlag = URegexpFlag(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UREGEX_DOTALL: URegexpFlag = URegexpFlag(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UREGEX_LITERAL: URegexpFlag = URegexpFlag(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UREGEX_MULTILINE: URegexpFlag = URegexpFlag(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UREGEX_UNIX_LINES: URegexpFlag = URegexpFlag(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UREGEX_UWORD: URegexpFlag = URegexpFlag(256i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UREGEX_ERROR_ON_UNKNOWN_ESCAPES: URegexpFlag = URegexpFlag(512i32);
impl ::core::marker::Copy for URegexpFlag {}
impl ::core::clone::Clone for URegexpFlag {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for URegexpFlag {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for URegexpFlag {
    type Abi = Self;
}
impl ::core::fmt::Debug for URegexpFlag {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("URegexpFlag").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct URegion(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct URegionType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URGN_UNKNOWN: URegionType = URegionType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URGN_TERRITORY: URegionType = URegionType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URGN_WORLD: URegionType = URegionType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URGN_CONTINENT: URegionType = URegionType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URGN_SUBCONTINENT: URegionType = URegionType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URGN_GROUPING: URegionType = URegionType(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URGN_DEPRECATED: URegionType = URegionType(6i32);
impl ::core::marker::Copy for URegionType {}
impl ::core::clone::Clone for URegionType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for URegionType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for URegionType {
    type Abi = Self;
}
impl ::core::fmt::Debug for URegionType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("URegionType").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct URegularExpression(pub u8);
#[repr(C)]
pub struct URelativeDateTimeFormatter(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct URelativeDateTimeFormatterField(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_LITERAL_FIELD: URelativeDateTimeFormatterField = URelativeDateTimeFormatterField(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_NUMERIC_FIELD: URelativeDateTimeFormatterField = URelativeDateTimeFormatterField(1i32);
impl ::core::marker::Copy for URelativeDateTimeFormatterField {}
impl ::core::clone::Clone for URelativeDateTimeFormatterField {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for URelativeDateTimeFormatterField {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for URelativeDateTimeFormatterField {
    type Abi = Self;
}
impl ::core::fmt::Debug for URelativeDateTimeFormatterField {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("URelativeDateTimeFormatterField").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct URelativeDateTimeUnit(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_YEAR: URelativeDateTimeUnit = URelativeDateTimeUnit(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_QUARTER: URelativeDateTimeUnit = URelativeDateTimeUnit(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_MONTH: URelativeDateTimeUnit = URelativeDateTimeUnit(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_WEEK: URelativeDateTimeUnit = URelativeDateTimeUnit(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_DAY: URelativeDateTimeUnit = URelativeDateTimeUnit(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_HOUR: URelativeDateTimeUnit = URelativeDateTimeUnit(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_MINUTE: URelativeDateTimeUnit = URelativeDateTimeUnit(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_SECOND: URelativeDateTimeUnit = URelativeDateTimeUnit(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_SUNDAY: URelativeDateTimeUnit = URelativeDateTimeUnit(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_MONDAY: URelativeDateTimeUnit = URelativeDateTimeUnit(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_TUESDAY: URelativeDateTimeUnit = URelativeDateTimeUnit(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_WEDNESDAY: URelativeDateTimeUnit = URelativeDateTimeUnit(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_THURSDAY: URelativeDateTimeUnit = URelativeDateTimeUnit(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_FRIDAY: URelativeDateTimeUnit = URelativeDateTimeUnit(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UDAT_REL_UNIT_SATURDAY: URelativeDateTimeUnit = URelativeDateTimeUnit(14i32);
impl ::core::marker::Copy for URelativeDateTimeUnit {}
impl ::core::clone::Clone for URelativeDateTimeUnit {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for URelativeDateTimeUnit {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for URelativeDateTimeUnit {
    type Abi = Self;
}
impl ::core::fmt::Debug for URelativeDateTimeUnit {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("URelativeDateTimeUnit").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UReplaceableCallbacks {
    pub length: isize,
    pub charAt: isize,
    pub char32At: isize,
    pub replace: isize,
    pub extract: isize,
    pub copy: isize,
}
impl ::core::marker::Copy for UReplaceableCallbacks {}
impl ::core::clone::Clone for UReplaceableCallbacks {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UReplaceableCallbacks {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UReplaceableCallbacks").field("length", &self.length).field("charAt", &self.charAt).field("char32At", &self.char32At).field("replace", &self.replace).field("extract", &self.extract).field("copy", &self.copy).finish()
    }
}
unsafe impl ::windows::core::Abi for UReplaceableCallbacks {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UReplaceableCallbacks {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UReplaceableCallbacks>()) == 0 }
    }
}
impl ::core::cmp::Eq for UReplaceableCallbacks {}
impl ::core::default::Default for UReplaceableCallbacks {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UResType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URES_NONE: UResType = UResType(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URES_STRING: UResType = UResType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URES_BINARY: UResType = UResType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URES_TABLE: UResType = UResType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URES_ALIAS: UResType = UResType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URES_INT: UResType = UResType(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URES_ARRAY: UResType = UResType(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const URES_INT_VECTOR: UResType = UResType(14i32);
impl ::core::marker::Copy for UResType {}
impl ::core::clone::Clone for UResType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UResType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UResType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UResType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UResType").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UResourceBundle(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct URestrictionLevel(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_ASCII: URestrictionLevel = URestrictionLevel(268435456i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_SINGLE_SCRIPT_RESTRICTIVE: URestrictionLevel = URestrictionLevel(536870912i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_HIGHLY_RESTRICTIVE: URestrictionLevel = URestrictionLevel(805306368i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_MODERATELY_RESTRICTIVE: URestrictionLevel = URestrictionLevel(1073741824i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_MINIMALLY_RESTRICTIVE: URestrictionLevel = URestrictionLevel(1342177280i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_UNRESTRICTIVE: URestrictionLevel = URestrictionLevel(1610612736i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_RESTRICTION_LEVEL_MASK: URestrictionLevel = URestrictionLevel(2130706432i32);
impl ::core::marker::Copy for URestrictionLevel {}
impl ::core::clone::Clone for URestrictionLevel {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for URestrictionLevel {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for URestrictionLevel {
    type Abi = Self;
}
impl ::core::fmt::Debug for URestrictionLevel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("URestrictionLevel").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USEARCH_DONE: i32 = -1i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USET_ADD_CASE_MAPPINGS: i32 = 4i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USET_CASE_INSENSITIVE: i32 = 2i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USET_IGNORE_SPACE: i32 = 1i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USET_SERIALIZED_STATIC_ARRAY_CAPACITY: i32 = 8i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_ALLOW_UNASSIGNED: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_DEFAULT: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USP_E_SCRIPT_NOT_IN_FONT: ::windows::core::HRESULT = ::windows::core::HRESULT(-2147220992i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UScriptCode(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_INVALID_CODE: UScriptCode = UScriptCode(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_COMMON: UScriptCode = UScriptCode(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_INHERITED: UScriptCode = UScriptCode(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ARABIC: UScriptCode = UScriptCode(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ARMENIAN: UScriptCode = UScriptCode(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BENGALI: UScriptCode = UScriptCode(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BOPOMOFO: UScriptCode = UScriptCode(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CHEROKEE: UScriptCode = UScriptCode(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_COPTIC: UScriptCode = UScriptCode(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CYRILLIC: UScriptCode = UScriptCode(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_DESERET: UScriptCode = UScriptCode(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_DEVANAGARI: UScriptCode = UScriptCode(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ETHIOPIC: UScriptCode = UScriptCode(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_GEORGIAN: UScriptCode = UScriptCode(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_GOTHIC: UScriptCode = UScriptCode(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_GREEK: UScriptCode = UScriptCode(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_GUJARATI: UScriptCode = UScriptCode(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_GURMUKHI: UScriptCode = UScriptCode(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_HAN: UScriptCode = UScriptCode(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_HANGUL: UScriptCode = UScriptCode(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_HEBREW: UScriptCode = UScriptCode(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_HIRAGANA: UScriptCode = UScriptCode(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KANNADA: UScriptCode = UScriptCode(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KATAKANA: UScriptCode = UScriptCode(22i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KHMER: UScriptCode = UScriptCode(23i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LAO: UScriptCode = UScriptCode(24i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LATIN: UScriptCode = UScriptCode(25i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MALAYALAM: UScriptCode = UScriptCode(26i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MONGOLIAN: UScriptCode = UScriptCode(27i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MYANMAR: UScriptCode = UScriptCode(28i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OGHAM: UScriptCode = UScriptCode(29i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OLD_ITALIC: UScriptCode = UScriptCode(30i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ORIYA: UScriptCode = UScriptCode(31i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_RUNIC: UScriptCode = UScriptCode(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SINHALA: UScriptCode = UScriptCode(33i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SYRIAC: UScriptCode = UScriptCode(34i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TAMIL: UScriptCode = UScriptCode(35i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TELUGU: UScriptCode = UScriptCode(36i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_THAANA: UScriptCode = UScriptCode(37i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_THAI: UScriptCode = UScriptCode(38i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TIBETAN: UScriptCode = UScriptCode(39i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CANADIAN_ABORIGINAL: UScriptCode = UScriptCode(40i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_UCAS: UScriptCode = UScriptCode(40i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_YI: UScriptCode = UScriptCode(41i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TAGALOG: UScriptCode = UScriptCode(42i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_HANUNOO: UScriptCode = UScriptCode(43i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BUHID: UScriptCode = UScriptCode(44i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TAGBANWA: UScriptCode = UScriptCode(45i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BRAILLE: UScriptCode = UScriptCode(46i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CYPRIOT: UScriptCode = UScriptCode(47i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LIMBU: UScriptCode = UScriptCode(48i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LINEAR_B: UScriptCode = UScriptCode(49i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OSMANYA: UScriptCode = UScriptCode(50i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SHAVIAN: UScriptCode = UScriptCode(51i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TAI_LE: UScriptCode = UScriptCode(52i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_UGARITIC: UScriptCode = UScriptCode(53i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KATAKANA_OR_HIRAGANA: UScriptCode = UScriptCode(54i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BUGINESE: UScriptCode = UScriptCode(55i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_GLAGOLITIC: UScriptCode = UScriptCode(56i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KHAROSHTHI: UScriptCode = UScriptCode(57i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SYLOTI_NAGRI: UScriptCode = UScriptCode(58i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_NEW_TAI_LUE: UScriptCode = UScriptCode(59i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TIFINAGH: UScriptCode = UScriptCode(60i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OLD_PERSIAN: UScriptCode = UScriptCode(61i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BALINESE: UScriptCode = UScriptCode(62i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BATAK: UScriptCode = UScriptCode(63i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BLISSYMBOLS: UScriptCode = UScriptCode(64i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BRAHMI: UScriptCode = UScriptCode(65i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CHAM: UScriptCode = UScriptCode(66i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CIRTH: UScriptCode = UScriptCode(67i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC: UScriptCode = UScriptCode(68i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_DEMOTIC_EGYPTIAN: UScriptCode = UScriptCode(69i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_HIERATIC_EGYPTIAN: UScriptCode = UScriptCode(70i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_EGYPTIAN_HIEROGLYPHS: UScriptCode = UScriptCode(71i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KHUTSURI: UScriptCode = UScriptCode(72i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SIMPLIFIED_HAN: UScriptCode = UScriptCode(73i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TRADITIONAL_HAN: UScriptCode = UScriptCode(74i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_PAHAWH_HMONG: UScriptCode = UScriptCode(75i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OLD_HUNGARIAN: UScriptCode = UScriptCode(76i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_HARAPPAN_INDUS: UScriptCode = UScriptCode(77i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_JAVANESE: UScriptCode = UScriptCode(78i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KAYAH_LI: UScriptCode = UScriptCode(79i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LATIN_FRAKTUR: UScriptCode = UScriptCode(80i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LATIN_GAELIC: UScriptCode = UScriptCode(81i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LEPCHA: UScriptCode = UScriptCode(82i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LINEAR_A: UScriptCode = UScriptCode(83i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MANDAIC: UScriptCode = UScriptCode(84i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MANDAEAN: UScriptCode = UScriptCode(84i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MAYAN_HIEROGLYPHS: UScriptCode = UScriptCode(85i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MEROITIC_HIEROGLYPHS: UScriptCode = UScriptCode(86i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MEROITIC: UScriptCode = UScriptCode(86i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_NKO: UScriptCode = UScriptCode(87i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ORKHON: UScriptCode = UScriptCode(88i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OLD_PERMIC: UScriptCode = UScriptCode(89i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_PHAGS_PA: UScriptCode = UScriptCode(90i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_PHOENICIAN: UScriptCode = UScriptCode(91i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MIAO: UScriptCode = UScriptCode(92i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_PHONETIC_POLLARD: UScriptCode = UScriptCode(92i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_RONGORONGO: UScriptCode = UScriptCode(93i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SARATI: UScriptCode = UScriptCode(94i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ESTRANGELO_SYRIAC: UScriptCode = UScriptCode(95i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_WESTERN_SYRIAC: UScriptCode = UScriptCode(96i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_EASTERN_SYRIAC: UScriptCode = UScriptCode(97i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TENGWAR: UScriptCode = UScriptCode(98i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_VAI: UScriptCode = UScriptCode(99i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_VISIBLE_SPEECH: UScriptCode = UScriptCode(100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CUNEIFORM: UScriptCode = UScriptCode(101i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_UNWRITTEN_LANGUAGES: UScriptCode = UScriptCode(102i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_UNKNOWN: UScriptCode = UScriptCode(103i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CARIAN: UScriptCode = UScriptCode(104i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_JAPANESE: UScriptCode = UScriptCode(105i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LANNA: UScriptCode = UScriptCode(106i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LYCIAN: UScriptCode = UScriptCode(107i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LYDIAN: UScriptCode = UScriptCode(108i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OL_CHIKI: UScriptCode = UScriptCode(109i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_REJANG: UScriptCode = UScriptCode(110i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SAURASHTRA: UScriptCode = UScriptCode(111i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SIGN_WRITING: UScriptCode = UScriptCode(112i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SUNDANESE: UScriptCode = UScriptCode(113i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MOON: UScriptCode = UScriptCode(114i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MEITEI_MAYEK: UScriptCode = UScriptCode(115i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_IMPERIAL_ARAMAIC: UScriptCode = UScriptCode(116i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_AVESTAN: UScriptCode = UScriptCode(117i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CHAKMA: UScriptCode = UScriptCode(118i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KOREAN: UScriptCode = UScriptCode(119i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KAITHI: UScriptCode = UScriptCode(120i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MANICHAEAN: UScriptCode = UScriptCode(121i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_INSCRIPTIONAL_PAHLAVI: UScriptCode = UScriptCode(122i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_PSALTER_PAHLAVI: UScriptCode = UScriptCode(123i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BOOK_PAHLAVI: UScriptCode = UScriptCode(124i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_INSCRIPTIONAL_PARTHIAN: UScriptCode = UScriptCode(125i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SAMARITAN: UScriptCode = UScriptCode(126i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TAI_VIET: UScriptCode = UScriptCode(127i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MATHEMATICAL_NOTATION: UScriptCode = UScriptCode(128i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SYMBOLS: UScriptCode = UScriptCode(129i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BAMUM: UScriptCode = UScriptCode(130i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LISU: UScriptCode = UScriptCode(131i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_NAKHI_GEBA: UScriptCode = UScriptCode(132i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OLD_SOUTH_ARABIAN: UScriptCode = UScriptCode(133i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BASSA_VAH: UScriptCode = UScriptCode(134i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_DUPLOYAN: UScriptCode = UScriptCode(135i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ELBASAN: UScriptCode = UScriptCode(136i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_GRANTHA: UScriptCode = UScriptCode(137i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KPELLE: UScriptCode = UScriptCode(138i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_LOMA: UScriptCode = UScriptCode(139i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MENDE: UScriptCode = UScriptCode(140i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MEROITIC_CURSIVE: UScriptCode = UScriptCode(141i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OLD_NORTH_ARABIAN: UScriptCode = UScriptCode(142i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_NABATAEAN: UScriptCode = UScriptCode(143i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_PALMYRENE: UScriptCode = UScriptCode(144i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KHUDAWADI: UScriptCode = UScriptCode(145i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SINDHI: UScriptCode = UScriptCode(145i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_WARANG_CITI: UScriptCode = UScriptCode(146i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_AFAKA: UScriptCode = UScriptCode(147i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_JURCHEN: UScriptCode = UScriptCode(148i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MRO: UScriptCode = UScriptCode(149i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_NUSHU: UScriptCode = UScriptCode(150i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SHARADA: UScriptCode = UScriptCode(151i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SORA_SOMPENG: UScriptCode = UScriptCode(152i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TAKRI: UScriptCode = UScriptCode(153i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TANGUT: UScriptCode = UScriptCode(154i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_WOLEAI: UScriptCode = UScriptCode(155i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ANATOLIAN_HIEROGLYPHS: UScriptCode = UScriptCode(156i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KHOJKI: UScriptCode = UScriptCode(157i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_TIRHUTA: UScriptCode = UScriptCode(158i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CAUCASIAN_ALBANIAN: UScriptCode = UScriptCode(159i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MAHAJANI: UScriptCode = UScriptCode(160i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_AHOM: UScriptCode = UScriptCode(161i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_HATRAN: UScriptCode = UScriptCode(162i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MODI: UScriptCode = UScriptCode(163i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MULTANI: UScriptCode = UScriptCode(164i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_PAU_CIN_HAU: UScriptCode = UScriptCode(165i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SIDDHAM: UScriptCode = UScriptCode(166i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ADLAM: UScriptCode = UScriptCode(167i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_BHAIKSUKI: UScriptCode = UScriptCode(168i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MARCHEN: UScriptCode = UScriptCode(169i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_NEWA: UScriptCode = UScriptCode(170i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OSAGE: UScriptCode = UScriptCode(171i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_HAN_WITH_BOPOMOFO: UScriptCode = UScriptCode(172i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_JAMO: UScriptCode = UScriptCode(173i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SYMBOLS_EMOJI: UScriptCode = UScriptCode(174i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MASARAM_GONDI: UScriptCode = UScriptCode(175i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SOYOMBO: UScriptCode = UScriptCode(176i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ZANABAZAR_SQUARE: UScriptCode = UScriptCode(177i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_DOGRA: UScriptCode = UScriptCode(178i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_GUNJALA_GONDI: UScriptCode = UScriptCode(179i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MAKASAR: UScriptCode = UScriptCode(180i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_MEDEFAIDRIN: UScriptCode = UScriptCode(181i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_HANIFI_ROHINGYA: UScriptCode = UScriptCode(182i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_SOGDIAN: UScriptCode = UScriptCode(183i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_OLD_SOGDIAN: UScriptCode = UScriptCode(184i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_ELYMAIC: UScriptCode = UScriptCode(185i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_NYIAKENG_PUACHUE_HMONG: UScriptCode = UScriptCode(186i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_NANDINAGARI: UScriptCode = UScriptCode(187i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_WANCHO: UScriptCode = UScriptCode(188i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_CHORASMIAN: UScriptCode = UScriptCode(189i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_DIVES_AKURU: UScriptCode = UScriptCode(190i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_KHITAN_SMALL_SCRIPT: UScriptCode = UScriptCode(191i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_YEZIDI: UScriptCode = UScriptCode(192i32);
impl ::core::marker::Copy for UScriptCode {}
impl ::core::clone::Clone for UScriptCode {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UScriptCode {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UScriptCode {
    type Abi = Self;
}
impl ::core::fmt::Debug for UScriptCode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UScriptCode").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UScriptUsage(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_USAGE_NOT_ENCODED: UScriptUsage = UScriptUsage(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_USAGE_UNKNOWN: UScriptUsage = UScriptUsage(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_USAGE_EXCLUDED: UScriptUsage = UScriptUsage(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_USAGE_LIMITED_USE: UScriptUsage = UScriptUsage(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_USAGE_ASPIRATIONAL: UScriptUsage = UScriptUsage(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USCRIPT_USAGE_RECOMMENDED: UScriptUsage = UScriptUsage(5i32);
impl ::core::marker::Copy for UScriptUsage {}
impl ::core::clone::Clone for UScriptUsage {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UScriptUsage {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UScriptUsage {
    type Abi = Self;
}
impl ::core::fmt::Debug for UScriptUsage {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UScriptUsage").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct USearch(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct USearchAttribute(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USEARCH_OVERLAP: USearchAttribute = USearchAttribute(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USEARCH_ELEMENT_COMPARISON: USearchAttribute = USearchAttribute(2i32);
impl ::core::marker::Copy for USearchAttribute {}
impl ::core::clone::Clone for USearchAttribute {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for USearchAttribute {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for USearchAttribute {
    type Abi = Self;
}
impl ::core::fmt::Debug for USearchAttribute {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("USearchAttribute").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct USearchAttributeValue(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USEARCH_DEFAULT: USearchAttributeValue = USearchAttributeValue(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USEARCH_OFF: USearchAttributeValue = USearchAttributeValue(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USEARCH_ON: USearchAttributeValue = USearchAttributeValue(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USEARCH_STANDARD_ELEMENT_COMPARISON: USearchAttributeValue = USearchAttributeValue(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD: USearchAttributeValue = USearchAttributeValue(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD: USearchAttributeValue = USearchAttributeValue(4i32);
impl ::core::marker::Copy for USearchAttributeValue {}
impl ::core::clone::Clone for USearchAttributeValue {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for USearchAttributeValue {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for USearchAttributeValue {
    type Abi = Self;
}
impl ::core::fmt::Debug for USearchAttributeValue {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("USearchAttributeValue").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct USentenceBreak(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_OTHER: USentenceBreak = USentenceBreak(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_ATERM: USentenceBreak = USentenceBreak(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_CLOSE: USentenceBreak = USentenceBreak(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_FORMAT: USentenceBreak = USentenceBreak(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_LOWER: USentenceBreak = USentenceBreak(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_NUMERIC: USentenceBreak = USentenceBreak(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_OLETTER: USentenceBreak = USentenceBreak(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_SEP: USentenceBreak = USentenceBreak(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_SP: USentenceBreak = USentenceBreak(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_STERM: USentenceBreak = USentenceBreak(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_UPPER: USentenceBreak = USentenceBreak(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_CR: USentenceBreak = USentenceBreak(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_EXTEND: USentenceBreak = USentenceBreak(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_LF: USentenceBreak = USentenceBreak(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SB_SCONTINUE: USentenceBreak = USentenceBreak(14i32);
impl ::core::marker::Copy for USentenceBreak {}
impl ::core::clone::Clone for USentenceBreak {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for USentenceBreak {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for USentenceBreak {
    type Abi = Self;
}
impl ::core::fmt::Debug for USentenceBreak {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("USentenceBreak").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct USentenceBreakTag(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_SENTENCE_TERM: USentenceBreakTag = USentenceBreakTag(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_SENTENCE_TERM_LIMIT: USentenceBreakTag = USentenceBreakTag(100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_SENTENCE_SEP: USentenceBreakTag = USentenceBreakTag(100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_SENTENCE_SEP_LIMIT: USentenceBreakTag = USentenceBreakTag(200i32);
impl ::core::marker::Copy for USentenceBreakTag {}
impl ::core::clone::Clone for USentenceBreakTag {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for USentenceBreakTag {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for USentenceBreakTag {
    type Abi = Self;
}
impl ::core::fmt::Debug for USentenceBreakTag {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("USentenceBreakTag").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct USerializedSet {
    pub array: *const u16,
    pub bmpLength: i32,
    pub length: i32,
    pub staticArray: [u16; 8],
}
impl ::core::marker::Copy for USerializedSet {}
impl ::core::clone::Clone for USerializedSet {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for USerializedSet {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("USerializedSet").field("array", &self.array).field("bmpLength", &self.bmpLength).field("length", &self.length).field("staticArray", &self.staticArray).finish()
    }
}
unsafe impl ::windows::core::Abi for USerializedSet {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for USerializedSet {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<USerializedSet>()) == 0 }
    }
}
impl ::core::cmp::Eq for USerializedSet {}
impl ::core::default::Default for USerializedSet {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
pub struct USet(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct USetSpanCondition(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USET_SPAN_NOT_CONTAINED: USetSpanCondition = USetSpanCondition(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USET_SPAN_CONTAINED: USetSpanCondition = USetSpanCondition(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USET_SPAN_SIMPLE: USetSpanCondition = USetSpanCondition(2i32);
impl ::core::marker::Copy for USetSpanCondition {}
impl ::core::clone::Clone for USetSpanCondition {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for USetSpanCondition {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for USetSpanCondition {
    type Abi = Self;
}
impl ::core::fmt::Debug for USetSpanCondition {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("USetSpanCondition").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct USpoofCheckResult(pub u8);
#[repr(C)]
pub struct USpoofChecker(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct USpoofChecks(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_SINGLE_SCRIPT_CONFUSABLE: USpoofChecks = USpoofChecks(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_MIXED_SCRIPT_CONFUSABLE: USpoofChecks = USpoofChecks(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_WHOLE_SCRIPT_CONFUSABLE: USpoofChecks = USpoofChecks(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_CONFUSABLE: USpoofChecks = USpoofChecks(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_RESTRICTION_LEVEL: USpoofChecks = USpoofChecks(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_INVISIBLE: USpoofChecks = USpoofChecks(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_CHAR_LIMIT: USpoofChecks = USpoofChecks(64i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_MIXED_NUMBERS: USpoofChecks = USpoofChecks(128i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_HIDDEN_OVERLAY: USpoofChecks = USpoofChecks(256i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_ALL_CHECKS: USpoofChecks = USpoofChecks(65535i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPOOF_AUX_INFO: USpoofChecks = USpoofChecks(1073741824i32);
impl ::core::marker::Copy for USpoofChecks {}
impl ::core::clone::Clone for USpoofChecks {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for USpoofChecks {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for USpoofChecks {
    type Abi = Self;
}
impl ::core::fmt::Debug for USpoofChecks {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("USpoofChecks").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UStringCaseMapper = ::core::option::Option<unsafe extern "system" fn(csm: *const UCaseMap, dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> i32>;
#[repr(C)]
pub struct UStringPrepProfile(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UStringPrepProfileType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC3491_NAMEPREP: UStringPrepProfileType = UStringPrepProfileType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC3530_NFS4_CS_PREP: UStringPrepProfileType = UStringPrepProfileType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC3530_NFS4_CS_PREP_CI: UStringPrepProfileType = UStringPrepProfileType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC3530_NFS4_CIS_PREP: UStringPrepProfileType = UStringPrepProfileType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC3530_NFS4_MIXED_PREP_PREFIX: UStringPrepProfileType = UStringPrepProfileType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC3530_NFS4_MIXED_PREP_SUFFIX: UStringPrepProfileType = UStringPrepProfileType(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC3722_ISCSI: UStringPrepProfileType = UStringPrepProfileType(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC3920_NODEPREP: UStringPrepProfileType = UStringPrepProfileType(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC3920_RESOURCEPREP: UStringPrepProfileType = UStringPrepProfileType(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC4011_MIB: UStringPrepProfileType = UStringPrepProfileType(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC4013_SASLPREP: UStringPrepProfileType = UStringPrepProfileType(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC4505_TRACE: UStringPrepProfileType = UStringPrepProfileType(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC4518_LDAP: UStringPrepProfileType = UStringPrepProfileType(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USPREP_RFC4518_LDAP_CI: UStringPrepProfileType = UStringPrepProfileType(13i32);
impl ::core::marker::Copy for UStringPrepProfileType {}
impl ::core::clone::Clone for UStringPrepProfileType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UStringPrepProfileType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UStringPrepProfileType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UStringPrepProfileType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UStringPrepProfileType").field(&self.0).finish()
    }
}
#[repr(C)]
pub struct UStringSearch(pub u8);
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UStringTrieBuildOption(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USTRINGTRIE_BUILD_FAST: UStringTrieBuildOption = UStringTrieBuildOption(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USTRINGTRIE_BUILD_SMALL: UStringTrieBuildOption = UStringTrieBuildOption(1i32);
impl ::core::marker::Copy for UStringTrieBuildOption {}
impl ::core::clone::Clone for UStringTrieBuildOption {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UStringTrieBuildOption {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UStringTrieBuildOption {
    type Abi = Self;
}
impl ::core::fmt::Debug for UStringTrieBuildOption {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UStringTrieBuildOption").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UStringTrieResult(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USTRINGTRIE_NO_MATCH: UStringTrieResult = UStringTrieResult(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USTRINGTRIE_NO_VALUE: UStringTrieResult = UStringTrieResult(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USTRINGTRIE_FINAL_VALUE: UStringTrieResult = UStringTrieResult(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const USTRINGTRIE_INTERMEDIATE_VALUE: UStringTrieResult = UStringTrieResult(3i32);
impl ::core::marker::Copy for UStringTrieResult {}
impl ::core::clone::Clone for UStringTrieResult {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UStringTrieResult {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UStringTrieResult {
    type Abi = Self;
}
impl ::core::fmt::Debug for UStringTrieResult {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UStringTrieResult").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct USystemTimeZoneType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_ZONE_TYPE_ANY: USystemTimeZoneType = USystemTimeZoneType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_ZONE_TYPE_CANONICAL: USystemTimeZoneType = USystemTimeZoneType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_ZONE_TYPE_CANONICAL_LOCATION: USystemTimeZoneType = USystemTimeZoneType(2i32);
impl ::core::marker::Copy for USystemTimeZoneType {}
impl ::core::clone::Clone for USystemTimeZoneType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for USystemTimeZoneType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for USystemTimeZoneType {
    type Abi = Self;
}
impl ::core::fmt::Debug for USystemTimeZoneType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("USystemTimeZoneType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTEXT_MAGIC: i32 = 878368812i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTEXT_PROVIDER_HAS_META_DATA: i32 = 4i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE: i32 = 1i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTEXT_PROVIDER_OWNS_TEXT: i32 = 5i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTEXT_PROVIDER_STABLE_CHUNKS: i32 = 2i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTEXT_PROVIDER_WRITABLE: i32 = 3i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTF16_MAX_CHAR_LENGTH: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTF32_MAX_CHAR_LENGTH: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTF8_ERROR_VALUE_1: u32 = 21u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTF8_ERROR_VALUE_2: u32 = 159u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTF8_MAX_CHAR_LENGTH: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTF_ERROR_VALUE: u32 = 65535u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTF_MAX_CHAR_LENGTH: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTF_SIZE: u32 = 16u32;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UText {
    pub magic: u32,
    pub flags: i32,
    pub providerProperties: i32,
    pub sizeOfStruct: i32,
    pub chunkNativeLimit: i64,
    pub extraSize: i32,
    pub nativeIndexingLimit: i32,
    pub chunkNativeStart: i64,
    pub chunkOffset: i32,
    pub chunkLength: i32,
    pub chunkContents: *const u16,
    pub pFuncs: *const UTextFuncs,
    pub pExtra: *mut ::core::ffi::c_void,
    pub context: *const ::core::ffi::c_void,
    pub p: *const ::core::ffi::c_void,
    pub q: *const ::core::ffi::c_void,
    pub r: *const ::core::ffi::c_void,
    pub privP: *mut ::core::ffi::c_void,
    pub a: i64,
    pub b: i32,
    pub c: i32,
    pub privA: i64,
    pub privB: i32,
    pub privC: i32,
}
impl ::core::marker::Copy for UText {}
impl ::core::clone::Clone for UText {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UText {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UText")
            .field("magic", &self.magic)
            .field("flags", &self.flags)
            .field("providerProperties", &self.providerProperties)
            .field("sizeOfStruct", &self.sizeOfStruct)
            .field("chunkNativeLimit", &self.chunkNativeLimit)
            .field("extraSize", &self.extraSize)
            .field("nativeIndexingLimit", &self.nativeIndexingLimit)
            .field("chunkNativeStart", &self.chunkNativeStart)
            .field("chunkOffset", &self.chunkOffset)
            .field("chunkLength", &self.chunkLength)
            .field("chunkContents", &self.chunkContents)
            .field("pFuncs", &self.pFuncs)
            .field("pExtra", &self.pExtra)
            .field("context", &self.context)
            .field("p", &self.p)
            .field("q", &self.q)
            .field("r", &self.r)
            .field("privP", &self.privP)
            .field("a", &self.a)
            .field("b", &self.b)
            .field("c", &self.c)
            .field("privA", &self.privA)
            .field("privB", &self.privB)
            .field("privC", &self.privC)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for UText {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UText {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UText>()) == 0 }
    }
}
impl ::core::cmp::Eq for UText {}
impl ::core::default::Default for UText {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTextAccess = ::core::option::Option<unsafe extern "system" fn(ut: *mut UText, nativeindex: i64, forward: i8) -> i8>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTextClone = ::core::option::Option<unsafe extern "system" fn(dest: *mut UText, src: *const UText, deep: i8, status: *mut UErrorCode) -> *mut UText>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTextClose = ::core::option::Option<unsafe extern "system" fn(ut: *mut UText)>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTextCopy = ::core::option::Option<unsafe extern "system" fn(ut: *mut UText, nativestart: i64, nativelimit: i64, nativedest: i64, r#move: i8, status: *mut UErrorCode)>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTextExtract = ::core::option::Option<unsafe extern "system" fn(ut: *mut UText, nativestart: i64, nativelimit: i64, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32>;
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UTextFuncs {
    pub tableSize: i32,
    pub reserved1: i32,
    pub reserved2: i32,
    pub reserved3: i32,
    pub clone: UTextClone,
    pub nativeLength: UTextNativeLength,
    pub access: UTextAccess,
    pub extract: UTextExtract,
    pub replace: UTextReplace,
    pub copy: UTextCopy,
    pub mapOffsetToNative: UTextMapOffsetToNative,
    pub mapNativeIndexToUTF16: UTextMapNativeIndexToUTF16,
    pub close: UTextClose,
    pub spare1: UTextClose,
    pub spare2: UTextClose,
    pub spare3: UTextClose,
}
impl ::core::marker::Copy for UTextFuncs {}
impl ::core::clone::Clone for UTextFuncs {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UTextFuncs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UTextFuncs")
            .field("tableSize", &self.tableSize)
            .field("reserved1", &self.reserved1)
            .field("reserved2", &self.reserved2)
            .field("reserved3", &self.reserved3)
            .field("clone", &self.clone.map(|f| f as usize))
            .field("nativeLength", &self.nativeLength.map(|f| f as usize))
            .field("access", &self.access.map(|f| f as usize))
            .field("extract", &self.extract.map(|f| f as usize))
            .field("replace", &self.replace.map(|f| f as usize))
            .field("copy", &self.copy.map(|f| f as usize))
            .field("mapOffsetToNative", &self.mapOffsetToNative.map(|f| f as usize))
            .field("mapNativeIndexToUTF16", &self.mapNativeIndexToUTF16.map(|f| f as usize))
            .field("close", &self.close.map(|f| f as usize))
            .field("spare1", &self.spare1.map(|f| f as usize))
            .field("spare2", &self.spare2.map(|f| f as usize))
            .field("spare3", &self.spare3.map(|f| f as usize))
            .finish()
    }
}
unsafe impl ::windows::core::Abi for UTextFuncs {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UTextFuncs {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UTextFuncs>()) == 0 }
    }
}
impl ::core::cmp::Eq for UTextFuncs {}
impl ::core::default::Default for UTextFuncs {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTextMapNativeIndexToUTF16 = ::core::option::Option<unsafe extern "system" fn(ut: *const UText, nativeindex: i64) -> i32>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTextMapOffsetToNative = ::core::option::Option<unsafe extern "system" fn(ut: *const UText) -> i64>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTextNativeLength = ::core::option::Option<unsafe extern "system" fn(ut: *mut UText) -> i64>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTextReplace = ::core::option::Option<unsafe extern "system" fn(ut: *mut UText, nativestart: i64, nativelimit: i64, replacementtext: *const u16, replacmentlength: i32, status: *mut UErrorCode) -> i32>;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UTimeScaleValue(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTSV_UNITS_VALUE: UTimeScaleValue = UTimeScaleValue(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTSV_EPOCH_OFFSET_VALUE: UTimeScaleValue = UTimeScaleValue(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTSV_FROM_MIN_VALUE: UTimeScaleValue = UTimeScaleValue(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTSV_FROM_MAX_VALUE: UTimeScaleValue = UTimeScaleValue(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTSV_TO_MIN_VALUE: UTimeScaleValue = UTimeScaleValue(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTSV_TO_MAX_VALUE: UTimeScaleValue = UTimeScaleValue(5i32);
impl ::core::marker::Copy for UTimeScaleValue {}
impl ::core::clone::Clone for UTimeScaleValue {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UTimeScaleValue {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UTimeScaleValue {
    type Abi = Self;
}
impl ::core::fmt::Debug for UTimeScaleValue {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UTimeScaleValue").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UTimeZoneFormatGMTOffsetPatternType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_PAT_POSITIVE_HM: UTimeZoneFormatGMTOffsetPatternType = UTimeZoneFormatGMTOffsetPatternType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_PAT_POSITIVE_HMS: UTimeZoneFormatGMTOffsetPatternType = UTimeZoneFormatGMTOffsetPatternType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_PAT_NEGATIVE_HM: UTimeZoneFormatGMTOffsetPatternType = UTimeZoneFormatGMTOffsetPatternType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_PAT_NEGATIVE_HMS: UTimeZoneFormatGMTOffsetPatternType = UTimeZoneFormatGMTOffsetPatternType(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_PAT_POSITIVE_H: UTimeZoneFormatGMTOffsetPatternType = UTimeZoneFormatGMTOffsetPatternType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_PAT_NEGATIVE_H: UTimeZoneFormatGMTOffsetPatternType = UTimeZoneFormatGMTOffsetPatternType(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_PAT_COUNT: UTimeZoneFormatGMTOffsetPatternType = UTimeZoneFormatGMTOffsetPatternType(6i32);
impl ::core::marker::Copy for UTimeZoneFormatGMTOffsetPatternType {}
impl ::core::clone::Clone for UTimeZoneFormatGMTOffsetPatternType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UTimeZoneFormatGMTOffsetPatternType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UTimeZoneFormatGMTOffsetPatternType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UTimeZoneFormatGMTOffsetPatternType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UTimeZoneFormatGMTOffsetPatternType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UTimeZoneFormatParseOption(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_PARSE_OPTION_NONE: UTimeZoneFormatParseOption = UTimeZoneFormatParseOption(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_PARSE_OPTION_ALL_STYLES: UTimeZoneFormatParseOption = UTimeZoneFormatParseOption(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_PARSE_OPTION_TZ_DATABASE_ABBREVIATIONS: UTimeZoneFormatParseOption = UTimeZoneFormatParseOption(2i32);
impl ::core::marker::Copy for UTimeZoneFormatParseOption {}
impl ::core::clone::Clone for UTimeZoneFormatParseOption {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UTimeZoneFormatParseOption {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UTimeZoneFormatParseOption {
    type Abi = Self;
}
impl ::core::fmt::Debug for UTimeZoneFormatParseOption {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UTimeZoneFormatParseOption").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UTimeZoneFormatStyle(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_GENERIC_LOCATION: UTimeZoneFormatStyle = UTimeZoneFormatStyle(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_GENERIC_LONG: UTimeZoneFormatStyle = UTimeZoneFormatStyle(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_GENERIC_SHORT: UTimeZoneFormatStyle = UTimeZoneFormatStyle(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_SPECIFIC_LONG: UTimeZoneFormatStyle = UTimeZoneFormatStyle(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_SPECIFIC_SHORT: UTimeZoneFormatStyle = UTimeZoneFormatStyle(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_LOCALIZED_GMT: UTimeZoneFormatStyle = UTimeZoneFormatStyle(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_LOCALIZED_GMT_SHORT: UTimeZoneFormatStyle = UTimeZoneFormatStyle(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ISO_BASIC_SHORT: UTimeZoneFormatStyle = UTimeZoneFormatStyle(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ISO_BASIC_LOCAL_SHORT: UTimeZoneFormatStyle = UTimeZoneFormatStyle(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ISO_BASIC_FIXED: UTimeZoneFormatStyle = UTimeZoneFormatStyle(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ISO_BASIC_LOCAL_FIXED: UTimeZoneFormatStyle = UTimeZoneFormatStyle(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ISO_BASIC_FULL: UTimeZoneFormatStyle = UTimeZoneFormatStyle(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ISO_BASIC_LOCAL_FULL: UTimeZoneFormatStyle = UTimeZoneFormatStyle(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ISO_EXTENDED_FIXED: UTimeZoneFormatStyle = UTimeZoneFormatStyle(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FIXED: UTimeZoneFormatStyle = UTimeZoneFormatStyle(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ISO_EXTENDED_FULL: UTimeZoneFormatStyle = UTimeZoneFormatStyle(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FULL: UTimeZoneFormatStyle = UTimeZoneFormatStyle(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ZONE_ID: UTimeZoneFormatStyle = UTimeZoneFormatStyle(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_ZONE_ID_SHORT: UTimeZoneFormatStyle = UTimeZoneFormatStyle(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_STYLE_EXEMPLAR_LOCATION: UTimeZoneFormatStyle = UTimeZoneFormatStyle(19i32);
impl ::core::marker::Copy for UTimeZoneFormatStyle {}
impl ::core::clone::Clone for UTimeZoneFormatStyle {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UTimeZoneFormatStyle {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UTimeZoneFormatStyle {
    type Abi = Self;
}
impl ::core::fmt::Debug for UTimeZoneFormatStyle {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UTimeZoneFormatStyle").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UTimeZoneFormatTimeType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_TIME_TYPE_UNKNOWN: UTimeZoneFormatTimeType = UTimeZoneFormatTimeType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_TIME_TYPE_STANDARD: UTimeZoneFormatTimeType = UTimeZoneFormatTimeType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZFMT_TIME_TYPE_DAYLIGHT: UTimeZoneFormatTimeType = UTimeZoneFormatTimeType(2i32);
impl ::core::marker::Copy for UTimeZoneFormatTimeType {}
impl ::core::clone::Clone for UTimeZoneFormatTimeType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UTimeZoneFormatTimeType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UTimeZoneFormatTimeType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UTimeZoneFormatTimeType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UTimeZoneFormatTimeType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UTimeZoneNameType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZNM_UNKNOWN: UTimeZoneNameType = UTimeZoneNameType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZNM_LONG_GENERIC: UTimeZoneNameType = UTimeZoneNameType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZNM_LONG_STANDARD: UTimeZoneNameType = UTimeZoneNameType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZNM_LONG_DAYLIGHT: UTimeZoneNameType = UTimeZoneNameType(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZNM_SHORT_GENERIC: UTimeZoneNameType = UTimeZoneNameType(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZNM_SHORT_STANDARD: UTimeZoneNameType = UTimeZoneNameType(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZNM_SHORT_DAYLIGHT: UTimeZoneNameType = UTimeZoneNameType(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTZNM_EXEMPLAR_LOCATION: UTimeZoneNameType = UTimeZoneNameType(64i32);
impl ::core::marker::Copy for UTimeZoneNameType {}
impl ::core::clone::Clone for UTimeZoneNameType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UTimeZoneNameType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UTimeZoneNameType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UTimeZoneNameType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UTimeZoneNameType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UTimeZoneTransitionType(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_TZ_TRANSITION_NEXT: UTimeZoneTransitionType = UTimeZoneTransitionType(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_TZ_TRANSITION_NEXT_INCLUSIVE: UTimeZoneTransitionType = UTimeZoneTransitionType(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_TZ_TRANSITION_PREVIOUS: UTimeZoneTransitionType = UTimeZoneTransitionType(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UCAL_TZ_TRANSITION_PREVIOUS_INCLUSIVE: UTimeZoneTransitionType = UTimeZoneTransitionType(3i32);
impl ::core::marker::Copy for UTimeZoneTransitionType {}
impl ::core::clone::Clone for UTimeZoneTransitionType {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UTimeZoneTransitionType {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UTimeZoneTransitionType {
    type Abi = Self;
}
impl ::core::fmt::Debug for UTimeZoneTransitionType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UTimeZoneTransitionType").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTraceData = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, fnnumber: i32, level: i32, fmt: ::windows::core::PCSTR, args: *mut i8)>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTraceEntry = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, fnnumber: i32)>;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub type UTraceExit = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void, fnnumber: i32, fmt: ::windows::core::PCSTR, args: *mut i8)>;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UTraceFunctionNumber(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_FUNCTION_START: UTraceFunctionNumber = UTraceFunctionNumber(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_U_INIT: UTraceFunctionNumber = UTraceFunctionNumber(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_U_CLEANUP: UTraceFunctionNumber = UTraceFunctionNumber(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_CONVERSION_START: UTraceFunctionNumber = UTraceFunctionNumber(4096i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCNV_OPEN: UTraceFunctionNumber = UTraceFunctionNumber(4096i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCNV_OPEN_PACKAGE: UTraceFunctionNumber = UTraceFunctionNumber(4097i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCNV_OPEN_ALGORITHMIC: UTraceFunctionNumber = UTraceFunctionNumber(4098i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCNV_CLONE: UTraceFunctionNumber = UTraceFunctionNumber(4099i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCNV_CLOSE: UTraceFunctionNumber = UTraceFunctionNumber(4100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCNV_FLUSH_CACHE: UTraceFunctionNumber = UTraceFunctionNumber(4101i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCNV_LOAD: UTraceFunctionNumber = UTraceFunctionNumber(4102i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCNV_UNLOAD: UTraceFunctionNumber = UTraceFunctionNumber(4103i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_COLLATION_START: UTraceFunctionNumber = UTraceFunctionNumber(8192i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCOL_OPEN: UTraceFunctionNumber = UTraceFunctionNumber(8192i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCOL_CLOSE: UTraceFunctionNumber = UTraceFunctionNumber(8193i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCOL_STRCOLL: UTraceFunctionNumber = UTraceFunctionNumber(8194i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCOL_GET_SORTKEY: UTraceFunctionNumber = UTraceFunctionNumber(8195i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCOL_GETLOCALE: UTraceFunctionNumber = UTraceFunctionNumber(8196i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCOL_NEXTSORTKEYPART: UTraceFunctionNumber = UTraceFunctionNumber(8197i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCOL_STRCOLLITER: UTraceFunctionNumber = UTraceFunctionNumber(8198i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCOL_OPEN_FROM_SHORT_STRING: UTraceFunctionNumber = UTraceFunctionNumber(8199i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UCOL_STRCOLLUTF8: UTraceFunctionNumber = UTraceFunctionNumber(8200i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UDATA_START: UTraceFunctionNumber = UTraceFunctionNumber(12288i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UDATA_RESOURCE: UTraceFunctionNumber = UTraceFunctionNumber(12288i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UDATA_BUNDLE: UTraceFunctionNumber = UTraceFunctionNumber(12289i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UDATA_DATA_FILE: UTraceFunctionNumber = UTraceFunctionNumber(12290i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_UDATA_RES_FILE: UTraceFunctionNumber = UTraceFunctionNumber(12291i32);
impl ::core::marker::Copy for UTraceFunctionNumber {}
impl ::core::clone::Clone for UTraceFunctionNumber {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UTraceFunctionNumber {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UTraceFunctionNumber {
    type Abi = Self;
}
impl ::core::fmt::Debug for UTraceFunctionNumber {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UTraceFunctionNumber").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UTraceLevel(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_OFF: UTraceLevel = UTraceLevel(-1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_ERROR: UTraceLevel = UTraceLevel(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_WARNING: UTraceLevel = UTraceLevel(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_OPEN_CLOSE: UTraceLevel = UTraceLevel(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_INFO: UTraceLevel = UTraceLevel(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRACE_VERBOSE: UTraceLevel = UTraceLevel(9i32);
impl ::core::marker::Copy for UTraceLevel {}
impl ::core::clone::Clone for UTraceLevel {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UTraceLevel {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UTraceLevel {
    type Abi = Self;
}
impl ::core::fmt::Debug for UTraceLevel {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UTraceLevel").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UTransDirection(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRANS_FORWARD: UTransDirection = UTransDirection(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UTRANS_REVERSE: UTransDirection = UTransDirection(1i32);
impl ::core::marker::Copy for UTransDirection {}
impl ::core::clone::Clone for UTransDirection {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UTransDirection {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UTransDirection {
    type Abi = Self;
}
impl ::core::fmt::Debug for UTransDirection {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UTransDirection").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct UTransPosition {
    pub contextStart: i32,
    pub contextLimit: i32,
    pub start: i32,
    pub limit: i32,
}
impl ::core::marker::Copy for UTransPosition {}
impl ::core::clone::Clone for UTransPosition {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UTransPosition {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UTransPosition").field("contextStart", &self.contextStart).field("contextLimit", &self.contextLimit).field("start", &self.start).field("limit", &self.limit).finish()
    }
}
unsafe impl ::windows::core::Abi for UTransPosition {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UTransPosition {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UTransPosition>()) == 0 }
    }
}
impl ::core::cmp::Eq for UTransPosition {}
impl ::core::default::Default for UTransPosition {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UVerticalOrientation(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_VO_ROTATED: UVerticalOrientation = UVerticalOrientation(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_VO_TRANSFORMED_ROTATED: UVerticalOrientation = UVerticalOrientation(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_VO_TRANSFORMED_UPRIGHT: UVerticalOrientation = UVerticalOrientation(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_VO_UPRIGHT: UVerticalOrientation = UVerticalOrientation(3i32);
impl ::core::marker::Copy for UVerticalOrientation {}
impl ::core::clone::Clone for UVerticalOrientation {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UVerticalOrientation {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UVerticalOrientation {
    type Abi = Self;
}
impl ::core::fmt::Debug for UVerticalOrientation {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UVerticalOrientation").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UWordBreak(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD_NONE: UWordBreak = UWordBreak(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD_NONE_LIMIT: UWordBreak = UWordBreak(100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD_NUMBER: UWordBreak = UWordBreak(100i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD_NUMBER_LIMIT: UWordBreak = UWordBreak(200i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD_LETTER: UWordBreak = UWordBreak(200i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD_LETTER_LIMIT: UWordBreak = UWordBreak(300i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD_KANA: UWordBreak = UWordBreak(300i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD_KANA_LIMIT: UWordBreak = UWordBreak(400i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD_IDEO: UWordBreak = UWordBreak(400i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const UBRK_WORD_IDEO_LIMIT: UWordBreak = UWordBreak(500i32);
impl ::core::marker::Copy for UWordBreak {}
impl ::core::clone::Clone for UWordBreak {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UWordBreak {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UWordBreak {
    type Abi = Self;
}
impl ::core::fmt::Debug for UWordBreak {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UWordBreak").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct UWordBreakValues(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_OTHER: UWordBreakValues = UWordBreakValues(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_ALETTER: UWordBreakValues = UWordBreakValues(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_FORMAT: UWordBreakValues = UWordBreakValues(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_KATAKANA: UWordBreakValues = UWordBreakValues(3i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_MIDLETTER: UWordBreakValues = UWordBreakValues(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_MIDNUM: UWordBreakValues = UWordBreakValues(5i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_NUMERIC: UWordBreakValues = UWordBreakValues(6i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_EXTENDNUMLET: UWordBreakValues = UWordBreakValues(7i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_CR: UWordBreakValues = UWordBreakValues(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_EXTEND: UWordBreakValues = UWordBreakValues(9i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_LF: UWordBreakValues = UWordBreakValues(10i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_MIDNUMLET: UWordBreakValues = UWordBreakValues(11i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_NEWLINE: UWordBreakValues = UWordBreakValues(12i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_REGIONAL_INDICATOR: UWordBreakValues = UWordBreakValues(13i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_HEBREW_LETTER: UWordBreakValues = UWordBreakValues(14i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_SINGLE_QUOTE: UWordBreakValues = UWordBreakValues(15i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_DOUBLE_QUOTE: UWordBreakValues = UWordBreakValues(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_E_BASE: UWordBreakValues = UWordBreakValues(17i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_E_BASE_GAZ: UWordBreakValues = UWordBreakValues(18i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_E_MODIFIER: UWordBreakValues = UWordBreakValues(19i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_GLUE_AFTER_ZWJ: UWordBreakValues = UWordBreakValues(20i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_ZWJ: UWordBreakValues = UWordBreakValues(21i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_WB_WSEGSPACE: UWordBreakValues = UWordBreakValues(22i32);
impl ::core::marker::Copy for UWordBreakValues {}
impl ::core::clone::Clone for UWordBreakValues {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for UWordBreakValues {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for UWordBreakValues {
    type Abi = Self;
}
impl ::core::fmt::Debug for UWordBreakValues {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("UWordBreakValues").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ASCII_FAMILY: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CHAR16_IS_TYPEDEF: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CHARSET_FAMILY: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CHARSET_IS_UTF8: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CHECK_DYLOAD: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_COMBINED_IMPLEMENTATION: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_COMPARE_CODE_POINT_ORDER: u32 = 32768u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_COMPARE_IGNORE_CASE: u32 = 65536u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_COPYRIGHT_STRING_LENGTH: u32 = 128u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_CPLUSPLUS_VERSION: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DEBUG: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DEFAULT_SHOW_DRAFT: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DEFINE_FALSE_AND_TRUE: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_DISABLE_RENAMING: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EBCDIC_FAMILY: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_EDITS_NO_RESET: u32 = 8192u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ENABLE_DYLOAD: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ENABLE_TRACING: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_FOLD_CASE_DEFAULT: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_FOLD_CASE_EXCLUDE_SPECIAL_I: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_GCC_MAJOR_MINOR: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_CHAR16_T: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_DEBUG_LOCATION_NEW: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_INTTYPES_H: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_LIB_SUFFIX: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_PLACEMENT_NEW: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_RBNF: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_RVALUE_REFERENCES: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_STDINT_H: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_STD_STRING: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_WCHAR_H: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HAVE_WCSCPY: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HIDE_DEPRECATED_API: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HIDE_DRAFT_API: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HIDE_INTERNAL_API: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HIDE_OBSOLETE_API: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_HIDE_OBSOLETE_UTF_OLD_H: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ICUDATA_TYPE_LETTER: &'static str = "e";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ICU_DATA_KEY: &'static str = "DataVersion";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_ICU_VERSION_BUNDLE: &'static str = "icuver";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IOSTREAM_SOURCE: u32 = 199711u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_IS_BIG_ENDIAN: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_LIB_SUFFIX_C_NAME_STRING: &'static str = "";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MAX_VERSION_LENGTH: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MAX_VERSION_STRING_LENGTH: u32 = 20u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MILLIS_PER_DAY: u32 = 86400000u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MILLIS_PER_HOUR: u32 = 3600000u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MILLIS_PER_MINUTE: u32 = 60000u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_MILLIS_PER_SECOND: u32 = 1000u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_NO_DEFAULT_INCLUDE_UTF_HEADERS: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_OMIT_UNCHANGED_TEXT: u32 = 16384u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_OVERRIDE_CXX_ALLOCATION: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PARSE_CONTEXT_LEN: i32 = 16i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_AIX: u32 = 3100u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_ANDROID: u32 = 4050u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_BROWSER_NATIVE_CLIENT: u32 = 4020u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_BSD: u32 = 3000u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_CYGWIN: u32 = 1900u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_DARWIN: u32 = 3500u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_EMSCRIPTEN: u32 = 5010u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_FUCHSIA: u32 = 4100u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_HPUX: u32 = 2100u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_IPHONE: u32 = 3550u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_IRIX: u32 = 3200u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_LINUX: u32 = 4000u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_MINGW: u32 = 1800u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_OS390: u32 = 9000u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_OS400: u32 = 9400u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_QNX: u32 = 3700u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_SOLARIS: u32 = 2600u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_UNKNOWN: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PF_WINDOWS: u32 = 1000u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLATFORM: u32 = 1800u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLATFORM_HAS_WIN32_API: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLATFORM_HAS_WINUWP_API: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLATFORM_IMPLEMENTS_POSIX: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLATFORM_IS_DARWIN_BASED: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLATFORM_IS_LINUX_BASED: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_PLATFORM_USES_ONLY_WIN32_API: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SENTINEL: i32 = -1i32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_AGGREGATE_TASHKEEL: u32 = 16384u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_AGGREGATE_TASHKEEL_MASK: u32 = 16384u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_AGGREGATE_TASHKEEL_NOOP: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGITS_ALEN2AN_INIT_AL: u32 = 128u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGITS_ALEN2AN_INIT_LR: u32 = 96u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGITS_AN2EN: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGITS_EN2AN: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGITS_MASK: u32 = 224u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGITS_NOOP: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGITS_RESERVED: u32 = 160u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGIT_TYPE_AN: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGIT_TYPE_AN_EXTENDED: u32 = 256u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGIT_TYPE_MASK: u32 = 768u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_DIGIT_TYPE_RESERVED: u32 = 512u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LAMALEF_AUTO: u32 = 65536u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LAMALEF_BEGIN: u32 = 3u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LAMALEF_END: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LAMALEF_MASK: u32 = 65539u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LAMALEF_NEAR: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LAMALEF_RESIZE: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LENGTH_FIXED_SPACES_AT_BEGINNING: u32 = 3u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LENGTH_FIXED_SPACES_AT_END: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LENGTH_FIXED_SPACES_NEAR: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LENGTH_GROW_SHRINK: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LENGTH_MASK: u32 = 65539u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LETTERS_MASK: u32 = 24u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LETTERS_NOOP: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LETTERS_SHAPE: u32 = 8u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LETTERS_SHAPE_TASHKEEL_ISOLATED: u32 = 24u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_LETTERS_UNSHAPE: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_PRESERVE_PRESENTATION: u32 = 32768u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_PRESERVE_PRESENTATION_MASK: u32 = 32768u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_PRESERVE_PRESENTATION_NOOP: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_SEEN_MASK: u32 = 7340032u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_SEEN_TWOCELL_NEAR: u32 = 2097152u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_SPACES_RELATIVE_TO_TEXT_BEGIN_END: u32 = 67108864u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_SPACES_RELATIVE_TO_TEXT_MASK: u32 = 67108864u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TAIL_NEW_UNICODE: u32 = 134217728u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TAIL_TYPE_MASK: u32 = 134217728u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TASHKEEL_BEGIN: u32 = 262144u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TASHKEEL_END: u32 = 393216u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TASHKEEL_MASK: u32 = 917504u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TASHKEEL_REPLACE_BY_TATWEEL: u32 = 786432u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TASHKEEL_RESIZE: u32 = 524288u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TEXT_DIRECTION_LOGICAL: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TEXT_DIRECTION_MASK: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TEXT_DIRECTION_VISUAL_LTR: u32 = 4u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_TEXT_DIRECTION_VISUAL_RTL: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_YEHHAMZA_MASK: u32 = 58720256u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHAPE_YEHHAMZA_TWOCELL_NEAR: u32 = 16777216u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SHOW_CPLUSPLUS_API: u32 = 0u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SIZEOF_UCHAR: u32 = 2u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_SIZEOF_WCHAR_T: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_TITLECASE_ADJUST_TO_CASED: u32 = 1024u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_TITLECASE_NO_BREAK_ADJUSTMENT: u32 = 512u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_TITLECASE_NO_LOWERCASE: u32 = 256u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_TITLECASE_SENTENCES: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_TITLECASE_WHOLE_STRING: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_UNICODE_VERSION: &'static str = "8.0";
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const U_USING_ICU_NAMESPACE: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const VS_ALLOW_LATIN: u32 = 1u32;
#[doc = "*Required features: 'Win32_Globalization', 'Win32_Foundation'*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn VerifyScripts<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dwflags: u32, lplocalescripts: Param1, cchlocalescripts: i32, lptestscripts: Param3, cchtestscripts: i32) -> super::Foundation::BOOL {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn VerifyScripts(dwflags: u32, lplocalescripts: ::windows::core::PCWSTR, cchlocalescripts: i32, lptestscripts: ::windows::core::PCWSTR, cchtestscripts: i32) -> super::Foundation::BOOL;
        }
        ::core::mem::transmute(VerifyScripts(::core::mem::transmute(dwflags), lplocalescripts.into_param().abi(), ::core::mem::transmute(cchlocalescripts), lptestscripts.into_param().abi(), ::core::mem::transmute(cchtestscripts)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const WC_COMPOSITECHECK: u32 = 512u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const WC_DEFAULTCHAR: u32 = 64u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const WC_DISCARDNS: u32 = 16u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const WC_ERR_INVALID_CHARS: u32 = 128u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const WC_NO_BEST_FIT_CHARS: u32 = 1024u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const WC_SEPCHARS: u32 = 32u32;
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct WORDLIST_TYPE(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const WORDLIST_TYPE_IGNORE: WORDLIST_TYPE = WORDLIST_TYPE(0i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const WORDLIST_TYPE_ADD: WORDLIST_TYPE = WORDLIST_TYPE(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const WORDLIST_TYPE_EXCLUDE: WORDLIST_TYPE = WORDLIST_TYPE(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const WORDLIST_TYPE_AUTOCORRECT: WORDLIST_TYPE = WORDLIST_TYPE(3i32);
impl ::core::marker::Copy for WORDLIST_TYPE {}
impl ::core::clone::Clone for WORDLIST_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for WORDLIST_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for WORDLIST_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for WORDLIST_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WORDLIST_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn WideCharToMultiByte<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param6: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(codepage: u32, dwflags: u32, lpwidecharstr: Param2, cchwidechar: i32, lpmultibytestr: ::windows::core::PSTR, cbmultibyte: i32, lpdefaultchar: Param6, lpuseddefaultchar: *mut i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn WideCharToMultiByte(codepage: u32, dwflags: u32, lpwidecharstr: ::windows::core::PCWSTR, cchwidechar: i32, lpmultibytestr: ::windows::core::PSTR, cbmultibyte: i32, lpdefaultchar: ::windows::core::PCSTR, lpuseddefaultchar: *mut i32) -> i32;
        }
        ::core::mem::transmute(WideCharToMultiByte(::core::mem::transmute(codepage), ::core::mem::transmute(dwflags), lpwidecharstr.into_param().abi(), ::core::mem::transmute(cchwidechar), ::core::mem::transmute(lpmultibytestr), ::core::mem::transmute(cbmultibyte), lpdefaultchar.into_param().abi(), ::core::mem::transmute(lpuseddefaultchar)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrcatA<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(lpstring1: ::windows::core::PSTR, lpstring2: Param1) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrcatA(lpstring1: ::windows::core::PSTR, lpstring2: ::windows::core::PCSTR) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(lstrcatA(::core::mem::transmute(lpstring1), lpstring2.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrcatW<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lpstring1: ::windows::core::PWSTR, lpstring2: Param1) -> ::windows::core::PWSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrcatW(lpstring1: ::windows::core::PWSTR, lpstring2: ::windows::core::PCWSTR) -> ::windows::core::PWSTR;
        }
        ::core::mem::transmute(lstrcatW(::core::mem::transmute(lpstring1), lpstring2.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrcmpA<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(lpstring1: Param0, lpstring2: Param1) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrcmpA(lpstring1: ::windows::core::PCSTR, lpstring2: ::windows::core::PCSTR) -> i32;
        }
        ::core::mem::transmute(lstrcmpA(lpstring1.into_param().abi(), lpstring2.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrcmpW<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lpstring1: Param0, lpstring2: Param1) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrcmpW(lpstring1: ::windows::core::PCWSTR, lpstring2: ::windows::core::PCWSTR) -> i32;
        }
        ::core::mem::transmute(lstrcmpW(lpstring1.into_param().abi(), lpstring2.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrcmpiA<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(lpstring1: Param0, lpstring2: Param1) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrcmpiA(lpstring1: ::windows::core::PCSTR, lpstring2: ::windows::core::PCSTR) -> i32;
        }
        ::core::mem::transmute(lstrcmpiA(lpstring1.into_param().abi(), lpstring2.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrcmpiW<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lpstring1: Param0, lpstring2: Param1) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrcmpiW(lpstring1: ::windows::core::PCWSTR, lpstring2: ::windows::core::PCWSTR) -> i32;
        }
        ::core::mem::transmute(lstrcmpiW(lpstring1.into_param().abi(), lpstring2.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrcpyA<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(lpstring1: ::windows::core::PSTR, lpstring2: Param1) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrcpyA(lpstring1: ::windows::core::PSTR, lpstring2: ::windows::core::PCSTR) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(lstrcpyA(::core::mem::transmute(lpstring1), lpstring2.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrcpyW<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lpstring1: ::windows::core::PWSTR, lpstring2: Param1) -> ::windows::core::PWSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrcpyW(lpstring1: ::windows::core::PWSTR, lpstring2: ::windows::core::PCWSTR) -> ::windows::core::PWSTR;
        }
        ::core::mem::transmute(lstrcpyW(::core::mem::transmute(lpstring1), lpstring2.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrcpynA<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(lpstring1: ::windows::core::PSTR, lpstring2: Param1, imaxlength: i32) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrcpynA(lpstring1: ::windows::core::PSTR, lpstring2: ::windows::core::PCSTR, imaxlength: i32) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(lstrcpynA(::core::mem::transmute(lpstring1), lpstring2.into_param().abi(), ::core::mem::transmute(imaxlength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrcpynW<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lpstring1: ::windows::core::PWSTR, lpstring2: Param1, imaxlength: i32) -> ::windows::core::PWSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrcpynW(lpstring1: ::windows::core::PWSTR, lpstring2: ::windows::core::PCWSTR, imaxlength: i32) -> ::windows::core::PWSTR;
        }
        ::core::mem::transmute(lstrcpynW(::core::mem::transmute(lpstring1), lpstring2.into_param().abi(), ::core::mem::transmute(imaxlength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrlenA<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(lpstring: Param0) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrlenA(lpstring: ::windows::core::PCSTR) -> i32;
        }
        ::core::mem::transmute(lstrlenA(lpstring.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn lstrlenW<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(lpstring: Param0) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn lstrlenW(lpstring: ::windows::core::PCWSTR) -> i32;
        }
        ::core::mem::transmute(lstrlenW(lpstring.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct opentype_feature_record {
    pub tagFeature: u32,
    pub lParameter: i32,
}
impl ::core::marker::Copy for opentype_feature_record {}
impl ::core::clone::Clone for opentype_feature_record {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for opentype_feature_record {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("opentype_feature_record").field("tagFeature", &self.tagFeature).field("lParameter", &self.lParameter).finish()
    }
}
unsafe impl ::windows::core::Abi for opentype_feature_record {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for opentype_feature_record {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<opentype_feature_record>()) == 0 }
    }
}
impl ::core::cmp::Eq for opentype_feature_record {}
impl ::core::default::Default for opentype_feature_record {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct script_charprop {
    pub _bitfield: u16,
}
impl ::core::marker::Copy for script_charprop {}
impl ::core::clone::Clone for script_charprop {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for script_charprop {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("script_charprop").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for script_charprop {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for script_charprop {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<script_charprop>()) == 0 }
    }
}
impl ::core::cmp::Eq for script_charprop {}
impl ::core::default::Default for script_charprop {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct script_glyphprop {
    pub sva: SCRIPT_VISATTR,
    pub reserved: u16,
}
impl ::core::marker::Copy for script_glyphprop {}
impl ::core::clone::Clone for script_glyphprop {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for script_glyphprop {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("script_glyphprop").field("sva", &self.sva).field("reserved", &self.reserved).finish()
    }
}
unsafe impl ::windows::core::Abi for script_glyphprop {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for script_glyphprop {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<script_glyphprop>()) == 0 }
    }
}
impl ::core::cmp::Eq for script_glyphprop {}
impl ::core::default::Default for script_glyphprop {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct tagMLCONVCHARF(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLCONVCHARF_AUTODETECT: tagMLCONVCHARF = tagMLCONVCHARF(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLCONVCHARF_ENTITIZE: tagMLCONVCHARF = tagMLCONVCHARF(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLCONVCHARF_NCR_ENTITIZE: tagMLCONVCHARF = tagMLCONVCHARF(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLCONVCHARF_NAME_ENTITIZE: tagMLCONVCHARF = tagMLCONVCHARF(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLCONVCHARF_USEDEFCHAR: tagMLCONVCHARF = tagMLCONVCHARF(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLCONVCHARF_NOBESTFITCHARS: tagMLCONVCHARF = tagMLCONVCHARF(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLCONVCHARF_DETECTJPN: tagMLCONVCHARF = tagMLCONVCHARF(32i32);
impl ::core::marker::Copy for tagMLCONVCHARF {}
impl ::core::clone::Clone for tagMLCONVCHARF {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for tagMLCONVCHARF {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for tagMLCONVCHARF {
    type Abi = Self;
}
impl ::core::fmt::Debug for tagMLCONVCHARF {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("tagMLCONVCHARF").field(&self.0).finish()
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[repr(transparent)]
#[derive(:: core :: cmp :: PartialEq, :: core :: cmp :: Eq)]
pub struct tagMLCPF(pub i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTF_MAILNEWS: tagMLCPF = tagMLCPF(1i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTF_BROWSER: tagMLCPF = tagMLCPF(2i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTF_VALID: tagMLCPF = tagMLCPF(4i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTF_VALID_NLS: tagMLCPF = tagMLCPF(8i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTF_PRESERVE_ORDER: tagMLCPF = tagMLCPF(16i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTF_PREFERRED_ONLY: tagMLCPF = tagMLCPF(32i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTF_FILTER_SPECIALCHAR: tagMLCPF = tagMLCPF(64i32);
#[doc = "*Required features: 'Win32_Globalization'*"]
pub const MLDETECTF_EURO_UTF8: tagMLCPF = tagMLCPF(128i32);
impl ::core::marker::Copy for tagMLCPF {}
impl ::core::clone::Clone for tagMLCPF {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for tagMLCPF {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for tagMLCPF {
    type Abi = Self;
}
impl ::core::fmt::Debug for tagMLCPF {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("tagMLCPF").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct tagSCRIPFONTINFO {
    pub scripts: i64,
    pub wszFont: [u16; 32],
}
impl ::core::marker::Copy for tagSCRIPFONTINFO {}
impl ::core::clone::Clone for tagSCRIPFONTINFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for tagSCRIPFONTINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("tagSCRIPFONTINFO").field("scripts", &self.scripts).field("wszFont", &self.wszFont).finish()
    }
}
unsafe impl ::windows::core::Abi for tagSCRIPFONTINFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for tagSCRIPFONTINFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<tagSCRIPFONTINFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for tagSCRIPFONTINFO {}
impl ::core::default::Default for tagSCRIPFONTINFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: 'Win32_Globalization'*"]
pub struct textrange_properties {
    pub potfRecords: *mut opentype_feature_record,
    pub cotfRecords: i32,
}
impl ::core::marker::Copy for textrange_properties {}
impl ::core::clone::Clone for textrange_properties {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for textrange_properties {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("textrange_properties").field("potfRecords", &self.potfRecords).field("cotfRecords", &self.cotfRecords).finish()
    }
}
unsafe impl ::windows::core::Abi for textrange_properties {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for textrange_properties {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<textrange_properties>()) == 0 }
    }
}
impl ::core::cmp::Eq for textrange_properties {}
impl ::core::default::Default for textrange_properties {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_UCharsToChars<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(us: *const u16, cs: Param1, length: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_UCharsToChars(us: *const u16, cs: ::windows::core::PCSTR, length: i32);
        }
        u_UCharsToChars(::core::mem::transmute(us), cs.into_param().abi(), ::core::mem::transmute(length))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_austrcpy<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dst: Param0, src: *const u16) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_austrcpy(dst: ::windows::core::PCSTR, src: *const u16) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(u_austrcpy(dst.into_param().abi(), ::core::mem::transmute(src)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_austrncpy<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dst: Param0, src: *const u16, n: i32) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_austrncpy(dst: ::windows::core::PCSTR, src: *const u16, n: i32) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(u_austrncpy(dst.into_param().abi(), ::core::mem::transmute(src), ::core::mem::transmute(n)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_catclose(catd: *mut UResourceBundle) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_catclose(catd: *mut UResourceBundle);
        }
        u_catclose(::core::mem::transmute(catd))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_catgets(catd: *mut UResourceBundle, set_num: i32, msg_num: i32, s: *const u16, len: *mut i32, ec: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_catgets(catd: *mut UResourceBundle, set_num: i32, msg_num: i32, s: *const u16, len: *mut i32, ec: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(u_catgets(::core::mem::transmute(catd), ::core::mem::transmute(set_num), ::core::mem::transmute(msg_num), ::core::mem::transmute(s), ::core::mem::transmute(len), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_catopen<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(name: Param0, locale: Param1, ec: *mut UErrorCode) -> *mut UResourceBundle {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_catopen(name: ::windows::core::PCSTR, locale: ::windows::core::PCSTR, ec: *mut UErrorCode) -> *mut UResourceBundle;
        }
        ::core::mem::transmute(u_catopen(name.into_param().abi(), locale.into_param().abi(), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_charAge(c: i32, versionarray: *mut u8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_charAge(c: i32, versionarray: *mut u8);
        }
        u_charAge(::core::mem::transmute(c), ::core::mem::transmute(versionarray))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_charDigitValue(c: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_charDigitValue(c: i32) -> i32;
        }
        ::core::mem::transmute(u_charDigitValue(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_charDirection(c: i32) -> UCharDirection {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_charDirection(c: i32) -> UCharDirection;
        }
        ::core::mem::transmute(u_charDirection(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_charFromName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(namechoice: UCharNameChoice, name: Param1, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_charFromName(namechoice: UCharNameChoice, name: ::windows::core::PCSTR, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_charFromName(::core::mem::transmute(namechoice), name.into_param().abi(), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_charMirror(c: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_charMirror(c: i32) -> i32;
        }
        ::core::mem::transmute(u_charMirror(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_charName<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(code: i32, namechoice: UCharNameChoice, buffer: Param2, bufferlength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_charName(code: i32, namechoice: UCharNameChoice, buffer: ::windows::core::PCSTR, bufferlength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_charName(::core::mem::transmute(code), ::core::mem::transmute(namechoice), buffer.into_param().abi(), ::core::mem::transmute(bufferlength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_charType(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_charType(c: i32) -> i8;
        }
        ::core::mem::transmute(u_charType(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_charsToUChars<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(cs: Param0, us: *mut u16, length: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_charsToUChars(cs: ::windows::core::PCSTR, us: *mut u16, length: i32);
        }
        u_charsToUChars(cs.into_param().abi(), ::core::mem::transmute(us), ::core::mem::transmute(length))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_cleanup() {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_cleanup();
        }
        u_cleanup()
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_countChar32(s: *const u16, length: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_countChar32(s: *const u16, length: i32) -> i32;
        }
        ::core::mem::transmute(u_countChar32(::core::mem::transmute(s), ::core::mem::transmute(length)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_digit(ch: i32, radix: i8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_digit(ch: i32, radix: i8) -> i32;
        }
        ::core::mem::transmute(u_digit(::core::mem::transmute(ch), ::core::mem::transmute(radix)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_enumCharNames(start: i32, limit: i32, r#fn: *mut UEnumCharNamesFn, context: *mut ::core::ffi::c_void, namechoice: UCharNameChoice, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_enumCharNames(start: i32, limit: i32, r#fn: *mut ::windows::core::RawPtr, context: *mut ::core::ffi::c_void, namechoice: UCharNameChoice, perrorcode: *mut UErrorCode);
        }
        u_enumCharNames(::core::mem::transmute(start), ::core::mem::transmute(limit), ::core::mem::transmute(r#fn), ::core::mem::transmute(context), ::core::mem::transmute(namechoice), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_enumCharTypes(enumrange: *mut UCharEnumTypeRange, context: *const ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_enumCharTypes(enumrange: *mut ::windows::core::RawPtr, context: *const ::core::ffi::c_void);
        }
        u_enumCharTypes(::core::mem::transmute(enumrange), ::core::mem::transmute(context))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_errorName(code: UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_errorName(code: UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(u_errorName(::core::mem::transmute(code)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_foldCase(c: i32, options: u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_foldCase(c: i32, options: u32) -> i32;
        }
        ::core::mem::transmute(u_foldCase(::core::mem::transmute(c), ::core::mem::transmute(options)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_forDigit(digit: i32, radix: i8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_forDigit(digit: i32, radix: i8) -> i32;
        }
        ::core::mem::transmute(u_forDigit(::core::mem::transmute(digit), ::core::mem::transmute(radix)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_formatMessage<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, pattern: *const u16, patternlength: i32, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_formatMessage(locale: ::windows::core::PCSTR, pattern: *const u16, patternlength: i32, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_formatMessage(locale.into_param().abi(), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_formatMessageWithError<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, pattern: *const u16, patternlength: i32, result: *mut u16, resultlength: i32, parseerror: *mut UParseError, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_formatMessageWithError(locale: ::windows::core::PCSTR, pattern: *const u16, patternlength: i32, result: *mut u16, resultlength: i32, parseerror: *mut UParseError, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_formatMessageWithError(locale.into_param().abi(), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(parseerror), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getBidiPairedBracket(c: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getBidiPairedBracket(c: i32) -> i32;
        }
        ::core::mem::transmute(u_getBidiPairedBracket(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getBinaryPropertySet(property: UProperty, perrorcode: *mut UErrorCode) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getBinaryPropertySet(property: UProperty, perrorcode: *mut UErrorCode) -> *mut USet;
        }
        ::core::mem::transmute(u_getBinaryPropertySet(::core::mem::transmute(property), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getCombiningClass(c: i32) -> u8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getCombiningClass(c: i32) -> u8;
        }
        ::core::mem::transmute(u_getCombiningClass(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getDataVersion(dataversionfillin: *mut u8, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getDataVersion(dataversionfillin: *mut u8, status: *mut UErrorCode);
        }
        u_getDataVersion(::core::mem::transmute(dataversionfillin), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getFC_NFKC_Closure(c: i32, dest: *mut u16, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getFC_NFKC_Closure(c: i32, dest: *mut u16, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_getFC_NFKC_Closure(::core::mem::transmute(c), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getIntPropertyMap(property: UProperty, perrorcode: *mut UErrorCode) -> *mut UCPMap {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getIntPropertyMap(property: UProperty, perrorcode: *mut UErrorCode) -> *mut UCPMap;
        }
        ::core::mem::transmute(u_getIntPropertyMap(::core::mem::transmute(property), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getIntPropertyMaxValue(which: UProperty) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getIntPropertyMaxValue(which: UProperty) -> i32;
        }
        ::core::mem::transmute(u_getIntPropertyMaxValue(::core::mem::transmute(which)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getIntPropertyMinValue(which: UProperty) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getIntPropertyMinValue(which: UProperty) -> i32;
        }
        ::core::mem::transmute(u_getIntPropertyMinValue(::core::mem::transmute(which)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getIntPropertyValue(c: i32, which: UProperty) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getIntPropertyValue(c: i32, which: UProperty) -> i32;
        }
        ::core::mem::transmute(u_getIntPropertyValue(::core::mem::transmute(c), ::core::mem::transmute(which)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getNumericValue(c: i32) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getNumericValue(c: i32) -> f64;
        }
        ::core::mem::transmute(u_getNumericValue(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getPropertyEnum<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(alias: Param0) -> UProperty {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getPropertyEnum(alias: ::windows::core::PCSTR) -> UProperty;
        }
        ::core::mem::transmute(u_getPropertyEnum(alias.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getPropertyName(property: UProperty, namechoice: UPropertyNameChoice) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getPropertyName(property: UProperty, namechoice: UPropertyNameChoice) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(u_getPropertyName(::core::mem::transmute(property), ::core::mem::transmute(namechoice)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getPropertyValueEnum<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(property: UProperty, alias: Param1) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getPropertyValueEnum(property: UProperty, alias: ::windows::core::PCSTR) -> i32;
        }
        ::core::mem::transmute(u_getPropertyValueEnum(::core::mem::transmute(property), alias.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getPropertyValueName(property: UProperty, value: i32, namechoice: UPropertyNameChoice) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getPropertyValueName(property: UProperty, value: i32, namechoice: UPropertyNameChoice) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(u_getPropertyValueName(::core::mem::transmute(property), ::core::mem::transmute(value), ::core::mem::transmute(namechoice)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getUnicodeVersion(versionarray: *mut u8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getUnicodeVersion(versionarray: *mut u8);
        }
        u_getUnicodeVersion(::core::mem::transmute(versionarray))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_getVersion(versionarray: *mut u8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_getVersion(versionarray: *mut u8);
        }
        u_getVersion(::core::mem::transmute(versionarray))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_hasBinaryProperty(c: i32, which: UProperty) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_hasBinaryProperty(c: i32, which: UProperty) -> i8;
        }
        ::core::mem::transmute(u_hasBinaryProperty(::core::mem::transmute(c), ::core::mem::transmute(which)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_init(status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_init(status: *mut UErrorCode);
        }
        u_init(::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isIDIgnorable(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isIDIgnorable(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isIDIgnorable(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isIDPart(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isIDPart(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isIDPart(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isIDStart(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isIDStart(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isIDStart(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isISOControl(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isISOControl(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isISOControl(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isJavaIDPart(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isJavaIDPart(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isJavaIDPart(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isJavaIDStart(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isJavaIDStart(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isJavaIDStart(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isJavaSpaceChar(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isJavaSpaceChar(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isJavaSpaceChar(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isMirrored(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isMirrored(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isMirrored(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isUAlphabetic(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isUAlphabetic(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isUAlphabetic(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isULowercase(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isULowercase(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isULowercase(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isUUppercase(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isUUppercase(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isUUppercase(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isUWhiteSpace(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isUWhiteSpace(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isUWhiteSpace(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isWhitespace(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isWhitespace(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isWhitespace(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isalnum(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isalnum(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isalnum(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isalpha(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isalpha(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isalpha(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isbase(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isbase(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isbase(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isblank(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isblank(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isblank(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_iscntrl(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_iscntrl(c: i32) -> i8;
        }
        ::core::mem::transmute(u_iscntrl(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isdefined(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isdefined(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isdefined(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isdigit(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isdigit(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isdigit(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isgraph(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isgraph(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isgraph(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_islower(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_islower(c: i32) -> i8;
        }
        ::core::mem::transmute(u_islower(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isprint(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isprint(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isprint(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_ispunct(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_ispunct(c: i32) -> i8;
        }
        ::core::mem::transmute(u_ispunct(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isspace(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isspace(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isspace(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_istitle(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_istitle(c: i32) -> i8;
        }
        ::core::mem::transmute(u_istitle(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isupper(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isupper(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isupper(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_isxdigit(c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_isxdigit(c: i32) -> i8;
        }
        ::core::mem::transmute(u_isxdigit(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_memcasecmp(s1: *const u16, s2: *const u16, length: i32, options: u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_memcasecmp(s1: *const u16, s2: *const u16, length: i32, options: u32) -> i32;
        }
        ::core::mem::transmute(u_memcasecmp(::core::mem::transmute(s1), ::core::mem::transmute(s2), ::core::mem::transmute(length), ::core::mem::transmute(options)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_memchr(s: *const u16, c: u16, count: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_memchr(s: *const u16, c: u16, count: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_memchr(::core::mem::transmute(s), ::core::mem::transmute(c), ::core::mem::transmute(count)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_memchr32(s: *const u16, c: i32, count: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_memchr32(s: *const u16, c: i32, count: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_memchr32(::core::mem::transmute(s), ::core::mem::transmute(c), ::core::mem::transmute(count)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_memcmp(buf1: *const u16, buf2: *const u16, count: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_memcmp(buf1: *const u16, buf2: *const u16, count: i32) -> i32;
        }
        ::core::mem::transmute(u_memcmp(::core::mem::transmute(buf1), ::core::mem::transmute(buf2), ::core::mem::transmute(count)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_memcmpCodePointOrder(s1: *const u16, s2: *const u16, count: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_memcmpCodePointOrder(s1: *const u16, s2: *const u16, count: i32) -> i32;
        }
        ::core::mem::transmute(u_memcmpCodePointOrder(::core::mem::transmute(s1), ::core::mem::transmute(s2), ::core::mem::transmute(count)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_memcpy(dest: *mut u16, src: *const u16, count: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_memcpy(dest: *mut u16, src: *const u16, count: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_memcpy(::core::mem::transmute(dest), ::core::mem::transmute(src), ::core::mem::transmute(count)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_memmove(dest: *mut u16, src: *const u16, count: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_memmove(dest: *mut u16, src: *const u16, count: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_memmove(::core::mem::transmute(dest), ::core::mem::transmute(src), ::core::mem::transmute(count)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_memrchr(s: *const u16, c: u16, count: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_memrchr(s: *const u16, c: u16, count: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_memrchr(::core::mem::transmute(s), ::core::mem::transmute(c), ::core::mem::transmute(count)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_memrchr32(s: *const u16, c: i32, count: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_memrchr32(s: *const u16, c: i32, count: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_memrchr32(::core::mem::transmute(s), ::core::mem::transmute(c), ::core::mem::transmute(count)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_memset(dest: *mut u16, c: u16, count: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_memset(dest: *mut u16, c: u16, count: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_memset(::core::mem::transmute(dest), ::core::mem::transmute(c), ::core::mem::transmute(count)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_parseMessage<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, pattern: *const u16, patternlength: i32, source: *const u16, sourcelength: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_parseMessage(locale: ::windows::core::PCSTR, pattern: *const u16, patternlength: i32, source: *const u16, sourcelength: i32, status: *mut UErrorCode);
        }
        u_parseMessage(locale.into_param().abi(), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_parseMessageWithError<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, pattern: *const u16, patternlength: i32, source: *const u16, sourcelength: i32, parseerror: *mut UParseError, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_parseMessageWithError(locale: ::windows::core::PCSTR, pattern: *const u16, patternlength: i32, source: *const u16, sourcelength: i32, parseerror: *mut UParseError, status: *mut UErrorCode);
        }
        u_parseMessageWithError(locale.into_param().abi(), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(parseerror), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_setMemoryFunctions(context: *const ::core::ffi::c_void, a: *mut UMemAllocFn, r: *mut UMemReallocFn, f: *mut UMemFreeFn, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_setMemoryFunctions(context: *const ::core::ffi::c_void, a: *mut ::windows::core::RawPtr, r: *mut ::windows::core::RawPtr, f: *mut ::windows::core::RawPtr, status: *mut UErrorCode);
        }
        u_setMemoryFunctions(::core::mem::transmute(context), ::core::mem::transmute(a), ::core::mem::transmute(r), ::core::mem::transmute(f), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_shapeArabic(source: *const u16, sourcelength: i32, dest: *mut u16, destsize: i32, options: u32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_shapeArabic(source: *const u16, sourcelength: i32, dest: *mut u16, destsize: i32, options: u32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_shapeArabic(::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(dest), ::core::mem::transmute(destsize), ::core::mem::transmute(options), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strCaseCompare(s1: *const u16, length1: i32, s2: *const u16, length2: i32, options: u32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strCaseCompare(s1: *const u16, length1: i32, s2: *const u16, length2: i32, options: u32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_strCaseCompare(::core::mem::transmute(s1), ::core::mem::transmute(length1), ::core::mem::transmute(s2), ::core::mem::transmute(length2), ::core::mem::transmute(options), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strCompare(s1: *const u16, length1: i32, s2: *const u16, length2: i32, codepointorder: i8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strCompare(s1: *const u16, length1: i32, s2: *const u16, length2: i32, codepointorder: i8) -> i32;
        }
        ::core::mem::transmute(u_strCompare(::core::mem::transmute(s1), ::core::mem::transmute(length1), ::core::mem::transmute(s2), ::core::mem::transmute(length2), ::core::mem::transmute(codepointorder)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strCompareIter(iter1: *mut UCharIterator, iter2: *mut UCharIterator, codepointorder: i8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strCompareIter(iter1: *mut UCharIterator, iter2: *mut UCharIterator, codepointorder: i8) -> i32;
        }
        ::core::mem::transmute(u_strCompareIter(::core::mem::transmute(iter1), ::core::mem::transmute(iter2), ::core::mem::transmute(codepointorder)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strFindFirst(s: *const u16, length: i32, substring: *const u16, sublength: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strFindFirst(s: *const u16, length: i32, substring: *const u16, sublength: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_strFindFirst(::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(substring), ::core::mem::transmute(sublength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strFindLast(s: *const u16, length: i32, substring: *const u16, sublength: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strFindLast(s: *const u16, length: i32, substring: *const u16, sublength: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_strFindLast(::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(substring), ::core::mem::transmute(sublength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strFoldCase(dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, options: u32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strFoldCase(dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, options: u32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_strFoldCase(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(options), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strFromJavaModifiedUTF8WithSub<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: Param3, srclength: i32, subchar: i32, pnumsubstitutions: *mut i32, perrorcode: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strFromJavaModifiedUTF8WithSub(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: ::windows::core::PCSTR, srclength: i32, subchar: i32, pnumsubstitutions: *mut i32, perrorcode: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(u_strFromJavaModifiedUTF8WithSub(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), src.into_param().abi(), ::core::mem::transmute(srclength), ::core::mem::transmute(subchar), ::core::mem::transmute(pnumsubstitutions), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strFromUTF32(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: *const i32, srclength: i32, perrorcode: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strFromUTF32(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: *const i32, srclength: i32, perrorcode: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(u_strFromUTF32(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strFromUTF32WithSub(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: *const i32, srclength: i32, subchar: i32, pnumsubstitutions: *mut i32, perrorcode: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strFromUTF32WithSub(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: *const i32, srclength: i32, subchar: i32, pnumsubstitutions: *mut i32, perrorcode: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(u_strFromUTF32WithSub(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(subchar), ::core::mem::transmute(pnumsubstitutions), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strFromUTF8<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: Param3, srclength: i32, perrorcode: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strFromUTF8(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: ::windows::core::PCSTR, srclength: i32, perrorcode: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(u_strFromUTF8(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), src.into_param().abi(), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strFromUTF8Lenient<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: Param3, srclength: i32, perrorcode: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strFromUTF8Lenient(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: ::windows::core::PCSTR, srclength: i32, perrorcode: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(u_strFromUTF8Lenient(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), src.into_param().abi(), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strFromUTF8WithSub<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: Param3, srclength: i32, subchar: i32, pnumsubstitutions: *mut i32, perrorcode: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strFromUTF8WithSub(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: ::windows::core::PCSTR, srclength: i32, subchar: i32, pnumsubstitutions: *mut i32, perrorcode: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(u_strFromUTF8WithSub(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), src.into_param().abi(), ::core::mem::transmute(srclength), ::core::mem::transmute(subchar), ::core::mem::transmute(pnumsubstitutions), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strFromWCS<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: Param3, srclength: i32, perrorcode: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strFromWCS(dest: *mut u16, destcapacity: i32, pdestlength: *mut i32, src: ::windows::core::PCWSTR, srclength: i32, perrorcode: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(u_strFromWCS(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), src.into_param().abi(), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strHasMoreChar32Than(s: *const u16, length: i32, number: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strHasMoreChar32Than(s: *const u16, length: i32, number: i32) -> i8;
        }
        ::core::mem::transmute(u_strHasMoreChar32Than(::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(number)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strToJavaModifiedUTF8<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dest: Param0, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strToJavaModifiedUTF8(dest: ::windows::core::PCSTR, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(u_strToJavaModifiedUTF8(dest.into_param().abi(), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strToLower<'a, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, locale: Param4, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strToLower(dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, locale: ::windows::core::PCSTR, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_strToLower(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(src), ::core::mem::transmute(srclength), locale.into_param().abi(), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strToTitle<'a, Param5: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, titleiter: *mut UBreakIterator, locale: Param5, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strToTitle(dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, titleiter: *mut UBreakIterator, locale: ::windows::core::PCSTR, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_strToTitle(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(titleiter), locale.into_param().abi(), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strToUTF32(dest: *mut i32, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> *mut i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strToUTF32(dest: *mut i32, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> *mut i32;
        }
        ::core::mem::transmute(u_strToUTF32(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strToUTF32WithSub(dest: *mut i32, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, subchar: i32, pnumsubstitutions: *mut i32, perrorcode: *mut UErrorCode) -> *mut i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strToUTF32WithSub(dest: *mut i32, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, subchar: i32, pnumsubstitutions: *mut i32, perrorcode: *mut UErrorCode) -> *mut i32;
        }
        ::core::mem::transmute(u_strToUTF32WithSub(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(subchar), ::core::mem::transmute(pnumsubstitutions), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strToUTF8<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dest: Param0, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strToUTF8(dest: ::windows::core::PCSTR, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(u_strToUTF8(dest.into_param().abi(), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strToUTF8WithSub<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dest: Param0, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, subchar: i32, pnumsubstitutions: *mut i32, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strToUTF8WithSub(dest: ::windows::core::PCSTR, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, subchar: i32, pnumsubstitutions: *mut i32, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(u_strToUTF8WithSub(dest.into_param().abi(), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(subchar), ::core::mem::transmute(pnumsubstitutions), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strToUpper<'a, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, locale: Param4, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strToUpper(dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, locale: ::windows::core::PCSTR, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_strToUpper(::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(src), ::core::mem::transmute(srclength), locale.into_param().abi(), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strToWCS<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCWSTR>>(dest: Param0, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> ::windows::core::PWSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strToWCS(dest: ::windows::core::PCWSTR, destcapacity: i32, pdestlength: *mut i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> ::windows::core::PWSTR;
        }
        ::core::mem::transmute(u_strToWCS(dest.into_param().abi(), ::core::mem::transmute(destcapacity), ::core::mem::transmute(pdestlength), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strcasecmp(s1: *const u16, s2: *const u16, options: u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strcasecmp(s1: *const u16, s2: *const u16, options: u32) -> i32;
        }
        ::core::mem::transmute(u_strcasecmp(::core::mem::transmute(s1), ::core::mem::transmute(s2), ::core::mem::transmute(options)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strcat(dst: *mut u16, src: *const u16) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strcat(dst: *mut u16, src: *const u16) -> *mut u16;
        }
        ::core::mem::transmute(u_strcat(::core::mem::transmute(dst), ::core::mem::transmute(src)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strchr(s: *const u16, c: u16) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strchr(s: *const u16, c: u16) -> *mut u16;
        }
        ::core::mem::transmute(u_strchr(::core::mem::transmute(s), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strchr32(s: *const u16, c: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strchr32(s: *const u16, c: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_strchr32(::core::mem::transmute(s), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strcmp(s1: *const u16, s2: *const u16) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strcmp(s1: *const u16, s2: *const u16) -> i32;
        }
        ::core::mem::transmute(u_strcmp(::core::mem::transmute(s1), ::core::mem::transmute(s2)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strcmpCodePointOrder(s1: *const u16, s2: *const u16) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strcmpCodePointOrder(s1: *const u16, s2: *const u16) -> i32;
        }
        ::core::mem::transmute(u_strcmpCodePointOrder(::core::mem::transmute(s1), ::core::mem::transmute(s2)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strcpy(dst: *mut u16, src: *const u16) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strcpy(dst: *mut u16, src: *const u16) -> *mut u16;
        }
        ::core::mem::transmute(u_strcpy(::core::mem::transmute(dst), ::core::mem::transmute(src)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strcspn(string: *const u16, matchset: *const u16) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strcspn(string: *const u16, matchset: *const u16) -> i32;
        }
        ::core::mem::transmute(u_strcspn(::core::mem::transmute(string), ::core::mem::transmute(matchset)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strlen(s: *const u16) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strlen(s: *const u16) -> i32;
        }
        ::core::mem::transmute(u_strlen(::core::mem::transmute(s)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strncasecmp(s1: *const u16, s2: *const u16, n: i32, options: u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strncasecmp(s1: *const u16, s2: *const u16, n: i32, options: u32) -> i32;
        }
        ::core::mem::transmute(u_strncasecmp(::core::mem::transmute(s1), ::core::mem::transmute(s2), ::core::mem::transmute(n), ::core::mem::transmute(options)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strncat(dst: *mut u16, src: *const u16, n: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strncat(dst: *mut u16, src: *const u16, n: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_strncat(::core::mem::transmute(dst), ::core::mem::transmute(src), ::core::mem::transmute(n)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strncmp(ucs1: *const u16, ucs2: *const u16, n: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strncmp(ucs1: *const u16, ucs2: *const u16, n: i32) -> i32;
        }
        ::core::mem::transmute(u_strncmp(::core::mem::transmute(ucs1), ::core::mem::transmute(ucs2), ::core::mem::transmute(n)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strncmpCodePointOrder(s1: *const u16, s2: *const u16, n: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strncmpCodePointOrder(s1: *const u16, s2: *const u16, n: i32) -> i32;
        }
        ::core::mem::transmute(u_strncmpCodePointOrder(::core::mem::transmute(s1), ::core::mem::transmute(s2), ::core::mem::transmute(n)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strncpy(dst: *mut u16, src: *const u16, n: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strncpy(dst: *mut u16, src: *const u16, n: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_strncpy(::core::mem::transmute(dst), ::core::mem::transmute(src), ::core::mem::transmute(n)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strpbrk(string: *const u16, matchset: *const u16) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strpbrk(string: *const u16, matchset: *const u16) -> *mut u16;
        }
        ::core::mem::transmute(u_strpbrk(::core::mem::transmute(string), ::core::mem::transmute(matchset)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strrchr(s: *const u16, c: u16) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strrchr(s: *const u16, c: u16) -> *mut u16;
        }
        ::core::mem::transmute(u_strrchr(::core::mem::transmute(s), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strrchr32(s: *const u16, c: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strrchr32(s: *const u16, c: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_strrchr32(::core::mem::transmute(s), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strrstr(s: *const u16, substring: *const u16) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strrstr(s: *const u16, substring: *const u16) -> *mut u16;
        }
        ::core::mem::transmute(u_strrstr(::core::mem::transmute(s), ::core::mem::transmute(substring)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strspn(string: *const u16, matchset: *const u16) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strspn(string: *const u16, matchset: *const u16) -> i32;
        }
        ::core::mem::transmute(u_strspn(::core::mem::transmute(string), ::core::mem::transmute(matchset)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strstr(s: *const u16, substring: *const u16) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strstr(s: *const u16, substring: *const u16) -> *mut u16;
        }
        ::core::mem::transmute(u_strstr(::core::mem::transmute(s), ::core::mem::transmute(substring)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_strtok_r(src: *mut u16, delim: *const u16, savestate: *mut *mut u16) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_strtok_r(src: *mut u16, delim: *const u16, savestate: *mut *mut u16) -> *mut u16;
        }
        ::core::mem::transmute(u_strtok_r(::core::mem::transmute(src), ::core::mem::transmute(delim), ::core::mem::transmute(savestate)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_tolower(c: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_tolower(c: i32) -> i32;
        }
        ::core::mem::transmute(u_tolower(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_totitle(c: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_totitle(c: i32) -> i32;
        }
        ::core::mem::transmute(u_totitle(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_toupper(c: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_toupper(c: i32) -> i32;
        }
        ::core::mem::transmute(u_toupper(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_uastrcpy<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dst: *mut u16, src: Param1) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_uastrcpy(dst: *mut u16, src: ::windows::core::PCSTR) -> *mut u16;
        }
        ::core::mem::transmute(u_uastrcpy(::core::mem::transmute(dst), src.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_uastrncpy<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(dst: *mut u16, src: Param1, n: i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_uastrncpy(dst: *mut u16, src: ::windows::core::PCSTR, n: i32) -> *mut u16;
        }
        ::core::mem::transmute(u_uastrncpy(::core::mem::transmute(dst), src.into_param().abi(), ::core::mem::transmute(n)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_unescape<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(src: Param0, dest: *mut u16, destcapacity: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_unescape(src: ::windows::core::PCSTR, dest: *mut u16, destcapacity: i32) -> i32;
        }
        ::core::mem::transmute(u_unescape(src.into_param().abi(), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_unescapeAt(charat: UNESCAPE_CHAR_AT, offset: *mut i32, length: i32, context: *mut ::core::ffi::c_void) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_unescapeAt(charat: ::windows::core::RawPtr, offset: *mut i32, length: i32, context: *mut ::core::ffi::c_void) -> i32;
        }
        ::core::mem::transmute(u_unescapeAt(::core::mem::transmute(charat), ::core::mem::transmute(offset), ::core::mem::transmute(length), ::core::mem::transmute(context)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_versionFromString<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(versionarray: *mut u8, versionstring: Param1) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_versionFromString(versionarray: *mut u8, versionstring: ::windows::core::PCSTR);
        }
        u_versionFromString(::core::mem::transmute(versionarray), versionstring.into_param().abi())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_versionFromUString(versionarray: *mut u8, versionstring: *const u16) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_versionFromUString(versionarray: *mut u8, versionstring: *const u16);
        }
        u_versionFromUString(::core::mem::transmute(versionarray), ::core::mem::transmute(versionstring))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_versionToString<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(versionarray: *const u8, versionstring: Param1) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_versionToString(versionarray: *const u8, versionstring: ::windows::core::PCSTR);
        }
        u_versionToString(::core::mem::transmute(versionarray), versionstring.into_param().abi())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_vformatMessage<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, pattern: *const u16, patternlength: i32, result: *mut u16, resultlength: i32, ap: *mut i8, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_vformatMessage(locale: ::windows::core::PCSTR, pattern: *const u16, patternlength: i32, result: *mut u16, resultlength: i32, ap: *mut i8, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_vformatMessage(locale.into_param().abi(), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(ap), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_vformatMessageWithError<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, pattern: *const u16, patternlength: i32, result: *mut u16, resultlength: i32, parseerror: *mut UParseError, ap: *mut i8, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_vformatMessageWithError(locale: ::windows::core::PCSTR, pattern: *const u16, patternlength: i32, result: *mut u16, resultlength: i32, parseerror: *mut UParseError, ap: *mut i8, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(u_vformatMessageWithError(locale.into_param().abi(), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(parseerror), ::core::mem::transmute(ap), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_vparseMessage<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, pattern: *const u16, patternlength: i32, source: *const u16, sourcelength: i32, ap: *mut i8, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_vparseMessage(locale: ::windows::core::PCSTR, pattern: *const u16, patternlength: i32, source: *const u16, sourcelength: i32, ap: *mut i8, status: *mut UErrorCode);
        }
        u_vparseMessage(locale.into_param().abi(), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(ap), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn u_vparseMessageWithError<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, pattern: *const u16, patternlength: i32, source: *const u16, sourcelength: i32, ap: *mut i8, parseerror: *mut UParseError, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn u_vparseMessageWithError(locale: ::windows::core::PCSTR, pattern: *const u16, patternlength: i32, source: *const u16, sourcelength: i32, ap: *mut i8, parseerror: *mut UParseError, status: *mut UErrorCode);
        }
        u_vparseMessageWithError(locale.into_param().abi(), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(ap), ::core::mem::transmute(parseerror), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_close(pbidi: *mut UBiDi) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_close(pbidi: *mut UBiDi);
        }
        ubidi_close(::core::mem::transmute(pbidi))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_countParagraphs(pbidi: *mut UBiDi) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_countParagraphs(pbidi: *mut UBiDi) -> i32;
        }
        ::core::mem::transmute(ubidi_countParagraphs(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_countRuns(pbidi: *mut UBiDi, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_countRuns(pbidi: *mut UBiDi, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ubidi_countRuns(::core::mem::transmute(pbidi), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getBaseDirection(text: *const u16, length: i32) -> UBiDiDirection {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getBaseDirection(text: *const u16, length: i32) -> UBiDiDirection;
        }
        ::core::mem::transmute(ubidi_getBaseDirection(::core::mem::transmute(text), ::core::mem::transmute(length)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getClassCallback(pbidi: *mut UBiDi, r#fn: *mut UBiDiClassCallback, context: *const *const ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getClassCallback(pbidi: *mut UBiDi, r#fn: *mut ::windows::core::RawPtr, context: *const *const ::core::ffi::c_void);
        }
        ubidi_getClassCallback(::core::mem::transmute(pbidi), ::core::mem::transmute(r#fn), ::core::mem::transmute(context))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getCustomizedClass(pbidi: *mut UBiDi, c: i32) -> UCharDirection {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getCustomizedClass(pbidi: *mut UBiDi, c: i32) -> UCharDirection;
        }
        ::core::mem::transmute(ubidi_getCustomizedClass(::core::mem::transmute(pbidi), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getDirection(pbidi: *const UBiDi) -> UBiDiDirection {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getDirection(pbidi: *const UBiDi) -> UBiDiDirection;
        }
        ::core::mem::transmute(ubidi_getDirection(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getLength(pbidi: *const UBiDi) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getLength(pbidi: *const UBiDi) -> i32;
        }
        ::core::mem::transmute(ubidi_getLength(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getLevelAt(pbidi: *const UBiDi, charindex: i32) -> u8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getLevelAt(pbidi: *const UBiDi, charindex: i32) -> u8;
        }
        ::core::mem::transmute(ubidi_getLevelAt(::core::mem::transmute(pbidi), ::core::mem::transmute(charindex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getLevels(pbidi: *mut UBiDi, perrorcode: *mut UErrorCode) -> *mut u8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getLevels(pbidi: *mut UBiDi, perrorcode: *mut UErrorCode) -> *mut u8;
        }
        ::core::mem::transmute(ubidi_getLevels(::core::mem::transmute(pbidi), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getLogicalIndex(pbidi: *mut UBiDi, visualindex: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getLogicalIndex(pbidi: *mut UBiDi, visualindex: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ubidi_getLogicalIndex(::core::mem::transmute(pbidi), ::core::mem::transmute(visualindex), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getLogicalMap(pbidi: *mut UBiDi, indexmap: *mut i32, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getLogicalMap(pbidi: *mut UBiDi, indexmap: *mut i32, perrorcode: *mut UErrorCode);
        }
        ubidi_getLogicalMap(::core::mem::transmute(pbidi), ::core::mem::transmute(indexmap), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getLogicalRun(pbidi: *const UBiDi, logicalposition: i32, plogicallimit: *mut i32, plevel: *mut u8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getLogicalRun(pbidi: *const UBiDi, logicalposition: i32, plogicallimit: *mut i32, plevel: *mut u8);
        }
        ubidi_getLogicalRun(::core::mem::transmute(pbidi), ::core::mem::transmute(logicalposition), ::core::mem::transmute(plogicallimit), ::core::mem::transmute(plevel))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getParaLevel(pbidi: *const UBiDi) -> u8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getParaLevel(pbidi: *const UBiDi) -> u8;
        }
        ::core::mem::transmute(ubidi_getParaLevel(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getParagraph(pbidi: *const UBiDi, charindex: i32, pparastart: *mut i32, pparalimit: *mut i32, pparalevel: *mut u8, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getParagraph(pbidi: *const UBiDi, charindex: i32, pparastart: *mut i32, pparalimit: *mut i32, pparalevel: *mut u8, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ubidi_getParagraph(::core::mem::transmute(pbidi), ::core::mem::transmute(charindex), ::core::mem::transmute(pparastart), ::core::mem::transmute(pparalimit), ::core::mem::transmute(pparalevel), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getParagraphByIndex(pbidi: *const UBiDi, paraindex: i32, pparastart: *mut i32, pparalimit: *mut i32, pparalevel: *mut u8, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getParagraphByIndex(pbidi: *const UBiDi, paraindex: i32, pparastart: *mut i32, pparalimit: *mut i32, pparalevel: *mut u8, perrorcode: *mut UErrorCode);
        }
        ubidi_getParagraphByIndex(::core::mem::transmute(pbidi), ::core::mem::transmute(paraindex), ::core::mem::transmute(pparastart), ::core::mem::transmute(pparalimit), ::core::mem::transmute(pparalevel), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getProcessedLength(pbidi: *const UBiDi) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getProcessedLength(pbidi: *const UBiDi) -> i32;
        }
        ::core::mem::transmute(ubidi_getProcessedLength(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getReorderingMode(pbidi: *mut UBiDi) -> UBiDiReorderingMode {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getReorderingMode(pbidi: *mut UBiDi) -> UBiDiReorderingMode;
        }
        ::core::mem::transmute(ubidi_getReorderingMode(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getReorderingOptions(pbidi: *mut UBiDi) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getReorderingOptions(pbidi: *mut UBiDi) -> u32;
        }
        ::core::mem::transmute(ubidi_getReorderingOptions(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getResultLength(pbidi: *const UBiDi) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getResultLength(pbidi: *const UBiDi) -> i32;
        }
        ::core::mem::transmute(ubidi_getResultLength(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getText(pbidi: *const UBiDi) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getText(pbidi: *const UBiDi) -> *mut u16;
        }
        ::core::mem::transmute(ubidi_getText(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getVisualIndex(pbidi: *mut UBiDi, logicalindex: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getVisualIndex(pbidi: *mut UBiDi, logicalindex: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ubidi_getVisualIndex(::core::mem::transmute(pbidi), ::core::mem::transmute(logicalindex), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getVisualMap(pbidi: *mut UBiDi, indexmap: *mut i32, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getVisualMap(pbidi: *mut UBiDi, indexmap: *mut i32, perrorcode: *mut UErrorCode);
        }
        ubidi_getVisualMap(::core::mem::transmute(pbidi), ::core::mem::transmute(indexmap), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_getVisualRun(pbidi: *mut UBiDi, runindex: i32, plogicalstart: *mut i32, plength: *mut i32) -> UBiDiDirection {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_getVisualRun(pbidi: *mut UBiDi, runindex: i32, plogicalstart: *mut i32, plength: *mut i32) -> UBiDiDirection;
        }
        ::core::mem::transmute(ubidi_getVisualRun(::core::mem::transmute(pbidi), ::core::mem::transmute(runindex), ::core::mem::transmute(plogicalstart), ::core::mem::transmute(plength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_invertMap(srcmap: *const i32, destmap: *mut i32, length: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_invertMap(srcmap: *const i32, destmap: *mut i32, length: i32);
        }
        ubidi_invertMap(::core::mem::transmute(srcmap), ::core::mem::transmute(destmap), ::core::mem::transmute(length))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_isInverse(pbidi: *mut UBiDi) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_isInverse(pbidi: *mut UBiDi) -> i8;
        }
        ::core::mem::transmute(ubidi_isInverse(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_isOrderParagraphsLTR(pbidi: *mut UBiDi) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_isOrderParagraphsLTR(pbidi: *mut UBiDi) -> i8;
        }
        ::core::mem::transmute(ubidi_isOrderParagraphsLTR(::core::mem::transmute(pbidi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_open() -> *mut UBiDi {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_open() -> *mut UBiDi;
        }
        ::core::mem::transmute(ubidi_open())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_openSized(maxlength: i32, maxruncount: i32, perrorcode: *mut UErrorCode) -> *mut UBiDi {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_openSized(maxlength: i32, maxruncount: i32, perrorcode: *mut UErrorCode) -> *mut UBiDi;
        }
        ::core::mem::transmute(ubidi_openSized(::core::mem::transmute(maxlength), ::core::mem::transmute(maxruncount), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_orderParagraphsLTR(pbidi: *mut UBiDi, orderparagraphsltr: i8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_orderParagraphsLTR(pbidi: *mut UBiDi, orderparagraphsltr: i8);
        }
        ubidi_orderParagraphsLTR(::core::mem::transmute(pbidi), ::core::mem::transmute(orderparagraphsltr))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_reorderLogical(levels: *const u8, length: i32, indexmap: *mut i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_reorderLogical(levels: *const u8, length: i32, indexmap: *mut i32);
        }
        ubidi_reorderLogical(::core::mem::transmute(levels), ::core::mem::transmute(length), ::core::mem::transmute(indexmap))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_reorderVisual(levels: *const u8, length: i32, indexmap: *mut i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_reorderVisual(levels: *const u8, length: i32, indexmap: *mut i32);
        }
        ubidi_reorderVisual(::core::mem::transmute(levels), ::core::mem::transmute(length), ::core::mem::transmute(indexmap))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_setClassCallback(pbidi: *mut UBiDi, newfn: UBiDiClassCallback, newcontext: *const ::core::ffi::c_void, oldfn: *mut UBiDiClassCallback, oldcontext: *const *const ::core::ffi::c_void, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_setClassCallback(pbidi: *mut UBiDi, newfn: ::windows::core::RawPtr, newcontext: *const ::core::ffi::c_void, oldfn: *mut ::windows::core::RawPtr, oldcontext: *const *const ::core::ffi::c_void, perrorcode: *mut UErrorCode);
        }
        ubidi_setClassCallback(::core::mem::transmute(pbidi), ::core::mem::transmute(newfn), ::core::mem::transmute(newcontext), ::core::mem::transmute(oldfn), ::core::mem::transmute(oldcontext), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_setContext(pbidi: *mut UBiDi, prologue: *const u16, prolength: i32, epilogue: *const u16, epilength: i32, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_setContext(pbidi: *mut UBiDi, prologue: *const u16, prolength: i32, epilogue: *const u16, epilength: i32, perrorcode: *mut UErrorCode);
        }
        ubidi_setContext(::core::mem::transmute(pbidi), ::core::mem::transmute(prologue), ::core::mem::transmute(prolength), ::core::mem::transmute(epilogue), ::core::mem::transmute(epilength), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_setInverse(pbidi: *mut UBiDi, isinverse: i8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_setInverse(pbidi: *mut UBiDi, isinverse: i8);
        }
        ubidi_setInverse(::core::mem::transmute(pbidi), ::core::mem::transmute(isinverse))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_setLine(pparabidi: *const UBiDi, start: i32, limit: i32, plinebidi: *mut UBiDi, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_setLine(pparabidi: *const UBiDi, start: i32, limit: i32, plinebidi: *mut UBiDi, perrorcode: *mut UErrorCode);
        }
        ubidi_setLine(::core::mem::transmute(pparabidi), ::core::mem::transmute(start), ::core::mem::transmute(limit), ::core::mem::transmute(plinebidi), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_setPara(pbidi: *mut UBiDi, text: *const u16, length: i32, paralevel: u8, embeddinglevels: *mut u8, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_setPara(pbidi: *mut UBiDi, text: *const u16, length: i32, paralevel: u8, embeddinglevels: *mut u8, perrorcode: *mut UErrorCode);
        }
        ubidi_setPara(::core::mem::transmute(pbidi), ::core::mem::transmute(text), ::core::mem::transmute(length), ::core::mem::transmute(paralevel), ::core::mem::transmute(embeddinglevels), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_setReorderingMode(pbidi: *mut UBiDi, reorderingmode: UBiDiReorderingMode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_setReorderingMode(pbidi: *mut UBiDi, reorderingmode: UBiDiReorderingMode);
        }
        ubidi_setReorderingMode(::core::mem::transmute(pbidi), ::core::mem::transmute(reorderingmode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_setReorderingOptions(pbidi: *mut UBiDi, reorderingoptions: u32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_setReorderingOptions(pbidi: *mut UBiDi, reorderingoptions: u32);
        }
        ubidi_setReorderingOptions(::core::mem::transmute(pbidi), ::core::mem::transmute(reorderingoptions))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_writeReordered(pbidi: *mut UBiDi, dest: *mut u16, destsize: i32, options: u16, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_writeReordered(pbidi: *mut UBiDi, dest: *mut u16, destsize: i32, options: u16, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ubidi_writeReordered(::core::mem::transmute(pbidi), ::core::mem::transmute(dest), ::core::mem::transmute(destsize), ::core::mem::transmute(options), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubidi_writeReverse(src: *const u16, srclength: i32, dest: *mut u16, destsize: i32, options: u16, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubidi_writeReverse(src: *const u16, srclength: i32, dest: *mut u16, destsize: i32, options: u16, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ubidi_writeReverse(::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(dest), ::core::mem::transmute(destsize), ::core::mem::transmute(options), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubiditransform_close(pbiditransform: *mut UBiDiTransform) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubiditransform_close(pbiditransform: *mut UBiDiTransform);
        }
        ubiditransform_close(::core::mem::transmute(pbiditransform))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubiditransform_open(perrorcode: *mut UErrorCode) -> *mut UBiDiTransform {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubiditransform_open(perrorcode: *mut UErrorCode) -> *mut UBiDiTransform;
        }
        ::core::mem::transmute(ubiditransform_open(::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubiditransform_transform(pbiditransform: *mut UBiDiTransform, src: *const u16, srclength: i32, dest: *mut u16, destsize: i32, inparalevel: u8, inorder: UBiDiOrder, outparalevel: u8, outorder: UBiDiOrder, domirroring: UBiDiMirroring, shapingoptions: u32, perrorcode: *mut UErrorCode) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubiditransform_transform(pbiditransform: *mut UBiDiTransform, src: *const u16, srclength: i32, dest: *mut u16, destsize: i32, inparalevel: u8, inorder: UBiDiOrder, outparalevel: u8, outorder: UBiDiOrder, domirroring: UBiDiMirroring, shapingoptions: u32, perrorcode: *mut UErrorCode) -> u32;
        }
        ::core::mem::transmute(ubiditransform_transform(::core::mem::transmute(pbiditransform), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(dest), ::core::mem::transmute(destsize), ::core::mem::transmute(inparalevel), ::core::mem::transmute(inorder), ::core::mem::transmute(outparalevel), ::core::mem::transmute(outorder), ::core::mem::transmute(domirroring), ::core::mem::transmute(shapingoptions), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ublock_getCode(c: i32) -> UBlockCode {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ublock_getCode(c: i32) -> UBlockCode;
        }
        ::core::mem::transmute(ublock_getCode(::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_close(bi: *mut UBreakIterator) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_close(bi: *mut UBreakIterator);
        }
        ubrk_close(::core::mem::transmute(bi))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_countAvailable() -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_countAvailable() -> i32;
        }
        ::core::mem::transmute(ubrk_countAvailable())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_current(bi: *const UBreakIterator) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_current(bi: *const UBreakIterator) -> i32;
        }
        ::core::mem::transmute(ubrk_current(::core::mem::transmute(bi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_first(bi: *mut UBreakIterator) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_first(bi: *mut UBreakIterator) -> i32;
        }
        ::core::mem::transmute(ubrk_first(::core::mem::transmute(bi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_following(bi: *mut UBreakIterator, offset: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_following(bi: *mut UBreakIterator, offset: i32) -> i32;
        }
        ::core::mem::transmute(ubrk_following(::core::mem::transmute(bi), ::core::mem::transmute(offset)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_getAvailable(index: i32) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_getAvailable(index: i32) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ubrk_getAvailable(::core::mem::transmute(index)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_getBinaryRules(bi: *mut UBreakIterator, binaryrules: *mut u8, rulescapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_getBinaryRules(bi: *mut UBreakIterator, binaryrules: *mut u8, rulescapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ubrk_getBinaryRules(::core::mem::transmute(bi), ::core::mem::transmute(binaryrules), ::core::mem::transmute(rulescapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_getLocaleByType(bi: *const UBreakIterator, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_getLocaleByType(bi: *const UBreakIterator, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ubrk_getLocaleByType(::core::mem::transmute(bi), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_getRuleStatus(bi: *mut UBreakIterator) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_getRuleStatus(bi: *mut UBreakIterator) -> i32;
        }
        ::core::mem::transmute(ubrk_getRuleStatus(::core::mem::transmute(bi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_getRuleStatusVec(bi: *mut UBreakIterator, fillinvec: *mut i32, capacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_getRuleStatusVec(bi: *mut UBreakIterator, fillinvec: *mut i32, capacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ubrk_getRuleStatusVec(::core::mem::transmute(bi), ::core::mem::transmute(fillinvec), ::core::mem::transmute(capacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_isBoundary(bi: *mut UBreakIterator, offset: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_isBoundary(bi: *mut UBreakIterator, offset: i32) -> i8;
        }
        ::core::mem::transmute(ubrk_isBoundary(::core::mem::transmute(bi), ::core::mem::transmute(offset)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_last(bi: *mut UBreakIterator) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_last(bi: *mut UBreakIterator) -> i32;
        }
        ::core::mem::transmute(ubrk_last(::core::mem::transmute(bi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_next(bi: *mut UBreakIterator) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_next(bi: *mut UBreakIterator) -> i32;
        }
        ::core::mem::transmute(ubrk_next(::core::mem::transmute(bi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_open<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(r#type: UBreakIteratorType, locale: Param1, text: *const u16, textlength: i32, status: *mut UErrorCode) -> *mut UBreakIterator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_open(r#type: UBreakIteratorType, locale: ::windows::core::PCSTR, text: *const u16, textlength: i32, status: *mut UErrorCode) -> *mut UBreakIterator;
        }
        ::core::mem::transmute(ubrk_open(::core::mem::transmute(r#type), locale.into_param().abi(), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_openBinaryRules(binaryrules: *const u8, ruleslength: i32, text: *const u16, textlength: i32, status: *mut UErrorCode) -> *mut UBreakIterator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_openBinaryRules(binaryrules: *const u8, ruleslength: i32, text: *const u16, textlength: i32, status: *mut UErrorCode) -> *mut UBreakIterator;
        }
        ::core::mem::transmute(ubrk_openBinaryRules(::core::mem::transmute(binaryrules), ::core::mem::transmute(ruleslength), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_openRules(rules: *const u16, ruleslength: i32, text: *const u16, textlength: i32, parseerr: *mut UParseError, status: *mut UErrorCode) -> *mut UBreakIterator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_openRules(rules: *const u16, ruleslength: i32, text: *const u16, textlength: i32, parseerr: *mut UParseError, status: *mut UErrorCode) -> *mut UBreakIterator;
        }
        ::core::mem::transmute(ubrk_openRules(::core::mem::transmute(rules), ::core::mem::transmute(ruleslength), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(parseerr), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_preceding(bi: *mut UBreakIterator, offset: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_preceding(bi: *mut UBreakIterator, offset: i32) -> i32;
        }
        ::core::mem::transmute(ubrk_preceding(::core::mem::transmute(bi), ::core::mem::transmute(offset)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_previous(bi: *mut UBreakIterator) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_previous(bi: *mut UBreakIterator) -> i32;
        }
        ::core::mem::transmute(ubrk_previous(::core::mem::transmute(bi)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_refreshUText(bi: *mut UBreakIterator, text: *mut UText, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_refreshUText(bi: *mut UBreakIterator, text: *mut UText, status: *mut UErrorCode);
        }
        ubrk_refreshUText(::core::mem::transmute(bi), ::core::mem::transmute(text), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_safeClone(bi: *const UBreakIterator, stackbuffer: *mut ::core::ffi::c_void, pbuffersize: *mut i32, status: *mut UErrorCode) -> *mut UBreakIterator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_safeClone(bi: *const UBreakIterator, stackbuffer: *mut ::core::ffi::c_void, pbuffersize: *mut i32, status: *mut UErrorCode) -> *mut UBreakIterator;
        }
        ::core::mem::transmute(ubrk_safeClone(::core::mem::transmute(bi), ::core::mem::transmute(stackbuffer), ::core::mem::transmute(pbuffersize), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_setText(bi: *mut UBreakIterator, text: *const u16, textlength: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_setText(bi: *mut UBreakIterator, text: *const u16, textlength: i32, status: *mut UErrorCode);
        }
        ubrk_setText(::core::mem::transmute(bi), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ubrk_setUText(bi: *mut UBreakIterator, text: *mut UText, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ubrk_setUText(bi: *mut UBreakIterator, text: *mut UText, status: *mut UErrorCode);
        }
        ubrk_setUText(::core::mem::transmute(bi), ::core::mem::transmute(text), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_add(cal: *mut *mut ::core::ffi::c_void, field: UCalendarDateFields, amount: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_add(cal: *mut *mut ::core::ffi::c_void, field: UCalendarDateFields, amount: i32, status: *mut UErrorCode);
        }
        ucal_add(::core::mem::transmute(cal), ::core::mem::transmute(field), ::core::mem::transmute(amount), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_clear(calendar: *mut *mut ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_clear(calendar: *mut *mut ::core::ffi::c_void);
        }
        ucal_clear(::core::mem::transmute(calendar))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_clearField(cal: *mut *mut ::core::ffi::c_void, field: UCalendarDateFields) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_clearField(cal: *mut *mut ::core::ffi::c_void, field: UCalendarDateFields);
        }
        ucal_clearField(::core::mem::transmute(cal), ::core::mem::transmute(field))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_clone(cal: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_clone(cal: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(ucal_clone(::core::mem::transmute(cal), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_close(cal: *mut *mut ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_close(cal: *mut *mut ::core::ffi::c_void);
        }
        ucal_close(::core::mem::transmute(cal))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_countAvailable() -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_countAvailable() -> i32;
        }
        ::core::mem::transmute(ucal_countAvailable())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_equivalentTo(cal1: *const *const ::core::ffi::c_void, cal2: *const *const ::core::ffi::c_void) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_equivalentTo(cal1: *const *const ::core::ffi::c_void, cal2: *const *const ::core::ffi::c_void) -> i8;
        }
        ::core::mem::transmute(ucal_equivalentTo(::core::mem::transmute(cal1), ::core::mem::transmute(cal2)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_get(cal: *const *const ::core::ffi::c_void, field: UCalendarDateFields, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_get(cal: *const *const ::core::ffi::c_void, field: UCalendarDateFields, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_get(::core::mem::transmute(cal), ::core::mem::transmute(field), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getAttribute(cal: *const *const ::core::ffi::c_void, attr: UCalendarAttribute) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getAttribute(cal: *const *const ::core::ffi::c_void, attr: UCalendarAttribute) -> i32;
        }
        ::core::mem::transmute(ucal_getAttribute(::core::mem::transmute(cal), ::core::mem::transmute(attr)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getAvailable(localeindex: i32) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getAvailable(localeindex: i32) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucal_getAvailable(::core::mem::transmute(localeindex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getCanonicalTimeZoneID(id: *const u16, len: i32, result: *mut u16, resultcapacity: i32, issystemid: *mut i8, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getCanonicalTimeZoneID(id: *const u16, len: i32, result: *mut u16, resultcapacity: i32, issystemid: *mut i8, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getCanonicalTimeZoneID(::core::mem::transmute(id), ::core::mem::transmute(len), ::core::mem::transmute(result), ::core::mem::transmute(resultcapacity), ::core::mem::transmute(issystemid), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getDSTSavings(zoneid: *const u16, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getDSTSavings(zoneid: *const u16, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getDSTSavings(::core::mem::transmute(zoneid), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getDayOfWeekType(cal: *const *const ::core::ffi::c_void, dayofweek: UCalendarDaysOfWeek, status: *mut UErrorCode) -> UCalendarWeekdayType {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getDayOfWeekType(cal: *const *const ::core::ffi::c_void, dayofweek: UCalendarDaysOfWeek, status: *mut UErrorCode) -> UCalendarWeekdayType;
        }
        ::core::mem::transmute(ucal_getDayOfWeekType(::core::mem::transmute(cal), ::core::mem::transmute(dayofweek), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getDefaultTimeZone(result: *mut u16, resultcapacity: i32, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getDefaultTimeZone(result: *mut u16, resultcapacity: i32, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getDefaultTimeZone(::core::mem::transmute(result), ::core::mem::transmute(resultcapacity), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getFieldDifference(cal: *mut *mut ::core::ffi::c_void, target: f64, field: UCalendarDateFields, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getFieldDifference(cal: *mut *mut ::core::ffi::c_void, target: f64, field: UCalendarDateFields, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getFieldDifference(::core::mem::transmute(cal), ::core::mem::transmute(target), ::core::mem::transmute(field), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getGregorianChange(cal: *const *const ::core::ffi::c_void, perrorcode: *mut UErrorCode) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getGregorianChange(cal: *const *const ::core::ffi::c_void, perrorcode: *mut UErrorCode) -> f64;
        }
        ::core::mem::transmute(ucal_getGregorianChange(::core::mem::transmute(cal), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getHostTimeZone(result: *mut u16, resultcapacity: i32, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getHostTimeZone(result: *mut u16, resultcapacity: i32, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getHostTimeZone(::core::mem::transmute(result), ::core::mem::transmute(resultcapacity), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getKeywordValuesForLocale<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(key: Param0, locale: Param1, commonlyused: i8, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getKeywordValuesForLocale(key: ::windows::core::PCSTR, locale: ::windows::core::PCSTR, commonlyused: i8, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucal_getKeywordValuesForLocale(key.into_param().abi(), locale.into_param().abi(), ::core::mem::transmute(commonlyused), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getLimit(cal: *const *const ::core::ffi::c_void, field: UCalendarDateFields, r#type: UCalendarLimitType, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getLimit(cal: *const *const ::core::ffi::c_void, field: UCalendarDateFields, r#type: UCalendarLimitType, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getLimit(::core::mem::transmute(cal), ::core::mem::transmute(field), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getLocaleByType(cal: *const *const ::core::ffi::c_void, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getLocaleByType(cal: *const *const ::core::ffi::c_void, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucal_getLocaleByType(::core::mem::transmute(cal), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getMillis(cal: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getMillis(cal: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> f64;
        }
        ::core::mem::transmute(ucal_getMillis(::core::mem::transmute(cal), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getNow() -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getNow() -> f64;
        }
        ::core::mem::transmute(ucal_getNow())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getTZDataVersion(status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getTZDataVersion(status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucal_getTZDataVersion(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getTimeZoneDisplayName<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(cal: *const *const ::core::ffi::c_void, r#type: UCalendarDisplayNameType, locale: Param2, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getTimeZoneDisplayName(cal: *const *const ::core::ffi::c_void, r#type: UCalendarDisplayNameType, locale: ::windows::core::PCSTR, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getTimeZoneDisplayName(::core::mem::transmute(cal), ::core::mem::transmute(r#type), locale.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getTimeZoneID(cal: *const *const ::core::ffi::c_void, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getTimeZoneID(cal: *const *const ::core::ffi::c_void, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getTimeZoneID(::core::mem::transmute(cal), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getTimeZoneIDForWindowsID<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(winid: *const u16, len: i32, region: Param2, id: *mut u16, idcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getTimeZoneIDForWindowsID(winid: *const u16, len: i32, region: ::windows::core::PCSTR, id: *mut u16, idcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getTimeZoneIDForWindowsID(::core::mem::transmute(winid), ::core::mem::transmute(len), region.into_param().abi(), ::core::mem::transmute(id), ::core::mem::transmute(idcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getTimeZoneTransitionDate(cal: *const *const ::core::ffi::c_void, r#type: UTimeZoneTransitionType, transition: *mut f64, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getTimeZoneTransitionDate(cal: *const *const ::core::ffi::c_void, r#type: UTimeZoneTransitionType, transition: *mut f64, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(ucal_getTimeZoneTransitionDate(::core::mem::transmute(cal), ::core::mem::transmute(r#type), ::core::mem::transmute(transition), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getType(cal: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getType(cal: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucal_getType(::core::mem::transmute(cal), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getWeekendTransition(cal: *const *const ::core::ffi::c_void, dayofweek: UCalendarDaysOfWeek, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getWeekendTransition(cal: *const *const ::core::ffi::c_void, dayofweek: UCalendarDaysOfWeek, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getWeekendTransition(::core::mem::transmute(cal), ::core::mem::transmute(dayofweek), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_getWindowsTimeZoneID(id: *const u16, len: i32, winid: *mut u16, winidcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_getWindowsTimeZoneID(id: *const u16, len: i32, winid: *mut u16, winidcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucal_getWindowsTimeZoneID(::core::mem::transmute(id), ::core::mem::transmute(len), ::core::mem::transmute(winid), ::core::mem::transmute(winidcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_inDaylightTime(cal: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_inDaylightTime(cal: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(ucal_inDaylightTime(::core::mem::transmute(cal), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_isSet(cal: *const *const ::core::ffi::c_void, field: UCalendarDateFields) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_isSet(cal: *const *const ::core::ffi::c_void, field: UCalendarDateFields) -> i8;
        }
        ::core::mem::transmute(ucal_isSet(::core::mem::transmute(cal), ::core::mem::transmute(field)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_isWeekend(cal: *const *const ::core::ffi::c_void, date: f64, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_isWeekend(cal: *const *const ::core::ffi::c_void, date: f64, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(ucal_isWeekend(::core::mem::transmute(cal), ::core::mem::transmute(date), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_open<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(zoneid: *const u16, len: i32, locale: Param2, r#type: UCalendarType, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_open(zoneid: *const u16, len: i32, locale: ::windows::core::PCSTR, r#type: UCalendarType, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(ucal_open(::core::mem::transmute(zoneid), ::core::mem::transmute(len), locale.into_param().abi(), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_openCountryTimeZones<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(country: Param0, ec: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_openCountryTimeZones(country: ::windows::core::PCSTR, ec: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucal_openCountryTimeZones(country.into_param().abi(), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_openTimeZoneIDEnumeration<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(zonetype: USystemTimeZoneType, region: Param1, rawoffset: *const i32, ec: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_openTimeZoneIDEnumeration(zonetype: USystemTimeZoneType, region: ::windows::core::PCSTR, rawoffset: *const i32, ec: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucal_openTimeZoneIDEnumeration(::core::mem::transmute(zonetype), region.into_param().abi(), ::core::mem::transmute(rawoffset), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_openTimeZones(ec: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_openTimeZones(ec: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucal_openTimeZones(::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_roll(cal: *mut *mut ::core::ffi::c_void, field: UCalendarDateFields, amount: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_roll(cal: *mut *mut ::core::ffi::c_void, field: UCalendarDateFields, amount: i32, status: *mut UErrorCode);
        }
        ucal_roll(::core::mem::transmute(cal), ::core::mem::transmute(field), ::core::mem::transmute(amount), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_set(cal: *mut *mut ::core::ffi::c_void, field: UCalendarDateFields, value: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_set(cal: *mut *mut ::core::ffi::c_void, field: UCalendarDateFields, value: i32);
        }
        ucal_set(::core::mem::transmute(cal), ::core::mem::transmute(field), ::core::mem::transmute(value))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_setAttribute(cal: *mut *mut ::core::ffi::c_void, attr: UCalendarAttribute, newvalue: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_setAttribute(cal: *mut *mut ::core::ffi::c_void, attr: UCalendarAttribute, newvalue: i32);
        }
        ucal_setAttribute(::core::mem::transmute(cal), ::core::mem::transmute(attr), ::core::mem::transmute(newvalue))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_setDate(cal: *mut *mut ::core::ffi::c_void, year: i32, month: i32, date: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_setDate(cal: *mut *mut ::core::ffi::c_void, year: i32, month: i32, date: i32, status: *mut UErrorCode);
        }
        ucal_setDate(::core::mem::transmute(cal), ::core::mem::transmute(year), ::core::mem::transmute(month), ::core::mem::transmute(date), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_setDateTime(cal: *mut *mut ::core::ffi::c_void, year: i32, month: i32, date: i32, hour: i32, minute: i32, second: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_setDateTime(cal: *mut *mut ::core::ffi::c_void, year: i32, month: i32, date: i32, hour: i32, minute: i32, second: i32, status: *mut UErrorCode);
        }
        ucal_setDateTime(::core::mem::transmute(cal), ::core::mem::transmute(year), ::core::mem::transmute(month), ::core::mem::transmute(date), ::core::mem::transmute(hour), ::core::mem::transmute(minute), ::core::mem::transmute(second), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_setDefaultTimeZone(zoneid: *const u16, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_setDefaultTimeZone(zoneid: *const u16, ec: *mut UErrorCode);
        }
        ucal_setDefaultTimeZone(::core::mem::transmute(zoneid), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_setGregorianChange(cal: *mut *mut ::core::ffi::c_void, date: f64, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_setGregorianChange(cal: *mut *mut ::core::ffi::c_void, date: f64, perrorcode: *mut UErrorCode);
        }
        ucal_setGregorianChange(::core::mem::transmute(cal), ::core::mem::transmute(date), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_setMillis(cal: *mut *mut ::core::ffi::c_void, datetime: f64, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_setMillis(cal: *mut *mut ::core::ffi::c_void, datetime: f64, status: *mut UErrorCode);
        }
        ucal_setMillis(::core::mem::transmute(cal), ::core::mem::transmute(datetime), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucal_setTimeZone(cal: *mut *mut ::core::ffi::c_void, zoneid: *const u16, len: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucal_setTimeZone(cal: *mut *mut ::core::ffi::c_void, zoneid: *const u16, len: i32, status: *mut UErrorCode);
        }
        ucal_setTimeZone(::core::mem::transmute(cal), ::core::mem::transmute(zoneid), ::core::mem::transmute(len), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_close(csm: *mut UCaseMap) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_close(csm: *mut UCaseMap);
        }
        ucasemap_close(::core::mem::transmute(csm))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_getBreakIterator(csm: *const UCaseMap) -> *mut UBreakIterator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_getBreakIterator(csm: *const UCaseMap) -> *mut UBreakIterator;
        }
        ::core::mem::transmute(ucasemap_getBreakIterator(::core::mem::transmute(csm)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_getLocale(csm: *const UCaseMap) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_getLocale(csm: *const UCaseMap) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucasemap_getLocale(::core::mem::transmute(csm)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_getOptions(csm: *const UCaseMap) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_getOptions(csm: *const UCaseMap) -> u32;
        }
        ::core::mem::transmute(ucasemap_getOptions(::core::mem::transmute(csm)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, options: u32, perrorcode: *mut UErrorCode) -> *mut UCaseMap {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_open(locale: ::windows::core::PCSTR, options: u32, perrorcode: *mut UErrorCode) -> *mut UCaseMap;
        }
        ::core::mem::transmute(ucasemap_open(locale.into_param().abi(), ::core::mem::transmute(options), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_setBreakIterator(csm: *mut UCaseMap, itertoadopt: *mut UBreakIterator, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_setBreakIterator(csm: *mut UCaseMap, itertoadopt: *mut UBreakIterator, perrorcode: *mut UErrorCode);
        }
        ucasemap_setBreakIterator(::core::mem::transmute(csm), ::core::mem::transmute(itertoadopt), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_setLocale<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(csm: *mut UCaseMap, locale: Param1, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_setLocale(csm: *mut UCaseMap, locale: ::windows::core::PCSTR, perrorcode: *mut UErrorCode);
        }
        ucasemap_setLocale(::core::mem::transmute(csm), locale.into_param().abi(), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_setOptions(csm: *mut UCaseMap, options: u32, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_setOptions(csm: *mut UCaseMap, options: u32, perrorcode: *mut UErrorCode);
        }
        ucasemap_setOptions(::core::mem::transmute(csm), ::core::mem::transmute(options), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_toTitle(csm: *mut UCaseMap, dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_toTitle(csm: *mut UCaseMap, dest: *mut u16, destcapacity: i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucasemap_toTitle(::core::mem::transmute(csm), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_utf8FoldCase<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(csm: *const UCaseMap, dest: Param1, destcapacity: i32, src: Param3, srclength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_utf8FoldCase(csm: *const UCaseMap, dest: ::windows::core::PCSTR, destcapacity: i32, src: ::windows::core::PCSTR, srclength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucasemap_utf8FoldCase(::core::mem::transmute(csm), dest.into_param().abi(), ::core::mem::transmute(destcapacity), src.into_param().abi(), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_utf8ToLower<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(csm: *const UCaseMap, dest: Param1, destcapacity: i32, src: Param3, srclength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_utf8ToLower(csm: *const UCaseMap, dest: ::windows::core::PCSTR, destcapacity: i32, src: ::windows::core::PCSTR, srclength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucasemap_utf8ToLower(::core::mem::transmute(csm), dest.into_param().abi(), ::core::mem::transmute(destcapacity), src.into_param().abi(), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_utf8ToTitle<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(csm: *mut UCaseMap, dest: Param1, destcapacity: i32, src: Param3, srclength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_utf8ToTitle(csm: *mut UCaseMap, dest: ::windows::core::PCSTR, destcapacity: i32, src: ::windows::core::PCSTR, srclength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucasemap_utf8ToTitle(::core::mem::transmute(csm), dest.into_param().abi(), ::core::mem::transmute(destcapacity), src.into_param().abi(), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucasemap_utf8ToUpper<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(csm: *const UCaseMap, dest: Param1, destcapacity: i32, src: Param3, srclength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucasemap_utf8ToUpper(csm: *const UCaseMap, dest: ::windows::core::PCSTR, destcapacity: i32, src: ::windows::core::PCSTR, srclength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucasemap_utf8ToUpper(::core::mem::transmute(csm), dest.into_param().abi(), ::core::mem::transmute(destcapacity), src.into_param().abi(), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_close(ucfpos: *mut UConstrainedFieldPosition) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_close(ucfpos: *mut UConstrainedFieldPosition);
        }
        ucfpos_close(::core::mem::transmute(ucfpos))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_constrainCategory(ucfpos: *mut UConstrainedFieldPosition, category: i32, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_constrainCategory(ucfpos: *mut UConstrainedFieldPosition, category: i32, ec: *mut UErrorCode);
        }
        ucfpos_constrainCategory(::core::mem::transmute(ucfpos), ::core::mem::transmute(category), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_constrainField(ucfpos: *mut UConstrainedFieldPosition, category: i32, field: i32, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_constrainField(ucfpos: *mut UConstrainedFieldPosition, category: i32, field: i32, ec: *mut UErrorCode);
        }
        ucfpos_constrainField(::core::mem::transmute(ucfpos), ::core::mem::transmute(category), ::core::mem::transmute(field), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_getCategory(ucfpos: *const UConstrainedFieldPosition, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_getCategory(ucfpos: *const UConstrainedFieldPosition, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucfpos_getCategory(::core::mem::transmute(ucfpos), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_getField(ucfpos: *const UConstrainedFieldPosition, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_getField(ucfpos: *const UConstrainedFieldPosition, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucfpos_getField(::core::mem::transmute(ucfpos), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_getIndexes(ucfpos: *const UConstrainedFieldPosition, pstart: *mut i32, plimit: *mut i32, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_getIndexes(ucfpos: *const UConstrainedFieldPosition, pstart: *mut i32, plimit: *mut i32, ec: *mut UErrorCode);
        }
        ucfpos_getIndexes(::core::mem::transmute(ucfpos), ::core::mem::transmute(pstart), ::core::mem::transmute(plimit), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_getInt64IterationContext(ucfpos: *const UConstrainedFieldPosition, ec: *mut UErrorCode) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_getInt64IterationContext(ucfpos: *const UConstrainedFieldPosition, ec: *mut UErrorCode) -> i64;
        }
        ::core::mem::transmute(ucfpos_getInt64IterationContext(::core::mem::transmute(ucfpos), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_matchesField(ucfpos: *const UConstrainedFieldPosition, category: i32, field: i32, ec: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_matchesField(ucfpos: *const UConstrainedFieldPosition, category: i32, field: i32, ec: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(ucfpos_matchesField(::core::mem::transmute(ucfpos), ::core::mem::transmute(category), ::core::mem::transmute(field), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_open(ec: *mut UErrorCode) -> *mut UConstrainedFieldPosition {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_open(ec: *mut UErrorCode) -> *mut UConstrainedFieldPosition;
        }
        ::core::mem::transmute(ucfpos_open(::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_reset(ucfpos: *mut UConstrainedFieldPosition, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_reset(ucfpos: *mut UConstrainedFieldPosition, ec: *mut UErrorCode);
        }
        ucfpos_reset(::core::mem::transmute(ucfpos), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_setInt64IterationContext(ucfpos: *mut UConstrainedFieldPosition, context: i64, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_setInt64IterationContext(ucfpos: *mut UConstrainedFieldPosition, context: i64, ec: *mut UErrorCode);
        }
        ucfpos_setInt64IterationContext(::core::mem::transmute(ucfpos), ::core::mem::transmute(context), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucfpos_setState(ucfpos: *mut UConstrainedFieldPosition, category: i32, field: i32, start: i32, limit: i32, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucfpos_setState(ucfpos: *mut UConstrainedFieldPosition, category: i32, field: i32, start: i32, limit: i32, ec: *mut UErrorCode);
        }
        ucfpos_setState(::core::mem::transmute(ucfpos), ::core::mem::transmute(category), ::core::mem::transmute(field), ::core::mem::transmute(start), ::core::mem::transmute(limit), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_cbFromUWriteBytes<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(args: *mut UConverterFromUnicodeArgs, source: Param1, length: i32, offsetindex: i32, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_cbFromUWriteBytes(args: *mut UConverterFromUnicodeArgs, source: ::windows::core::PCSTR, length: i32, offsetindex: i32, err: *mut UErrorCode);
        }
        ucnv_cbFromUWriteBytes(::core::mem::transmute(args), source.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(offsetindex), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_cbFromUWriteSub(args: *mut UConverterFromUnicodeArgs, offsetindex: i32, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_cbFromUWriteSub(args: *mut UConverterFromUnicodeArgs, offsetindex: i32, err: *mut UErrorCode);
        }
        ucnv_cbFromUWriteSub(::core::mem::transmute(args), ::core::mem::transmute(offsetindex), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_cbFromUWriteUChars(args: *mut UConverterFromUnicodeArgs, source: *const *const u16, sourcelimit: *const u16, offsetindex: i32, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_cbFromUWriteUChars(args: *mut UConverterFromUnicodeArgs, source: *const *const u16, sourcelimit: *const u16, offsetindex: i32, err: *mut UErrorCode);
        }
        ucnv_cbFromUWriteUChars(::core::mem::transmute(args), ::core::mem::transmute(source), ::core::mem::transmute(sourcelimit), ::core::mem::transmute(offsetindex), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_cbToUWriteSub(args: *mut UConverterToUnicodeArgs, offsetindex: i32, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_cbToUWriteSub(args: *mut UConverterToUnicodeArgs, offsetindex: i32, err: *mut UErrorCode);
        }
        ucnv_cbToUWriteSub(::core::mem::transmute(args), ::core::mem::transmute(offsetindex), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_cbToUWriteUChars(args: *mut UConverterToUnicodeArgs, source: *const u16, length: i32, offsetindex: i32, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_cbToUWriteUChars(args: *mut UConverterToUnicodeArgs, source: *const u16, length: i32, offsetindex: i32, err: *mut UErrorCode);
        }
        ucnv_cbToUWriteUChars(::core::mem::transmute(args), ::core::mem::transmute(source), ::core::mem::transmute(length), ::core::mem::transmute(offsetindex), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_close(converter: *mut UConverter) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_close(converter: *mut UConverter);
        }
        ucnv_close(::core::mem::transmute(converter))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_compareNames<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(name1: Param0, name2: Param1) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_compareNames(name1: ::windows::core::PCSTR, name2: ::windows::core::PCSTR) -> i32;
        }
        ::core::mem::transmute(ucnv_compareNames(name1.into_param().abi(), name2.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_convert<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(toconvertername: Param0, fromconvertername: Param1, target: Param2, targetcapacity: i32, source: Param4, sourcelength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_convert(toconvertername: ::windows::core::PCSTR, fromconvertername: ::windows::core::PCSTR, target: ::windows::core::PCSTR, targetcapacity: i32, source: ::windows::core::PCSTR, sourcelength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnv_convert(toconvertername.into_param().abi(), fromconvertername.into_param().abi(), target.into_param().abi(), ::core::mem::transmute(targetcapacity), source.into_param().abi(), ::core::mem::transmute(sourcelength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_convertEx<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param5: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(targetcnv: *mut UConverter, sourcecnv: *mut UConverter, target: *mut *mut i8, targetlimit: Param3, source: *const *const i8, sourcelimit: Param5, pivotstart: *mut u16, pivotsource: *mut *mut u16, pivottarget: *mut *mut u16, pivotlimit: *const u16, reset: i8, flush: i8, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_convertEx(targetcnv: *mut UConverter, sourcecnv: *mut UConverter, target: *mut *mut i8, targetlimit: ::windows::core::PCSTR, source: *const *const i8, sourcelimit: ::windows::core::PCSTR, pivotstart: *mut u16, pivotsource: *mut *mut u16, pivottarget: *mut *mut u16, pivotlimit: *const u16, reset: i8, flush: i8, perrorcode: *mut UErrorCode);
        }
        ucnv_convertEx(::core::mem::transmute(targetcnv), ::core::mem::transmute(sourcecnv), ::core::mem::transmute(target), targetlimit.into_param().abi(), ::core::mem::transmute(source), sourcelimit.into_param().abi(), ::core::mem::transmute(pivotstart), ::core::mem::transmute(pivotsource), ::core::mem::transmute(pivottarget), ::core::mem::transmute(pivotlimit), ::core::mem::transmute(reset), ::core::mem::transmute(flush), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_countAliases<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(alias: Param0, perrorcode: *mut UErrorCode) -> u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_countAliases(alias: ::windows::core::PCSTR, perrorcode: *mut UErrorCode) -> u16;
        }
        ::core::mem::transmute(ucnv_countAliases(alias.into_param().abi(), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_countAvailable() -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_countAvailable() -> i32;
        }
        ::core::mem::transmute(ucnv_countAvailable())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_countStandards() -> u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_countStandards() -> u16;
        }
        ::core::mem::transmute(ucnv_countStandards())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_detectUnicodeSignature<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(source: Param0, sourcelength: i32, signaturelength: *mut i32, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_detectUnicodeSignature(source: ::windows::core::PCSTR, sourcelength: i32, signaturelength: *mut i32, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucnv_detectUnicodeSignature(source.into_param().abi(), ::core::mem::transmute(sourcelength), ::core::mem::transmute(signaturelength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_fixFileSeparator(cnv: *const UConverter, source: *mut u16, sourcelen: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_fixFileSeparator(cnv: *const UConverter, source: *mut u16, sourcelen: i32);
        }
        ucnv_fixFileSeparator(::core::mem::transmute(cnv), ::core::mem::transmute(source), ::core::mem::transmute(sourcelen))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_flushCache() -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_flushCache() -> i32;
        }
        ::core::mem::transmute(ucnv_flushCache())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_fromAlgorithmic<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(cnv: *mut UConverter, algorithmictype: UConverterType, target: Param2, targetcapacity: i32, source: Param4, sourcelength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_fromAlgorithmic(cnv: *mut UConverter, algorithmictype: UConverterType, target: ::windows::core::PCSTR, targetcapacity: i32, source: ::windows::core::PCSTR, sourcelength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnv_fromAlgorithmic(::core::mem::transmute(cnv), ::core::mem::transmute(algorithmictype), target.into_param().abi(), ::core::mem::transmute(targetcapacity), source.into_param().abi(), ::core::mem::transmute(sourcelength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_fromUChars<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(cnv: *mut UConverter, dest: Param1, destcapacity: i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_fromUChars(cnv: *mut UConverter, dest: ::windows::core::PCSTR, destcapacity: i32, src: *const u16, srclength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnv_fromUChars(::core::mem::transmute(cnv), dest.into_param().abi(), ::core::mem::transmute(destcapacity), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_fromUCountPending(cnv: *const UConverter, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_fromUCountPending(cnv: *const UConverter, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnv_fromUCountPending(::core::mem::transmute(cnv), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_fromUnicode<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(converter: *mut UConverter, target: *mut *mut i8, targetlimit: Param2, source: *const *const u16, sourcelimit: *const u16, offsets: *mut i32, flush: i8, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_fromUnicode(converter: *mut UConverter, target: *mut *mut i8, targetlimit: ::windows::core::PCSTR, source: *const *const u16, sourcelimit: *const u16, offsets: *mut i32, flush: i8, err: *mut UErrorCode);
        }
        ucnv_fromUnicode(::core::mem::transmute(converter), ::core::mem::transmute(target), targetlimit.into_param().abi(), ::core::mem::transmute(source), ::core::mem::transmute(sourcelimit), ::core::mem::transmute(offsets), ::core::mem::transmute(flush), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getAlias<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(alias: Param0, n: u16, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getAlias(alias: ::windows::core::PCSTR, n: u16, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucnv_getAlias(alias.into_param().abi(), ::core::mem::transmute(n), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getAliases<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(alias: Param0, aliases: *const *const i8, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getAliases(alias: ::windows::core::PCSTR, aliases: *const *const i8, perrorcode: *mut UErrorCode);
        }
        ucnv_getAliases(alias.into_param().abi(), ::core::mem::transmute(aliases), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getAvailableName(n: i32) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getAvailableName(n: i32) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucnv_getAvailableName(::core::mem::transmute(n)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getCCSID(converter: *const UConverter, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getCCSID(converter: *const UConverter, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnv_getCCSID(::core::mem::transmute(converter), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getCanonicalName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(alias: Param0, standard: Param1, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getCanonicalName(alias: ::windows::core::PCSTR, standard: ::windows::core::PCSTR, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucnv_getCanonicalName(alias.into_param().abi(), standard.into_param().abi(), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getDefaultName() -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getDefaultName() -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucnv_getDefaultName())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getDisplayName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(converter: *const UConverter, displaylocale: Param1, displayname: *mut u16, displaynamecapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getDisplayName(converter: *const UConverter, displaylocale: ::windows::core::PCSTR, displayname: *mut u16, displaynamecapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnv_getDisplayName(::core::mem::transmute(converter), displaylocale.into_param().abi(), ::core::mem::transmute(displayname), ::core::mem::transmute(displaynamecapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getFromUCallBack(converter: *const UConverter, action: *mut UConverterFromUCallback, context: *const *const ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getFromUCallBack(converter: *const UConverter, action: *mut ::windows::core::RawPtr, context: *const *const ::core::ffi::c_void);
        }
        ucnv_getFromUCallBack(::core::mem::transmute(converter), ::core::mem::transmute(action), ::core::mem::transmute(context))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getInvalidChars<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(converter: *const UConverter, errbytes: Param1, len: *mut i8, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getInvalidChars(converter: *const UConverter, errbytes: ::windows::core::PCSTR, len: *mut i8, err: *mut UErrorCode);
        }
        ucnv_getInvalidChars(::core::mem::transmute(converter), errbytes.into_param().abi(), ::core::mem::transmute(len), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getInvalidUChars(converter: *const UConverter, erruchars: *mut u16, len: *mut i8, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getInvalidUChars(converter: *const UConverter, erruchars: *mut u16, len: *mut i8, err: *mut UErrorCode);
        }
        ucnv_getInvalidUChars(::core::mem::transmute(converter), ::core::mem::transmute(erruchars), ::core::mem::transmute(len), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getMaxCharSize(converter: *const UConverter) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getMaxCharSize(converter: *const UConverter) -> i8;
        }
        ::core::mem::transmute(ucnv_getMaxCharSize(::core::mem::transmute(converter)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getMinCharSize(converter: *const UConverter) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getMinCharSize(converter: *const UConverter) -> i8;
        }
        ::core::mem::transmute(ucnv_getMinCharSize(::core::mem::transmute(converter)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getName(converter: *const UConverter, err: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getName(converter: *const UConverter, err: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucnv_getName(::core::mem::transmute(converter), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getNextUChar<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(converter: *mut UConverter, source: *const *const i8, sourcelimit: Param2, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getNextUChar(converter: *mut UConverter, source: *const *const i8, sourcelimit: ::windows::core::PCSTR, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnv_getNextUChar(::core::mem::transmute(converter), ::core::mem::transmute(source), sourcelimit.into_param().abi(), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getPlatform(converter: *const UConverter, err: *mut UErrorCode) -> UConverterPlatform {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getPlatform(converter: *const UConverter, err: *mut UErrorCode) -> UConverterPlatform;
        }
        ::core::mem::transmute(ucnv_getPlatform(::core::mem::transmute(converter), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getStandard(n: u16, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getStandard(n: u16, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucnv_getStandard(::core::mem::transmute(n), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getStandardName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(name: Param0, standard: Param1, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getStandardName(name: ::windows::core::PCSTR, standard: ::windows::core::PCSTR, perrorcode: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucnv_getStandardName(name.into_param().abi(), standard.into_param().abi(), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getStarters(converter: *const UConverter, starters: *mut i8, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getStarters(converter: *const UConverter, starters: *mut i8, err: *mut UErrorCode);
        }
        ucnv_getStarters(::core::mem::transmute(converter), ::core::mem::transmute(starters), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getSubstChars<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(converter: *const UConverter, subchars: Param1, len: *mut i8, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getSubstChars(converter: *const UConverter, subchars: ::windows::core::PCSTR, len: *mut i8, err: *mut UErrorCode);
        }
        ucnv_getSubstChars(::core::mem::transmute(converter), subchars.into_param().abi(), ::core::mem::transmute(len), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getToUCallBack(converter: *const UConverter, action: *mut UConverterToUCallback, context: *const *const ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getToUCallBack(converter: *const UConverter, action: *mut ::windows::core::RawPtr, context: *const *const ::core::ffi::c_void);
        }
        ucnv_getToUCallBack(::core::mem::transmute(converter), ::core::mem::transmute(action), ::core::mem::transmute(context))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getType(converter: *const UConverter) -> UConverterType {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getType(converter: *const UConverter) -> UConverterType;
        }
        ::core::mem::transmute(ucnv_getType(::core::mem::transmute(converter)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_getUnicodeSet(cnv: *const UConverter, setfillin: *mut USet, whichset: UConverterUnicodeSet, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_getUnicodeSet(cnv: *const UConverter, setfillin: *mut USet, whichset: UConverterUnicodeSet, perrorcode: *mut UErrorCode);
        }
        ucnv_getUnicodeSet(::core::mem::transmute(cnv), ::core::mem::transmute(setfillin), ::core::mem::transmute(whichset), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_isAmbiguous(cnv: *const UConverter) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_isAmbiguous(cnv: *const UConverter) -> i8;
        }
        ::core::mem::transmute(ucnv_isAmbiguous(::core::mem::transmute(cnv)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_isFixedWidth(cnv: *mut UConverter, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_isFixedWidth(cnv: *mut UConverter, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(ucnv_isFixedWidth(::core::mem::transmute(cnv), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(convertername: Param0, err: *mut UErrorCode) -> *mut UConverter {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_open(convertername: ::windows::core::PCSTR, err: *mut UErrorCode) -> *mut UConverter;
        }
        ::core::mem::transmute(ucnv_open(convertername.into_param().abi(), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_openAllNames(perrorcode: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_openAllNames(perrorcode: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucnv_openAllNames(::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_openCCSID(codepage: i32, platform: UConverterPlatform, err: *mut UErrorCode) -> *mut UConverter {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_openCCSID(codepage: i32, platform: UConverterPlatform, err: *mut UErrorCode) -> *mut UConverter;
        }
        ::core::mem::transmute(ucnv_openCCSID(::core::mem::transmute(codepage), ::core::mem::transmute(platform), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_openPackage<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(packagename: Param0, convertername: Param1, err: *mut UErrorCode) -> *mut UConverter {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_openPackage(packagename: ::windows::core::PCSTR, convertername: ::windows::core::PCSTR, err: *mut UErrorCode) -> *mut UConverter;
        }
        ::core::mem::transmute(ucnv_openPackage(packagename.into_param().abi(), convertername.into_param().abi(), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_openStandardNames<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(convname: Param0, standard: Param1, perrorcode: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_openStandardNames(convname: ::windows::core::PCSTR, standard: ::windows::core::PCSTR, perrorcode: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucnv_openStandardNames(convname.into_param().abi(), standard.into_param().abi(), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_openU(name: *const u16, err: *mut UErrorCode) -> *mut UConverter {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_openU(name: *const u16, err: *mut UErrorCode) -> *mut UConverter;
        }
        ::core::mem::transmute(ucnv_openU(::core::mem::transmute(name), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_reset(converter: *mut UConverter) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_reset(converter: *mut UConverter);
        }
        ucnv_reset(::core::mem::transmute(converter))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_resetFromUnicode(converter: *mut UConverter) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_resetFromUnicode(converter: *mut UConverter);
        }
        ucnv_resetFromUnicode(::core::mem::transmute(converter))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_resetToUnicode(converter: *mut UConverter) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_resetToUnicode(converter: *mut UConverter);
        }
        ucnv_resetToUnicode(::core::mem::transmute(converter))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_safeClone(cnv: *const UConverter, stackbuffer: *mut ::core::ffi::c_void, pbuffersize: *mut i32, status: *mut UErrorCode) -> *mut UConverter {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_safeClone(cnv: *const UConverter, stackbuffer: *mut ::core::ffi::c_void, pbuffersize: *mut i32, status: *mut UErrorCode) -> *mut UConverter;
        }
        ::core::mem::transmute(ucnv_safeClone(::core::mem::transmute(cnv), ::core::mem::transmute(stackbuffer), ::core::mem::transmute(pbuffersize), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_setDefaultName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(name: Param0) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_setDefaultName(name: ::windows::core::PCSTR);
        }
        ucnv_setDefaultName(name.into_param().abi())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_setFallback(cnv: *mut UConverter, usesfallback: i8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_setFallback(cnv: *mut UConverter, usesfallback: i8);
        }
        ucnv_setFallback(::core::mem::transmute(cnv), ::core::mem::transmute(usesfallback))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_setFromUCallBack(converter: *mut UConverter, newaction: UConverterFromUCallback, newcontext: *const ::core::ffi::c_void, oldaction: *mut UConverterFromUCallback, oldcontext: *const *const ::core::ffi::c_void, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_setFromUCallBack(converter: *mut UConverter, newaction: ::windows::core::RawPtr, newcontext: *const ::core::ffi::c_void, oldaction: *mut ::windows::core::RawPtr, oldcontext: *const *const ::core::ffi::c_void, err: *mut UErrorCode);
        }
        ucnv_setFromUCallBack(::core::mem::transmute(converter), ::core::mem::transmute(newaction), ::core::mem::transmute(newcontext), ::core::mem::transmute(oldaction), ::core::mem::transmute(oldcontext), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_setSubstChars<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(converter: *mut UConverter, subchars: Param1, len: i8, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_setSubstChars(converter: *mut UConverter, subchars: ::windows::core::PCSTR, len: i8, err: *mut UErrorCode);
        }
        ucnv_setSubstChars(::core::mem::transmute(converter), subchars.into_param().abi(), ::core::mem::transmute(len), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_setSubstString(cnv: *mut UConverter, s: *const u16, length: i32, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_setSubstString(cnv: *mut UConverter, s: *const u16, length: i32, err: *mut UErrorCode);
        }
        ucnv_setSubstString(::core::mem::transmute(cnv), ::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_setToUCallBack(converter: *mut UConverter, newaction: UConverterToUCallback, newcontext: *const ::core::ffi::c_void, oldaction: *mut UConverterToUCallback, oldcontext: *const *const ::core::ffi::c_void, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_setToUCallBack(converter: *mut UConverter, newaction: ::windows::core::RawPtr, newcontext: *const ::core::ffi::c_void, oldaction: *mut ::windows::core::RawPtr, oldcontext: *const *const ::core::ffi::c_void, err: *mut UErrorCode);
        }
        ucnv_setToUCallBack(::core::mem::transmute(converter), ::core::mem::transmute(newaction), ::core::mem::transmute(newcontext), ::core::mem::transmute(oldaction), ::core::mem::transmute(oldcontext), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_toAlgorithmic<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(algorithmictype: UConverterType, cnv: *mut UConverter, target: Param2, targetcapacity: i32, source: Param4, sourcelength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_toAlgorithmic(algorithmictype: UConverterType, cnv: *mut UConverter, target: ::windows::core::PCSTR, targetcapacity: i32, source: ::windows::core::PCSTR, sourcelength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnv_toAlgorithmic(::core::mem::transmute(algorithmictype), ::core::mem::transmute(cnv), target.into_param().abi(), ::core::mem::transmute(targetcapacity), source.into_param().abi(), ::core::mem::transmute(sourcelength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_toUChars<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(cnv: *mut UConverter, dest: *mut u16, destcapacity: i32, src: Param3, srclength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_toUChars(cnv: *mut UConverter, dest: *mut u16, destcapacity: i32, src: ::windows::core::PCSTR, srclength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnv_toUChars(::core::mem::transmute(cnv), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), src.into_param().abi(), ::core::mem::transmute(srclength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_toUCountPending(cnv: *const UConverter, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_toUCountPending(cnv: *const UConverter, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnv_toUCountPending(::core::mem::transmute(cnv), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_toUnicode<'a, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(converter: *mut UConverter, target: *mut *mut u16, targetlimit: *const u16, source: *const *const i8, sourcelimit: Param4, offsets: *mut i32, flush: i8, err: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_toUnicode(converter: *mut UConverter, target: *mut *mut u16, targetlimit: *const u16, source: *const *const i8, sourcelimit: ::windows::core::PCSTR, offsets: *mut i32, flush: i8, err: *mut UErrorCode);
        }
        ucnv_toUnicode(::core::mem::transmute(converter), ::core::mem::transmute(target), ::core::mem::transmute(targetlimit), ::core::mem::transmute(source), sourcelimit.into_param().abi(), ::core::mem::transmute(offsets), ::core::mem::transmute(flush), ::core::mem::transmute(err))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnv_usesFallback(cnv: *const UConverter) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnv_usesFallback(cnv: *const UConverter) -> i8;
        }
        ::core::mem::transmute(ucnv_usesFallback(::core::mem::transmute(cnv)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnvsel_close(sel: *mut UConverterSelector) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnvsel_close(sel: *mut UConverterSelector);
        }
        ucnvsel_close(::core::mem::transmute(sel))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnvsel_open(converterlist: *const *const i8, converterlistsize: i32, excludedcodepoints: *const USet, whichset: UConverterUnicodeSet, status: *mut UErrorCode) -> *mut UConverterSelector {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnvsel_open(converterlist: *const *const i8, converterlistsize: i32, excludedcodepoints: *const USet, whichset: UConverterUnicodeSet, status: *mut UErrorCode) -> *mut UConverterSelector;
        }
        ::core::mem::transmute(ucnvsel_open(::core::mem::transmute(converterlist), ::core::mem::transmute(converterlistsize), ::core::mem::transmute(excludedcodepoints), ::core::mem::transmute(whichset), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnvsel_openFromSerialized(buffer: *const ::core::ffi::c_void, length: i32, status: *mut UErrorCode) -> *mut UConverterSelector {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnvsel_openFromSerialized(buffer: *const ::core::ffi::c_void, length: i32, status: *mut UErrorCode) -> *mut UConverterSelector;
        }
        ::core::mem::transmute(ucnvsel_openFromSerialized(::core::mem::transmute(buffer), ::core::mem::transmute(length), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnvsel_selectForString(sel: *const UConverterSelector, s: *const u16, length: i32, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnvsel_selectForString(sel: *const UConverterSelector, s: *const u16, length: i32, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucnvsel_selectForString(::core::mem::transmute(sel), ::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnvsel_selectForUTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(sel: *const UConverterSelector, s: Param1, length: i32, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnvsel_selectForUTF8(sel: *const UConverterSelector, s: ::windows::core::PCSTR, length: i32, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucnvsel_selectForUTF8(::core::mem::transmute(sel), s.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucnvsel_serialize(sel: *const UConverterSelector, buffer: *mut ::core::ffi::c_void, buffercapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucnvsel_serialize(sel: *const UConverterSelector, buffer: *mut ::core::ffi::c_void, buffercapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucnvsel_serialize(::core::mem::transmute(sel), ::core::mem::transmute(buffer), ::core::mem::transmute(buffercapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_cloneBinary(coll: *const UCollator, buffer: *mut u8, capacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_cloneBinary(coll: *const UCollator, buffer: *mut u8, capacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucol_cloneBinary(::core::mem::transmute(coll), ::core::mem::transmute(buffer), ::core::mem::transmute(capacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_close(coll: *mut UCollator) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_close(coll: *mut UCollator);
        }
        ucol_close(::core::mem::transmute(coll))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_closeElements(elems: *mut UCollationElements) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_closeElements(elems: *mut UCollationElements);
        }
        ucol_closeElements(::core::mem::transmute(elems))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_countAvailable() -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_countAvailable() -> i32;
        }
        ::core::mem::transmute(ucol_countAvailable())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_equal(coll: *const UCollator, source: *const u16, sourcelength: i32, target: *const u16, targetlength: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_equal(coll: *const UCollator, source: *const u16, sourcelength: i32, target: *const u16, targetlength: i32) -> i8;
        }
        ::core::mem::transmute(ucol_equal(::core::mem::transmute(coll), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(target), ::core::mem::transmute(targetlength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getAttribute(coll: *const UCollator, attr: UColAttribute, status: *mut UErrorCode) -> UColAttributeValue {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getAttribute(coll: *const UCollator, attr: UColAttribute, status: *mut UErrorCode) -> UColAttributeValue;
        }
        ::core::mem::transmute(ucol_getAttribute(::core::mem::transmute(coll), ::core::mem::transmute(attr), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getAvailable(localeindex: i32) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getAvailable(localeindex: i32) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucol_getAvailable(::core::mem::transmute(localeindex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getBound(source: *const u8, sourcelength: i32, boundtype: UColBoundMode, nooflevels: u32, result: *mut u8, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getBound(source: *const u8, sourcelength: i32, boundtype: UColBoundMode, nooflevels: u32, result: *mut u8, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucol_getBound(::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(boundtype), ::core::mem::transmute(nooflevels), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getContractionsAndExpansions(coll: *const UCollator, contractions: *mut USet, expansions: *mut USet, addprefixes: i8, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getContractionsAndExpansions(coll: *const UCollator, contractions: *mut USet, expansions: *mut USet, addprefixes: i8, status: *mut UErrorCode);
        }
        ucol_getContractionsAndExpansions(::core::mem::transmute(coll), ::core::mem::transmute(contractions), ::core::mem::transmute(expansions), ::core::mem::transmute(addprefixes), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getDisplayName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(objloc: Param0, disploc: Param1, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getDisplayName(objloc: ::windows::core::PCSTR, disploc: ::windows::core::PCSTR, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucol_getDisplayName(objloc.into_param().abi(), disploc.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getEquivalentReorderCodes(reordercode: i32, dest: *mut i32, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getEquivalentReorderCodes(reordercode: i32, dest: *mut i32, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucol_getEquivalentReorderCodes(::core::mem::transmute(reordercode), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getFunctionalEquivalent<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(result: Param0, resultcapacity: i32, keyword: Param2, locale: Param3, isavailable: *mut i8, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getFunctionalEquivalent(result: ::windows::core::PCSTR, resultcapacity: i32, keyword: ::windows::core::PCSTR, locale: ::windows::core::PCSTR, isavailable: *mut i8, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucol_getFunctionalEquivalent(result.into_param().abi(), ::core::mem::transmute(resultcapacity), keyword.into_param().abi(), locale.into_param().abi(), ::core::mem::transmute(isavailable), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getKeywordValues<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(keyword: Param0, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getKeywordValues(keyword: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucol_getKeywordValues(keyword.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getKeywordValuesForLocale<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(key: Param0, locale: Param1, commonlyused: i8, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getKeywordValuesForLocale(key: ::windows::core::PCSTR, locale: ::windows::core::PCSTR, commonlyused: i8, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucol_getKeywordValuesForLocale(key.into_param().abi(), locale.into_param().abi(), ::core::mem::transmute(commonlyused), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getKeywords(status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getKeywords(status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucol_getKeywords(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getLocaleByType(coll: *const UCollator, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getLocaleByType(coll: *const UCollator, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucol_getLocaleByType(::core::mem::transmute(coll), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getMaxExpansion(elems: *const UCollationElements, order: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getMaxExpansion(elems: *const UCollationElements, order: i32) -> i32;
        }
        ::core::mem::transmute(ucol_getMaxExpansion(::core::mem::transmute(elems), ::core::mem::transmute(order)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getMaxVariable(coll: *const UCollator) -> UColReorderCode {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getMaxVariable(coll: *const UCollator) -> UColReorderCode;
        }
        ::core::mem::transmute(ucol_getMaxVariable(::core::mem::transmute(coll)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getOffset(elems: *const UCollationElements) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getOffset(elems: *const UCollationElements) -> i32;
        }
        ::core::mem::transmute(ucol_getOffset(::core::mem::transmute(elems)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getReorderCodes(coll: *const UCollator, dest: *mut i32, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getReorderCodes(coll: *const UCollator, dest: *mut i32, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucol_getReorderCodes(::core::mem::transmute(coll), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getRules(coll: *const UCollator, length: *mut i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getRules(coll: *const UCollator, length: *mut i32) -> *mut u16;
        }
        ::core::mem::transmute(ucol_getRules(::core::mem::transmute(coll), ::core::mem::transmute(length)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getRulesEx(coll: *const UCollator, delta: UColRuleOption, buffer: *mut u16, bufferlen: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getRulesEx(coll: *const UCollator, delta: UColRuleOption, buffer: *mut u16, bufferlen: i32) -> i32;
        }
        ::core::mem::transmute(ucol_getRulesEx(::core::mem::transmute(coll), ::core::mem::transmute(delta), ::core::mem::transmute(buffer), ::core::mem::transmute(bufferlen)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getSortKey(coll: *const UCollator, source: *const u16, sourcelength: i32, result: *mut u8, resultlength: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getSortKey(coll: *const UCollator, source: *const u16, sourcelength: i32, result: *mut u8, resultlength: i32) -> i32;
        }
        ::core::mem::transmute(ucol_getSortKey(::core::mem::transmute(coll), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(result), ::core::mem::transmute(resultlength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getStrength(coll: *const UCollator) -> UColAttributeValue {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getStrength(coll: *const UCollator) -> UColAttributeValue;
        }
        ::core::mem::transmute(ucol_getStrength(::core::mem::transmute(coll)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getTailoredSet(coll: *const UCollator, status: *mut UErrorCode) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getTailoredSet(coll: *const UCollator, status: *mut UErrorCode) -> *mut USet;
        }
        ::core::mem::transmute(ucol_getTailoredSet(::core::mem::transmute(coll), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getUCAVersion(coll: *const UCollator, info: *mut u8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getUCAVersion(coll: *const UCollator, info: *mut u8);
        }
        ucol_getUCAVersion(::core::mem::transmute(coll), ::core::mem::transmute(info))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getVariableTop(coll: *const UCollator, status: *mut UErrorCode) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getVariableTop(coll: *const UCollator, status: *mut UErrorCode) -> u32;
        }
        ::core::mem::transmute(ucol_getVariableTop(::core::mem::transmute(coll), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_getVersion(coll: *const UCollator, info: *mut u8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_getVersion(coll: *const UCollator, info: *mut u8);
        }
        ucol_getVersion(::core::mem::transmute(coll), ::core::mem::transmute(info))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_greater(coll: *const UCollator, source: *const u16, sourcelength: i32, target: *const u16, targetlength: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_greater(coll: *const UCollator, source: *const u16, sourcelength: i32, target: *const u16, targetlength: i32) -> i8;
        }
        ::core::mem::transmute(ucol_greater(::core::mem::transmute(coll), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(target), ::core::mem::transmute(targetlength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_greaterOrEqual(coll: *const UCollator, source: *const u16, sourcelength: i32, target: *const u16, targetlength: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_greaterOrEqual(coll: *const UCollator, source: *const u16, sourcelength: i32, target: *const u16, targetlength: i32) -> i8;
        }
        ::core::mem::transmute(ucol_greaterOrEqual(::core::mem::transmute(coll), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(target), ::core::mem::transmute(targetlength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_keyHashCode(key: *const u8, length: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_keyHashCode(key: *const u8, length: i32) -> i32;
        }
        ::core::mem::transmute(ucol_keyHashCode(::core::mem::transmute(key), ::core::mem::transmute(length)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_mergeSortkeys(src1: *const u8, src1length: i32, src2: *const u8, src2length: i32, dest: *mut u8, destcapacity: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_mergeSortkeys(src1: *const u8, src1length: i32, src2: *const u8, src2length: i32, dest: *mut u8, destcapacity: i32) -> i32;
        }
        ::core::mem::transmute(ucol_mergeSortkeys(::core::mem::transmute(src1), ::core::mem::transmute(src1length), ::core::mem::transmute(src2), ::core::mem::transmute(src2length), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_next(elems: *mut UCollationElements, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_next(elems: *mut UCollationElements, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucol_next(::core::mem::transmute(elems), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_nextSortKeyPart(coll: *const UCollator, iter: *mut UCharIterator, state: *mut u32, dest: *mut u8, count: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_nextSortKeyPart(coll: *const UCollator, iter: *mut UCharIterator, state: *mut u32, dest: *mut u8, count: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucol_nextSortKeyPart(::core::mem::transmute(coll), ::core::mem::transmute(iter), ::core::mem::transmute(state), ::core::mem::transmute(dest), ::core::mem::transmute(count), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(loc: Param0, status: *mut UErrorCode) -> *mut UCollator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_open(loc: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UCollator;
        }
        ::core::mem::transmute(ucol_open(loc.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_openAvailableLocales(status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_openAvailableLocales(status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucol_openAvailableLocales(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_openBinary(bin: *const u8, length: i32, base: *const UCollator, status: *mut UErrorCode) -> *mut UCollator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_openBinary(bin: *const u8, length: i32, base: *const UCollator, status: *mut UErrorCode) -> *mut UCollator;
        }
        ::core::mem::transmute(ucol_openBinary(::core::mem::transmute(bin), ::core::mem::transmute(length), ::core::mem::transmute(base), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_openElements(coll: *const UCollator, text: *const u16, textlength: i32, status: *mut UErrorCode) -> *mut UCollationElements {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_openElements(coll: *const UCollator, text: *const u16, textlength: i32, status: *mut UErrorCode) -> *mut UCollationElements;
        }
        ::core::mem::transmute(ucol_openElements(::core::mem::transmute(coll), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_openRules(rules: *const u16, ruleslength: i32, normalizationmode: UColAttributeValue, strength: UColAttributeValue, parseerror: *mut UParseError, status: *mut UErrorCode) -> *mut UCollator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_openRules(rules: *const u16, ruleslength: i32, normalizationmode: UColAttributeValue, strength: UColAttributeValue, parseerror: *mut UParseError, status: *mut UErrorCode) -> *mut UCollator;
        }
        ::core::mem::transmute(ucol_openRules(::core::mem::transmute(rules), ::core::mem::transmute(ruleslength), ::core::mem::transmute(normalizationmode), ::core::mem::transmute(strength), ::core::mem::transmute(parseerror), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_previous(elems: *mut UCollationElements, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_previous(elems: *mut UCollationElements, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucol_previous(::core::mem::transmute(elems), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_primaryOrder(order: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_primaryOrder(order: i32) -> i32;
        }
        ::core::mem::transmute(ucol_primaryOrder(::core::mem::transmute(order)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_reset(elems: *mut UCollationElements) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_reset(elems: *mut UCollationElements);
        }
        ucol_reset(::core::mem::transmute(elems))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_safeClone(coll: *const UCollator, stackbuffer: *mut ::core::ffi::c_void, pbuffersize: *mut i32, status: *mut UErrorCode) -> *mut UCollator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_safeClone(coll: *const UCollator, stackbuffer: *mut ::core::ffi::c_void, pbuffersize: *mut i32, status: *mut UErrorCode) -> *mut UCollator;
        }
        ::core::mem::transmute(ucol_safeClone(::core::mem::transmute(coll), ::core::mem::transmute(stackbuffer), ::core::mem::transmute(pbuffersize), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_secondaryOrder(order: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_secondaryOrder(order: i32) -> i32;
        }
        ::core::mem::transmute(ucol_secondaryOrder(::core::mem::transmute(order)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_setAttribute(coll: *mut UCollator, attr: UColAttribute, value: UColAttributeValue, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_setAttribute(coll: *mut UCollator, attr: UColAttribute, value: UColAttributeValue, status: *mut UErrorCode);
        }
        ucol_setAttribute(::core::mem::transmute(coll), ::core::mem::transmute(attr), ::core::mem::transmute(value), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_setMaxVariable(coll: *mut UCollator, group: UColReorderCode, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_setMaxVariable(coll: *mut UCollator, group: UColReorderCode, perrorcode: *mut UErrorCode);
        }
        ucol_setMaxVariable(::core::mem::transmute(coll), ::core::mem::transmute(group), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_setOffset(elems: *mut UCollationElements, offset: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_setOffset(elems: *mut UCollationElements, offset: i32, status: *mut UErrorCode);
        }
        ucol_setOffset(::core::mem::transmute(elems), ::core::mem::transmute(offset), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_setReorderCodes(coll: *mut UCollator, reordercodes: *const i32, reordercodeslength: i32, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_setReorderCodes(coll: *mut UCollator, reordercodes: *const i32, reordercodeslength: i32, perrorcode: *mut UErrorCode);
        }
        ucol_setReorderCodes(::core::mem::transmute(coll), ::core::mem::transmute(reordercodes), ::core::mem::transmute(reordercodeslength), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_setStrength(coll: *mut UCollator, strength: UColAttributeValue) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_setStrength(coll: *mut UCollator, strength: UColAttributeValue);
        }
        ucol_setStrength(::core::mem::transmute(coll), ::core::mem::transmute(strength))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_setText(elems: *mut UCollationElements, text: *const u16, textlength: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_setText(elems: *mut UCollationElements, text: *const u16, textlength: i32, status: *mut UErrorCode);
        }
        ucol_setText(::core::mem::transmute(elems), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_strcoll(coll: *const UCollator, source: *const u16, sourcelength: i32, target: *const u16, targetlength: i32) -> UCollationResult {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_strcoll(coll: *const UCollator, source: *const u16, sourcelength: i32, target: *const u16, targetlength: i32) -> UCollationResult;
        }
        ::core::mem::transmute(ucol_strcoll(::core::mem::transmute(coll), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(target), ::core::mem::transmute(targetlength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_strcollIter(coll: *const UCollator, siter: *mut UCharIterator, titer: *mut UCharIterator, status: *mut UErrorCode) -> UCollationResult {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_strcollIter(coll: *const UCollator, siter: *mut UCharIterator, titer: *mut UCharIterator, status: *mut UErrorCode) -> UCollationResult;
        }
        ::core::mem::transmute(ucol_strcollIter(::core::mem::transmute(coll), ::core::mem::transmute(siter), ::core::mem::transmute(titer), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_strcollUTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(coll: *const UCollator, source: Param1, sourcelength: i32, target: Param3, targetlength: i32, status: *mut UErrorCode) -> UCollationResult {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_strcollUTF8(coll: *const UCollator, source: ::windows::core::PCSTR, sourcelength: i32, target: ::windows::core::PCSTR, targetlength: i32, status: *mut UErrorCode) -> UCollationResult;
        }
        ::core::mem::transmute(ucol_strcollUTF8(::core::mem::transmute(coll), source.into_param().abi(), ::core::mem::transmute(sourcelength), target.into_param().abi(), ::core::mem::transmute(targetlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucol_tertiaryOrder(order: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucol_tertiaryOrder(order: i32) -> i32;
        }
        ::core::mem::transmute(ucol_tertiaryOrder(::core::mem::transmute(order)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucpmap_get(map: *const UCPMap, c: i32) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucpmap_get(map: *const UCPMap, c: i32) -> u32;
        }
        ::core::mem::transmute(ucpmap_get(::core::mem::transmute(map), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucpmap_getRange(map: *const UCPMap, start: i32, option: UCPMapRangeOption, surrogatevalue: u32, filter: *mut UCPMapValueFilter, context: *const ::core::ffi::c_void, pvalue: *mut u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucpmap_getRange(map: *const UCPMap, start: i32, option: UCPMapRangeOption, surrogatevalue: u32, filter: *mut ::windows::core::RawPtr, context: *const ::core::ffi::c_void, pvalue: *mut u32) -> i32;
        }
        ::core::mem::transmute(ucpmap_getRange(::core::mem::transmute(map), ::core::mem::transmute(start), ::core::mem::transmute(option), ::core::mem::transmute(surrogatevalue), ::core::mem::transmute(filter), ::core::mem::transmute(context), ::core::mem::transmute(pvalue)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucptrie_close(trie: *mut UCPTrie) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucptrie_close(trie: *mut UCPTrie);
        }
        ucptrie_close(::core::mem::transmute(trie))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucptrie_get(trie: *const UCPTrie, c: i32) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucptrie_get(trie: *const UCPTrie, c: i32) -> u32;
        }
        ::core::mem::transmute(ucptrie_get(::core::mem::transmute(trie), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucptrie_getRange(trie: *const UCPTrie, start: i32, option: UCPMapRangeOption, surrogatevalue: u32, filter: *mut UCPMapValueFilter, context: *const ::core::ffi::c_void, pvalue: *mut u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucptrie_getRange(trie: *const UCPTrie, start: i32, option: UCPMapRangeOption, surrogatevalue: u32, filter: *mut ::windows::core::RawPtr, context: *const ::core::ffi::c_void, pvalue: *mut u32) -> i32;
        }
        ::core::mem::transmute(ucptrie_getRange(::core::mem::transmute(trie), ::core::mem::transmute(start), ::core::mem::transmute(option), ::core::mem::transmute(surrogatevalue), ::core::mem::transmute(filter), ::core::mem::transmute(context), ::core::mem::transmute(pvalue)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucptrie_getType(trie: *const UCPTrie) -> UCPTrieType {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucptrie_getType(trie: *const UCPTrie) -> UCPTrieType;
        }
        ::core::mem::transmute(ucptrie_getType(::core::mem::transmute(trie)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucptrie_getValueWidth(trie: *const UCPTrie) -> UCPTrieValueWidth {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucptrie_getValueWidth(trie: *const UCPTrie) -> UCPTrieValueWidth;
        }
        ::core::mem::transmute(ucptrie_getValueWidth(::core::mem::transmute(trie)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucptrie_internalSmallIndex(trie: *const UCPTrie, c: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucptrie_internalSmallIndex(trie: *const UCPTrie, c: i32) -> i32;
        }
        ::core::mem::transmute(ucptrie_internalSmallIndex(::core::mem::transmute(trie), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucptrie_internalSmallU8Index(trie: *const UCPTrie, lt1: i32, t2: u8, t3: u8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucptrie_internalSmallU8Index(trie: *const UCPTrie, lt1: i32, t2: u8, t3: u8) -> i32;
        }
        ::core::mem::transmute(ucptrie_internalSmallU8Index(::core::mem::transmute(trie), ::core::mem::transmute(lt1), ::core::mem::transmute(t2), ::core::mem::transmute(t3)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucptrie_internalU8PrevIndex(trie: *const UCPTrie, c: i32, start: *const u8, src: *const u8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucptrie_internalU8PrevIndex(trie: *const UCPTrie, c: i32, start: *const u8, src: *const u8) -> i32;
        }
        ::core::mem::transmute(ucptrie_internalU8PrevIndex(::core::mem::transmute(trie), ::core::mem::transmute(c), ::core::mem::transmute(start), ::core::mem::transmute(src)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucptrie_openFromBinary(r#type: UCPTrieType, valuewidth: UCPTrieValueWidth, data: *const ::core::ffi::c_void, length: i32, pactuallength: *mut i32, perrorcode: *mut UErrorCode) -> *mut UCPTrie {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucptrie_openFromBinary(r#type: UCPTrieType, valuewidth: UCPTrieValueWidth, data: *const ::core::ffi::c_void, length: i32, pactuallength: *mut i32, perrorcode: *mut UErrorCode) -> *mut UCPTrie;
        }
        ::core::mem::transmute(ucptrie_openFromBinary(::core::mem::transmute(r#type), ::core::mem::transmute(valuewidth), ::core::mem::transmute(data), ::core::mem::transmute(length), ::core::mem::transmute(pactuallength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucptrie_toBinary(trie: *const UCPTrie, data: *mut ::core::ffi::c_void, capacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucptrie_toBinary(trie: *const UCPTrie, data: *mut ::core::ffi::c_void, capacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucptrie_toBinary(::core::mem::transmute(trie), ::core::mem::transmute(data), ::core::mem::transmute(capacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_close(ucsd: *mut UCharsetDetector) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_close(ucsd: *mut UCharsetDetector);
        }
        ucsdet_close(::core::mem::transmute(ucsd))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_detect(ucsd: *mut UCharsetDetector, status: *mut UErrorCode) -> *mut UCharsetMatch {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_detect(ucsd: *mut UCharsetDetector, status: *mut UErrorCode) -> *mut UCharsetMatch;
        }
        ::core::mem::transmute(ucsdet_detect(::core::mem::transmute(ucsd), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_detectAll(ucsd: *mut UCharsetDetector, matchesfound: *mut i32, status: *mut UErrorCode) -> *mut *mut UCharsetMatch {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_detectAll(ucsd: *mut UCharsetDetector, matchesfound: *mut i32, status: *mut UErrorCode) -> *mut *mut UCharsetMatch;
        }
        ::core::mem::transmute(ucsdet_detectAll(::core::mem::transmute(ucsd), ::core::mem::transmute(matchesfound), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_enableInputFilter(ucsd: *mut UCharsetDetector, filter: i8) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_enableInputFilter(ucsd: *mut UCharsetDetector, filter: i8) -> i8;
        }
        ::core::mem::transmute(ucsdet_enableInputFilter(::core::mem::transmute(ucsd), ::core::mem::transmute(filter)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_getAllDetectableCharsets(ucsd: *const UCharsetDetector, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_getAllDetectableCharsets(ucsd: *const UCharsetDetector, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucsdet_getAllDetectableCharsets(::core::mem::transmute(ucsd), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_getConfidence(ucsm: *const UCharsetMatch, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_getConfidence(ucsm: *const UCharsetMatch, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucsdet_getConfidence(::core::mem::transmute(ucsm), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_getLanguage(ucsm: *const UCharsetMatch, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_getLanguage(ucsm: *const UCharsetMatch, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucsdet_getLanguage(::core::mem::transmute(ucsm), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_getName(ucsm: *const UCharsetMatch, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_getName(ucsm: *const UCharsetMatch, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ucsdet_getName(::core::mem::transmute(ucsm), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_getUChars(ucsm: *const UCharsetMatch, buf: *mut u16, cap: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_getUChars(ucsm: *const UCharsetMatch, buf: *mut u16, cap: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucsdet_getUChars(::core::mem::transmute(ucsm), ::core::mem::transmute(buf), ::core::mem::transmute(cap), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_isInputFilterEnabled(ucsd: *const UCharsetDetector) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_isInputFilterEnabled(ucsd: *const UCharsetDetector) -> i8;
        }
        ::core::mem::transmute(ucsdet_isInputFilterEnabled(::core::mem::transmute(ucsd)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_open(status: *mut UErrorCode) -> *mut UCharsetDetector {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_open(status: *mut UErrorCode) -> *mut UCharsetDetector;
        }
        ::core::mem::transmute(ucsdet_open(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_setDeclaredEncoding<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(ucsd: *mut UCharsetDetector, encoding: Param1, length: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_setDeclaredEncoding(ucsd: *mut UCharsetDetector, encoding: ::windows::core::PCSTR, length: i32, status: *mut UErrorCode);
        }
        ucsdet_setDeclaredEncoding(::core::mem::transmute(ucsd), encoding.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucsdet_setText<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(ucsd: *mut UCharsetDetector, textin: Param1, len: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucsdet_setText(ucsd: *mut UCharsetDetector, textin: ::windows::core::PCSTR, len: i32, status: *mut UErrorCode);
        }
        ucsdet_setText(::core::mem::transmute(ucsd), textin.into_param().abi(), ::core::mem::transmute(len), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_countCurrencies<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, date: f64, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_countCurrencies(locale: ::windows::core::PCSTR, date: f64, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucurr_countCurrencies(locale.into_param().abi(), ::core::mem::transmute(date), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_forLocale<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, buff: *mut u16, buffcapacity: i32, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_forLocale(locale: ::windows::core::PCSTR, buff: *mut u16, buffcapacity: i32, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucurr_forLocale(locale.into_param().abi(), ::core::mem::transmute(buff), ::core::mem::transmute(buffcapacity), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_forLocaleAndDate<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, date: f64, index: i32, buff: *mut u16, buffcapacity: i32, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_forLocaleAndDate(locale: ::windows::core::PCSTR, date: f64, index: i32, buff: *mut u16, buffcapacity: i32, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucurr_forLocaleAndDate(locale.into_param().abi(), ::core::mem::transmute(date), ::core::mem::transmute(index), ::core::mem::transmute(buff), ::core::mem::transmute(buffcapacity), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_getDefaultFractionDigits(currency: *const u16, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_getDefaultFractionDigits(currency: *const u16, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucurr_getDefaultFractionDigits(::core::mem::transmute(currency), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_getDefaultFractionDigitsForUsage(currency: *const u16, usage: UCurrencyUsage, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_getDefaultFractionDigitsForUsage(currency: *const u16, usage: UCurrencyUsage, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ucurr_getDefaultFractionDigitsForUsage(::core::mem::transmute(currency), ::core::mem::transmute(usage), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_getKeywordValuesForLocale<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(key: Param0, locale: Param1, commonlyused: i8, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_getKeywordValuesForLocale(key: ::windows::core::PCSTR, locale: ::windows::core::PCSTR, commonlyused: i8, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucurr_getKeywordValuesForLocale(key.into_param().abi(), locale.into_param().abi(), ::core::mem::transmute(commonlyused), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_getName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(currency: *const u16, locale: Param1, namestyle: UCurrNameStyle, ischoiceformat: *mut i8, len: *mut i32, ec: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_getName(currency: *const u16, locale: ::windows::core::PCSTR, namestyle: UCurrNameStyle, ischoiceformat: *mut i8, len: *mut i32, ec: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(ucurr_getName(::core::mem::transmute(currency), locale.into_param().abi(), ::core::mem::transmute(namestyle), ::core::mem::transmute(ischoiceformat), ::core::mem::transmute(len), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_getNumericCode(currency: *const u16) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_getNumericCode(currency: *const u16) -> i32;
        }
        ::core::mem::transmute(ucurr_getNumericCode(::core::mem::transmute(currency)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_getPluralName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(currency: *const u16, locale: Param1, ischoiceformat: *mut i8, pluralcount: Param3, len: *mut i32, ec: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_getPluralName(currency: *const u16, locale: ::windows::core::PCSTR, ischoiceformat: *mut i8, pluralcount: ::windows::core::PCSTR, len: *mut i32, ec: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(ucurr_getPluralName(::core::mem::transmute(currency), locale.into_param().abi(), ::core::mem::transmute(ischoiceformat), pluralcount.into_param().abi(), ::core::mem::transmute(len), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_getRoundingIncrement(currency: *const u16, ec: *mut UErrorCode) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_getRoundingIncrement(currency: *const u16, ec: *mut UErrorCode) -> f64;
        }
        ::core::mem::transmute(ucurr_getRoundingIncrement(::core::mem::transmute(currency), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_getRoundingIncrementForUsage(currency: *const u16, usage: UCurrencyUsage, ec: *mut UErrorCode) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_getRoundingIncrementForUsage(currency: *const u16, usage: UCurrencyUsage, ec: *mut UErrorCode) -> f64;
        }
        ::core::mem::transmute(ucurr_getRoundingIncrementForUsage(::core::mem::transmute(currency), ::core::mem::transmute(usage), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_isAvailable(isocode: *const u16, from: f64, to: f64, errorcode: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_isAvailable(isocode: *const u16, from: f64, to: f64, errorcode: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(ucurr_isAvailable(::core::mem::transmute(isocode), ::core::mem::transmute(from), ::core::mem::transmute(to), ::core::mem::transmute(errorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_openISOCurrencies(currtype: u32, perrorcode: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_openISOCurrencies(currtype: u32, perrorcode: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ucurr_openISOCurrencies(::core::mem::transmute(currtype), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_register<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(isocode: *const u16, locale: Param1, status: *mut UErrorCode) -> *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_register(isocode: *const u16, locale: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(ucurr_register(::core::mem::transmute(isocode), locale.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ucurr_unregister(key: *mut ::core::ffi::c_void, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ucurr_unregister(key: *mut ::core::ffi::c_void, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(ucurr_unregister(::core::mem::transmute(key), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_adoptNumberFormat(fmt: *mut *mut ::core::ffi::c_void, numberformattoadopt: *mut *mut ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_adoptNumberFormat(fmt: *mut *mut ::core::ffi::c_void, numberformattoadopt: *mut *mut ::core::ffi::c_void);
        }
        udat_adoptNumberFormat(::core::mem::transmute(fmt), ::core::mem::transmute(numberformattoadopt))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_adoptNumberFormatForFields(fmt: *mut *mut ::core::ffi::c_void, fields: *const u16, numberformattoset: *mut *mut ::core::ffi::c_void, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_adoptNumberFormatForFields(fmt: *mut *mut ::core::ffi::c_void, fields: *const u16, numberformattoset: *mut *mut ::core::ffi::c_void, status: *mut UErrorCode);
        }
        udat_adoptNumberFormatForFields(::core::mem::transmute(fmt), ::core::mem::transmute(fields), ::core::mem::transmute(numberformattoset), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_applyPattern(format: *mut *mut ::core::ffi::c_void, localized: i8, pattern: *const u16, patternlength: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_applyPattern(format: *mut *mut ::core::ffi::c_void, localized: i8, pattern: *const u16, patternlength: i32);
        }
        udat_applyPattern(::core::mem::transmute(format), ::core::mem::transmute(localized), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_clone(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_clone(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(udat_clone(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_close(format: *mut *mut ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_close(format: *mut *mut ::core::ffi::c_void);
        }
        udat_close(::core::mem::transmute(format))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_countAvailable() -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_countAvailable() -> i32;
        }
        ::core::mem::transmute(udat_countAvailable())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_countSymbols(fmt: *const *const ::core::ffi::c_void, r#type: UDateFormatSymbolType) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_countSymbols(fmt: *const *const ::core::ffi::c_void, r#type: UDateFormatSymbolType) -> i32;
        }
        ::core::mem::transmute(udat_countSymbols(::core::mem::transmute(fmt), ::core::mem::transmute(r#type)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_format(format: *const *const ::core::ffi::c_void, datetoformat: f64, result: *mut u16, resultlength: i32, position: *mut UFieldPosition, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_format(format: *const *const ::core::ffi::c_void, datetoformat: f64, result: *mut u16, resultlength: i32, position: *mut UFieldPosition, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udat_format(::core::mem::transmute(format), ::core::mem::transmute(datetoformat), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(position), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_formatCalendar(format: *const *const ::core::ffi::c_void, calendar: *mut *mut ::core::ffi::c_void, result: *mut u16, capacity: i32, position: *mut UFieldPosition, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_formatCalendar(format: *const *const ::core::ffi::c_void, calendar: *mut *mut ::core::ffi::c_void, result: *mut u16, capacity: i32, position: *mut UFieldPosition, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udat_formatCalendar(::core::mem::transmute(format), ::core::mem::transmute(calendar), ::core::mem::transmute(result), ::core::mem::transmute(capacity), ::core::mem::transmute(position), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_formatCalendarForFields(format: *const *const ::core::ffi::c_void, calendar: *mut *mut ::core::ffi::c_void, result: *mut u16, capacity: i32, fpositer: *mut UFieldPositionIterator, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_formatCalendarForFields(format: *const *const ::core::ffi::c_void, calendar: *mut *mut ::core::ffi::c_void, result: *mut u16, capacity: i32, fpositer: *mut UFieldPositionIterator, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udat_formatCalendarForFields(::core::mem::transmute(format), ::core::mem::transmute(calendar), ::core::mem::transmute(result), ::core::mem::transmute(capacity), ::core::mem::transmute(fpositer), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_formatForFields(format: *const *const ::core::ffi::c_void, datetoformat: f64, result: *mut u16, resultlength: i32, fpositer: *mut UFieldPositionIterator, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_formatForFields(format: *const *const ::core::ffi::c_void, datetoformat: f64, result: *mut u16, resultlength: i32, fpositer: *mut UFieldPositionIterator, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udat_formatForFields(::core::mem::transmute(format), ::core::mem::transmute(datetoformat), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(fpositer), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_get2DigitYearStart(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_get2DigitYearStart(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> f64;
        }
        ::core::mem::transmute(udat_get2DigitYearStart(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_getAvailable(localeindex: i32) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_getAvailable(localeindex: i32) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(udat_getAvailable(::core::mem::transmute(localeindex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_getBooleanAttribute(fmt: *const *const ::core::ffi::c_void, attr: UDateFormatBooleanAttribute, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_getBooleanAttribute(fmt: *const *const ::core::ffi::c_void, attr: UDateFormatBooleanAttribute, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(udat_getBooleanAttribute(::core::mem::transmute(fmt), ::core::mem::transmute(attr), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_getCalendar(fmt: *const *const ::core::ffi::c_void) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_getCalendar(fmt: *const *const ::core::ffi::c_void) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(udat_getCalendar(::core::mem::transmute(fmt)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_getContext(fmt: *const *const ::core::ffi::c_void, r#type: UDisplayContextType, status: *mut UErrorCode) -> UDisplayContext {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_getContext(fmt: *const *const ::core::ffi::c_void, r#type: UDisplayContextType, status: *mut UErrorCode) -> UDisplayContext;
        }
        ::core::mem::transmute(udat_getContext(::core::mem::transmute(fmt), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_getLocaleByType(fmt: *const *const ::core::ffi::c_void, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_getLocaleByType(fmt: *const *const ::core::ffi::c_void, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(udat_getLocaleByType(::core::mem::transmute(fmt), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_getNumberFormat(fmt: *const *const ::core::ffi::c_void) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_getNumberFormat(fmt: *const *const ::core::ffi::c_void) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(udat_getNumberFormat(::core::mem::transmute(fmt)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_getNumberFormatForField(fmt: *const *const ::core::ffi::c_void, field: u16) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_getNumberFormatForField(fmt: *const *const ::core::ffi::c_void, field: u16) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(udat_getNumberFormatForField(::core::mem::transmute(fmt), ::core::mem::transmute(field)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_getSymbols(fmt: *const *const ::core::ffi::c_void, r#type: UDateFormatSymbolType, symbolindex: i32, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_getSymbols(fmt: *const *const ::core::ffi::c_void, r#type: UDateFormatSymbolType, symbolindex: i32, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udat_getSymbols(::core::mem::transmute(fmt), ::core::mem::transmute(r#type), ::core::mem::transmute(symbolindex), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_isLenient(fmt: *const *const ::core::ffi::c_void) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_isLenient(fmt: *const *const ::core::ffi::c_void) -> i8;
        }
        ::core::mem::transmute(udat_isLenient(::core::mem::transmute(fmt)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_open<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(timestyle: UDateFormatStyle, datestyle: UDateFormatStyle, locale: Param2, tzid: *const u16, tzidlength: i32, pattern: *const u16, patternlength: i32, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_open(timestyle: UDateFormatStyle, datestyle: UDateFormatStyle, locale: ::windows::core::PCSTR, tzid: *const u16, tzidlength: i32, pattern: *const u16, patternlength: i32, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(udat_open(::core::mem::transmute(timestyle), ::core::mem::transmute(datestyle), locale.into_param().abi(), ::core::mem::transmute(tzid), ::core::mem::transmute(tzidlength), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_parse(format: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_parse(format: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) -> f64;
        }
        ::core::mem::transmute(udat_parse(::core::mem::transmute(format), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(parsepos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_parseCalendar(format: *const *const ::core::ffi::c_void, calendar: *mut *mut ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_parseCalendar(format: *const *const ::core::ffi::c_void, calendar: *mut *mut ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode);
        }
        udat_parseCalendar(::core::mem::transmute(format), ::core::mem::transmute(calendar), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(parsepos), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_set2DigitYearStart(fmt: *mut *mut ::core::ffi::c_void, d: f64, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_set2DigitYearStart(fmt: *mut *mut ::core::ffi::c_void, d: f64, status: *mut UErrorCode);
        }
        udat_set2DigitYearStart(::core::mem::transmute(fmt), ::core::mem::transmute(d), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_setBooleanAttribute(fmt: *mut *mut ::core::ffi::c_void, attr: UDateFormatBooleanAttribute, newvalue: i8, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_setBooleanAttribute(fmt: *mut *mut ::core::ffi::c_void, attr: UDateFormatBooleanAttribute, newvalue: i8, status: *mut UErrorCode);
        }
        udat_setBooleanAttribute(::core::mem::transmute(fmt), ::core::mem::transmute(attr), ::core::mem::transmute(newvalue), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_setCalendar(fmt: *mut *mut ::core::ffi::c_void, calendartoset: *const *const ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_setCalendar(fmt: *mut *mut ::core::ffi::c_void, calendartoset: *const *const ::core::ffi::c_void);
        }
        udat_setCalendar(::core::mem::transmute(fmt), ::core::mem::transmute(calendartoset))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_setContext(fmt: *mut *mut ::core::ffi::c_void, value: UDisplayContext, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_setContext(fmt: *mut *mut ::core::ffi::c_void, value: UDisplayContext, status: *mut UErrorCode);
        }
        udat_setContext(::core::mem::transmute(fmt), ::core::mem::transmute(value), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_setLenient(fmt: *mut *mut ::core::ffi::c_void, islenient: i8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_setLenient(fmt: *mut *mut ::core::ffi::c_void, islenient: i8);
        }
        udat_setLenient(::core::mem::transmute(fmt), ::core::mem::transmute(islenient))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_setNumberFormat(fmt: *mut *mut ::core::ffi::c_void, numberformattoset: *const *const ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_setNumberFormat(fmt: *mut *mut ::core::ffi::c_void, numberformattoset: *const *const ::core::ffi::c_void);
        }
        udat_setNumberFormat(::core::mem::transmute(fmt), ::core::mem::transmute(numberformattoset))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_setSymbols(format: *mut *mut ::core::ffi::c_void, r#type: UDateFormatSymbolType, symbolindex: i32, value: *mut u16, valuelength: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_setSymbols(format: *mut *mut ::core::ffi::c_void, r#type: UDateFormatSymbolType, symbolindex: i32, value: *mut u16, valuelength: i32, status: *mut UErrorCode);
        }
        udat_setSymbols(::core::mem::transmute(format), ::core::mem::transmute(r#type), ::core::mem::transmute(symbolindex), ::core::mem::transmute(value), ::core::mem::transmute(valuelength), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_toCalendarDateField(field: UDateFormatField) -> UCalendarDateFields {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_toCalendarDateField(field: UDateFormatField) -> UCalendarDateFields;
        }
        ::core::mem::transmute(udat_toCalendarDateField(::core::mem::transmute(field)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udat_toPattern(fmt: *const *const ::core::ffi::c_void, localized: i8, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udat_toPattern(fmt: *const *const ::core::ffi::c_void, localized: i8, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udat_toPattern(::core::mem::transmute(fmt), ::core::mem::transmute(localized), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_addPattern(dtpg: *mut *mut ::core::ffi::c_void, pattern: *const u16, patternlength: i32, r#override: i8, conflictingpattern: *mut u16, capacity: i32, plength: *mut i32, perrorcode: *mut UErrorCode) -> UDateTimePatternConflict {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_addPattern(dtpg: *mut *mut ::core::ffi::c_void, pattern: *const u16, patternlength: i32, r#override: i8, conflictingpattern: *mut u16, capacity: i32, plength: *mut i32, perrorcode: *mut UErrorCode) -> UDateTimePatternConflict;
        }
        ::core::mem::transmute(udatpg_addPattern(::core::mem::transmute(dtpg), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(r#override), ::core::mem::transmute(conflictingpattern), ::core::mem::transmute(capacity), ::core::mem::transmute(plength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_clone(dtpg: *const *const ::core::ffi::c_void, perrorcode: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_clone(dtpg: *const *const ::core::ffi::c_void, perrorcode: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(udatpg_clone(::core::mem::transmute(dtpg), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_close(dtpg: *mut *mut ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_close(dtpg: *mut *mut ::core::ffi::c_void);
        }
        udatpg_close(::core::mem::transmute(dtpg))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_getAppendItemFormat(dtpg: *const *const ::core::ffi::c_void, field: UDateTimePatternField, plength: *mut i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_getAppendItemFormat(dtpg: *const *const ::core::ffi::c_void, field: UDateTimePatternField, plength: *mut i32) -> *mut u16;
        }
        ::core::mem::transmute(udatpg_getAppendItemFormat(::core::mem::transmute(dtpg), ::core::mem::transmute(field), ::core::mem::transmute(plength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_getAppendItemName(dtpg: *const *const ::core::ffi::c_void, field: UDateTimePatternField, plength: *mut i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_getAppendItemName(dtpg: *const *const ::core::ffi::c_void, field: UDateTimePatternField, plength: *mut i32) -> *mut u16;
        }
        ::core::mem::transmute(udatpg_getAppendItemName(::core::mem::transmute(dtpg), ::core::mem::transmute(field), ::core::mem::transmute(plength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_getBaseSkeleton(unuseddtpg: *mut *mut ::core::ffi::c_void, pattern: *const u16, length: i32, baseskeleton: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_getBaseSkeleton(unuseddtpg: *mut *mut ::core::ffi::c_void, pattern: *const u16, length: i32, baseskeleton: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udatpg_getBaseSkeleton(::core::mem::transmute(unuseddtpg), ::core::mem::transmute(pattern), ::core::mem::transmute(length), ::core::mem::transmute(baseskeleton), ::core::mem::transmute(capacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_getBestPattern(dtpg: *mut *mut ::core::ffi::c_void, skeleton: *const u16, length: i32, bestpattern: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_getBestPattern(dtpg: *mut *mut ::core::ffi::c_void, skeleton: *const u16, length: i32, bestpattern: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udatpg_getBestPattern(::core::mem::transmute(dtpg), ::core::mem::transmute(skeleton), ::core::mem::transmute(length), ::core::mem::transmute(bestpattern), ::core::mem::transmute(capacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_getBestPatternWithOptions(dtpg: *mut *mut ::core::ffi::c_void, skeleton: *const u16, length: i32, options: UDateTimePatternMatchOptions, bestpattern: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_getBestPatternWithOptions(dtpg: *mut *mut ::core::ffi::c_void, skeleton: *const u16, length: i32, options: UDateTimePatternMatchOptions, bestpattern: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udatpg_getBestPatternWithOptions(::core::mem::transmute(dtpg), ::core::mem::transmute(skeleton), ::core::mem::transmute(length), ::core::mem::transmute(options), ::core::mem::transmute(bestpattern), ::core::mem::transmute(capacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_getDateTimeFormat(dtpg: *const *const ::core::ffi::c_void, plength: *mut i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_getDateTimeFormat(dtpg: *const *const ::core::ffi::c_void, plength: *mut i32) -> *mut u16;
        }
        ::core::mem::transmute(udatpg_getDateTimeFormat(::core::mem::transmute(dtpg), ::core::mem::transmute(plength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_getDecimal(dtpg: *const *const ::core::ffi::c_void, plength: *mut i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_getDecimal(dtpg: *const *const ::core::ffi::c_void, plength: *mut i32) -> *mut u16;
        }
        ::core::mem::transmute(udatpg_getDecimal(::core::mem::transmute(dtpg), ::core::mem::transmute(plength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_getFieldDisplayName(dtpg: *const *const ::core::ffi::c_void, field: UDateTimePatternField, width: UDateTimePGDisplayWidth, fieldname: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_getFieldDisplayName(dtpg: *const *const ::core::ffi::c_void, field: UDateTimePatternField, width: UDateTimePGDisplayWidth, fieldname: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udatpg_getFieldDisplayName(::core::mem::transmute(dtpg), ::core::mem::transmute(field), ::core::mem::transmute(width), ::core::mem::transmute(fieldname), ::core::mem::transmute(capacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_getPatternForSkeleton(dtpg: *const *const ::core::ffi::c_void, skeleton: *const u16, skeletonlength: i32, plength: *mut i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_getPatternForSkeleton(dtpg: *const *const ::core::ffi::c_void, skeleton: *const u16, skeletonlength: i32, plength: *mut i32) -> *mut u16;
        }
        ::core::mem::transmute(udatpg_getPatternForSkeleton(::core::mem::transmute(dtpg), ::core::mem::transmute(skeleton), ::core::mem::transmute(skeletonlength), ::core::mem::transmute(plength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_getSkeleton(unuseddtpg: *mut *mut ::core::ffi::c_void, pattern: *const u16, length: i32, skeleton: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_getSkeleton(unuseddtpg: *mut *mut ::core::ffi::c_void, pattern: *const u16, length: i32, skeleton: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udatpg_getSkeleton(::core::mem::transmute(unuseddtpg), ::core::mem::transmute(pattern), ::core::mem::transmute(length), ::core::mem::transmute(skeleton), ::core::mem::transmute(capacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, perrorcode: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_open(locale: ::windows::core::PCSTR, perrorcode: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(udatpg_open(locale.into_param().abi(), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_openBaseSkeletons(dtpg: *const *const ::core::ffi::c_void, perrorcode: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_openBaseSkeletons(dtpg: *const *const ::core::ffi::c_void, perrorcode: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(udatpg_openBaseSkeletons(::core::mem::transmute(dtpg), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_openEmpty(perrorcode: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_openEmpty(perrorcode: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(udatpg_openEmpty(::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_openSkeletons(dtpg: *const *const ::core::ffi::c_void, perrorcode: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_openSkeletons(dtpg: *const *const ::core::ffi::c_void, perrorcode: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(udatpg_openSkeletons(::core::mem::transmute(dtpg), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_replaceFieldTypes(dtpg: *mut *mut ::core::ffi::c_void, pattern: *const u16, patternlength: i32, skeleton: *const u16, skeletonlength: i32, dest: *mut u16, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_replaceFieldTypes(dtpg: *mut *mut ::core::ffi::c_void, pattern: *const u16, patternlength: i32, skeleton: *const u16, skeletonlength: i32, dest: *mut u16, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udatpg_replaceFieldTypes(::core::mem::transmute(dtpg), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(skeleton), ::core::mem::transmute(skeletonlength), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_replaceFieldTypesWithOptions(dtpg: *mut *mut ::core::ffi::c_void, pattern: *const u16, patternlength: i32, skeleton: *const u16, skeletonlength: i32, options: UDateTimePatternMatchOptions, dest: *mut u16, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_replaceFieldTypesWithOptions(dtpg: *mut *mut ::core::ffi::c_void, pattern: *const u16, patternlength: i32, skeleton: *const u16, skeletonlength: i32, options: UDateTimePatternMatchOptions, dest: *mut u16, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udatpg_replaceFieldTypesWithOptions(::core::mem::transmute(dtpg), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(skeleton), ::core::mem::transmute(skeletonlength), ::core::mem::transmute(options), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_setAppendItemFormat(dtpg: *mut *mut ::core::ffi::c_void, field: UDateTimePatternField, value: *const u16, length: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_setAppendItemFormat(dtpg: *mut *mut ::core::ffi::c_void, field: UDateTimePatternField, value: *const u16, length: i32);
        }
        udatpg_setAppendItemFormat(::core::mem::transmute(dtpg), ::core::mem::transmute(field), ::core::mem::transmute(value), ::core::mem::transmute(length))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_setAppendItemName(dtpg: *mut *mut ::core::ffi::c_void, field: UDateTimePatternField, value: *const u16, length: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_setAppendItemName(dtpg: *mut *mut ::core::ffi::c_void, field: UDateTimePatternField, value: *const u16, length: i32);
        }
        udatpg_setAppendItemName(::core::mem::transmute(dtpg), ::core::mem::transmute(field), ::core::mem::transmute(value), ::core::mem::transmute(length))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_setDateTimeFormat(dtpg: *const *const ::core::ffi::c_void, dtformat: *const u16, length: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_setDateTimeFormat(dtpg: *const *const ::core::ffi::c_void, dtformat: *const u16, length: i32);
        }
        udatpg_setDateTimeFormat(::core::mem::transmute(dtpg), ::core::mem::transmute(dtformat), ::core::mem::transmute(length))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udatpg_setDecimal(dtpg: *mut *mut ::core::ffi::c_void, decimal: *const u16, length: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udatpg_setDecimal(dtpg: *mut *mut ::core::ffi::c_void, decimal: *const u16, length: i32);
        }
        udatpg_setDecimal(::core::mem::transmute(dtpg), ::core::mem::transmute(decimal), ::core::mem::transmute(length))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udtitvfmt_close(formatter: *mut UDateIntervalFormat) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udtitvfmt_close(formatter: *mut UDateIntervalFormat);
        }
        udtitvfmt_close(::core::mem::transmute(formatter))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udtitvfmt_closeResult(uresult: *mut UFormattedDateInterval) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udtitvfmt_closeResult(uresult: *mut UFormattedDateInterval);
        }
        udtitvfmt_closeResult(::core::mem::transmute(uresult))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udtitvfmt_format(formatter: *const UDateIntervalFormat, fromdate: f64, todate: f64, result: *mut u16, resultcapacity: i32, position: *mut UFieldPosition, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udtitvfmt_format(formatter: *const UDateIntervalFormat, fromdate: f64, todate: f64, result: *mut u16, resultcapacity: i32, position: *mut UFieldPosition, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(udtitvfmt_format(::core::mem::transmute(formatter), ::core::mem::transmute(fromdate), ::core::mem::transmute(todate), ::core::mem::transmute(result), ::core::mem::transmute(resultcapacity), ::core::mem::transmute(position), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udtitvfmt_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, skeleton: *const u16, skeletonlength: i32, tzid: *const u16, tzidlength: i32, status: *mut UErrorCode) -> *mut UDateIntervalFormat {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udtitvfmt_open(locale: ::windows::core::PCSTR, skeleton: *const u16, skeletonlength: i32, tzid: *const u16, tzidlength: i32, status: *mut UErrorCode) -> *mut UDateIntervalFormat;
        }
        ::core::mem::transmute(udtitvfmt_open(locale.into_param().abi(), ::core::mem::transmute(skeleton), ::core::mem::transmute(skeletonlength), ::core::mem::transmute(tzid), ::core::mem::transmute(tzidlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udtitvfmt_openResult(ec: *mut UErrorCode) -> *mut UFormattedDateInterval {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udtitvfmt_openResult(ec: *mut UErrorCode) -> *mut UFormattedDateInterval;
        }
        ::core::mem::transmute(udtitvfmt_openResult(::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn udtitvfmt_resultAsValue(uresult: *const UFormattedDateInterval, ec: *mut UErrorCode) -> *mut UFormattedValue {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn udtitvfmt_resultAsValue(uresult: *const UFormattedDateInterval, ec: *mut UErrorCode) -> *mut UFormattedValue;
        }
        ::core::mem::transmute(udtitvfmt_resultAsValue(::core::mem::transmute(uresult), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uenum_close(en: *mut UEnumeration) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uenum_close(en: *mut UEnumeration);
        }
        uenum_close(::core::mem::transmute(en))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uenum_count(en: *mut UEnumeration, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uenum_count(en: *mut UEnumeration, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uenum_count(::core::mem::transmute(en), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uenum_next(en: *mut UEnumeration, resultlength: *mut i32, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uenum_next(en: *mut UEnumeration, resultlength: *mut i32, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uenum_next(::core::mem::transmute(en), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uenum_openCharStringsEnumeration(strings: *const *const i8, count: i32, ec: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uenum_openCharStringsEnumeration(strings: *const *const i8, count: i32, ec: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(uenum_openCharStringsEnumeration(::core::mem::transmute(strings), ::core::mem::transmute(count), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uenum_openUCharStringsEnumeration(strings: *const *const u16, count: i32, ec: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uenum_openUCharStringsEnumeration(strings: *const *const u16, count: i32, ec: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(uenum_openUCharStringsEnumeration(::core::mem::transmute(strings), ::core::mem::transmute(count), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uenum_reset(en: *mut UEnumeration, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uenum_reset(en: *mut UEnumeration, status: *mut UErrorCode);
        }
        uenum_reset(::core::mem::transmute(en), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uenum_unext(en: *mut UEnumeration, resultlength: *mut i32, status: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uenum_unext(en: *mut UEnumeration, resultlength: *mut i32, status: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(uenum_unext(::core::mem::transmute(en), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufieldpositer_close(fpositer: *mut UFieldPositionIterator) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufieldpositer_close(fpositer: *mut UFieldPositionIterator);
        }
        ufieldpositer_close(::core::mem::transmute(fpositer))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufieldpositer_next(fpositer: *mut UFieldPositionIterator, beginindex: *mut i32, endindex: *mut i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufieldpositer_next(fpositer: *mut UFieldPositionIterator, beginindex: *mut i32, endindex: *mut i32) -> i32;
        }
        ::core::mem::transmute(ufieldpositer_next(::core::mem::transmute(fpositer), ::core::mem::transmute(beginindex), ::core::mem::transmute(endindex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufieldpositer_open(status: *mut UErrorCode) -> *mut UFieldPositionIterator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufieldpositer_open(status: *mut UErrorCode) -> *mut UFieldPositionIterator;
        }
        ::core::mem::transmute(ufieldpositer_open(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_close(fmt: *mut *mut ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_close(fmt: *mut *mut ::core::ffi::c_void);
        }
        ufmt_close(::core::mem::transmute(fmt))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_getArrayItemByIndex(fmt: *mut *mut ::core::ffi::c_void, n: i32, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_getArrayItemByIndex(fmt: *mut *mut ::core::ffi::c_void, n: i32, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(ufmt_getArrayItemByIndex(::core::mem::transmute(fmt), ::core::mem::transmute(n), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_getArrayLength(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_getArrayLength(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ufmt_getArrayLength(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_getDate(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_getDate(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> f64;
        }
        ::core::mem::transmute(ufmt_getDate(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_getDecNumChars(fmt: *mut *mut ::core::ffi::c_void, len: *mut i32, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_getDecNumChars(fmt: *mut *mut ::core::ffi::c_void, len: *mut i32, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ufmt_getDecNumChars(::core::mem::transmute(fmt), ::core::mem::transmute(len), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_getDouble(fmt: *mut *mut ::core::ffi::c_void, status: *mut UErrorCode) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_getDouble(fmt: *mut *mut ::core::ffi::c_void, status: *mut UErrorCode) -> f64;
        }
        ::core::mem::transmute(ufmt_getDouble(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_getInt64(fmt: *mut *mut ::core::ffi::c_void, status: *mut UErrorCode) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_getInt64(fmt: *mut *mut ::core::ffi::c_void, status: *mut UErrorCode) -> i64;
        }
        ::core::mem::transmute(ufmt_getInt64(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_getLong(fmt: *mut *mut ::core::ffi::c_void, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_getLong(fmt: *mut *mut ::core::ffi::c_void, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ufmt_getLong(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_getObject(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_getObject(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(ufmt_getObject(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_getType(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> UFormattableType {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_getType(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> UFormattableType;
        }
        ::core::mem::transmute(ufmt_getType(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_getUChars(fmt: *mut *mut ::core::ffi::c_void, len: *mut i32, status: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_getUChars(fmt: *mut *mut ::core::ffi::c_void, len: *mut i32, status: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(ufmt_getUChars(::core::mem::transmute(fmt), ::core::mem::transmute(len), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_isNumeric(fmt: *const *const ::core::ffi::c_void) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_isNumeric(fmt: *const *const ::core::ffi::c_void) -> i8;
        }
        ::core::mem::transmute(ufmt_isNumeric(::core::mem::transmute(fmt)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmt_open(status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmt_open(status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(ufmt_open(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmtval_getString(ufmtval: *const UFormattedValue, plength: *mut i32, ec: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmtval_getString(ufmtval: *const UFormattedValue, plength: *mut i32, ec: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(ufmtval_getString(::core::mem::transmute(ufmtval), ::core::mem::transmute(plength), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ufmtval_nextPosition(ufmtval: *const UFormattedValue, ucfpos: *mut UConstrainedFieldPosition, ec: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ufmtval_nextPosition(ufmtval: *const UFormattedValue, ucfpos: *mut UConstrainedFieldPosition, ec: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(ufmtval_nextPosition(::core::mem::transmute(ufmtval), ::core::mem::transmute(ucfpos), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ugender_getInstance<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, status: *mut UErrorCode) -> *mut UGenderInfo {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ugender_getInstance(locale: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UGenderInfo;
        }
        ::core::mem::transmute(ugender_getInstance(locale.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ugender_getListGender(genderinfo: *const UGenderInfo, genders: *const UGender, size: i32, status: *mut UErrorCode) -> UGender {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ugender_getListGender(genderinfo: *const UGenderInfo, genders: *const UGender, size: i32, status: *mut UErrorCode) -> UGender;
        }
        ::core::mem::transmute(ugender_getListGender(::core::mem::transmute(genderinfo), ::core::mem::transmute(genders), ::core::mem::transmute(size), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uidna_close(idna: *mut UIDNA) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uidna_close(idna: *mut UIDNA);
        }
        uidna_close(::core::mem::transmute(idna))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uidna_labelToASCII(idna: *const UIDNA, label: *const u16, length: i32, dest: *mut u16, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uidna_labelToASCII(idna: *const UIDNA, label: *const u16, length: i32, dest: *mut u16, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uidna_labelToASCII(::core::mem::transmute(idna), ::core::mem::transmute(label), ::core::mem::transmute(length), ::core::mem::transmute(dest), ::core::mem::transmute(capacity), ::core::mem::transmute(pinfo), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uidna_labelToASCII_UTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(idna: *const UIDNA, label: Param1, length: i32, dest: Param3, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uidna_labelToASCII_UTF8(idna: *const UIDNA, label: ::windows::core::PCSTR, length: i32, dest: ::windows::core::PCSTR, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uidna_labelToASCII_UTF8(::core::mem::transmute(idna), label.into_param().abi(), ::core::mem::transmute(length), dest.into_param().abi(), ::core::mem::transmute(capacity), ::core::mem::transmute(pinfo), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uidna_labelToUnicode(idna: *const UIDNA, label: *const u16, length: i32, dest: *mut u16, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uidna_labelToUnicode(idna: *const UIDNA, label: *const u16, length: i32, dest: *mut u16, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uidna_labelToUnicode(::core::mem::transmute(idna), ::core::mem::transmute(label), ::core::mem::transmute(length), ::core::mem::transmute(dest), ::core::mem::transmute(capacity), ::core::mem::transmute(pinfo), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uidna_labelToUnicodeUTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(idna: *const UIDNA, label: Param1, length: i32, dest: Param3, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uidna_labelToUnicodeUTF8(idna: *const UIDNA, label: ::windows::core::PCSTR, length: i32, dest: ::windows::core::PCSTR, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uidna_labelToUnicodeUTF8(::core::mem::transmute(idna), label.into_param().abi(), ::core::mem::transmute(length), dest.into_param().abi(), ::core::mem::transmute(capacity), ::core::mem::transmute(pinfo), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uidna_nameToASCII(idna: *const UIDNA, name: *const u16, length: i32, dest: *mut u16, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uidna_nameToASCII(idna: *const UIDNA, name: *const u16, length: i32, dest: *mut u16, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uidna_nameToASCII(::core::mem::transmute(idna), ::core::mem::transmute(name), ::core::mem::transmute(length), ::core::mem::transmute(dest), ::core::mem::transmute(capacity), ::core::mem::transmute(pinfo), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uidna_nameToASCII_UTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(idna: *const UIDNA, name: Param1, length: i32, dest: Param3, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uidna_nameToASCII_UTF8(idna: *const UIDNA, name: ::windows::core::PCSTR, length: i32, dest: ::windows::core::PCSTR, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uidna_nameToASCII_UTF8(::core::mem::transmute(idna), name.into_param().abi(), ::core::mem::transmute(length), dest.into_param().abi(), ::core::mem::transmute(capacity), ::core::mem::transmute(pinfo), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uidna_nameToUnicode(idna: *const UIDNA, name: *const u16, length: i32, dest: *mut u16, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uidna_nameToUnicode(idna: *const UIDNA, name: *const u16, length: i32, dest: *mut u16, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uidna_nameToUnicode(::core::mem::transmute(idna), ::core::mem::transmute(name), ::core::mem::transmute(length), ::core::mem::transmute(dest), ::core::mem::transmute(capacity), ::core::mem::transmute(pinfo), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uidna_nameToUnicodeUTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(idna: *const UIDNA, name: Param1, length: i32, dest: Param3, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uidna_nameToUnicodeUTF8(idna: *const UIDNA, name: ::windows::core::PCSTR, length: i32, dest: ::windows::core::PCSTR, capacity: i32, pinfo: *mut UIDNAInfo, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uidna_nameToUnicodeUTF8(::core::mem::transmute(idna), name.into_param().abi(), ::core::mem::transmute(length), dest.into_param().abi(), ::core::mem::transmute(capacity), ::core::mem::transmute(pinfo), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uidna_openUTS46(options: u32, perrorcode: *mut UErrorCode) -> *mut UIDNA {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uidna_openUTS46(options: u32, perrorcode: *mut UErrorCode) -> *mut UIDNA;
        }
        ::core::mem::transmute(uidna_openUTS46(::core::mem::transmute(options), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uiter_current32(iter: *mut UCharIterator) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uiter_current32(iter: *mut UCharIterator) -> i32;
        }
        ::core::mem::transmute(uiter_current32(::core::mem::transmute(iter)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uiter_getState(iter: *const UCharIterator) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uiter_getState(iter: *const UCharIterator) -> u32;
        }
        ::core::mem::transmute(uiter_getState(::core::mem::transmute(iter)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uiter_next32(iter: *mut UCharIterator) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uiter_next32(iter: *mut UCharIterator) -> i32;
        }
        ::core::mem::transmute(uiter_next32(::core::mem::transmute(iter)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uiter_previous32(iter: *mut UCharIterator) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uiter_previous32(iter: *mut UCharIterator) -> i32;
        }
        ::core::mem::transmute(uiter_previous32(::core::mem::transmute(iter)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uiter_setState(iter: *mut UCharIterator, state: u32, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uiter_setState(iter: *mut UCharIterator, state: u32, perrorcode: *mut UErrorCode);
        }
        uiter_setState(::core::mem::transmute(iter), ::core::mem::transmute(state), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uiter_setString(iter: *mut UCharIterator, s: *const u16, length: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uiter_setString(iter: *mut UCharIterator, s: *const u16, length: i32);
        }
        uiter_setString(::core::mem::transmute(iter), ::core::mem::transmute(s), ::core::mem::transmute(length))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uiter_setUTF16BE<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(iter: *mut UCharIterator, s: Param1, length: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uiter_setUTF16BE(iter: *mut UCharIterator, s: ::windows::core::PCSTR, length: i32);
        }
        uiter_setUTF16BE(::core::mem::transmute(iter), s.into_param().abi(), ::core::mem::transmute(length))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uiter_setUTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(iter: *mut UCharIterator, s: Param1, length: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uiter_setUTF8(iter: *mut UCharIterator, s: ::windows::core::PCSTR, length: i32);
        }
        uiter_setUTF8(::core::mem::transmute(iter), s.into_param().abi(), ::core::mem::transmute(length))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_close(ldn: *mut ULocaleDisplayNames) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_close(ldn: *mut ULocaleDisplayNames);
        }
        uldn_close(::core::mem::transmute(ldn))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_getContext(ldn: *const ULocaleDisplayNames, r#type: UDisplayContextType, perrorcode: *mut UErrorCode) -> UDisplayContext {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_getContext(ldn: *const ULocaleDisplayNames, r#type: UDisplayContextType, perrorcode: *mut UErrorCode) -> UDisplayContext;
        }
        ::core::mem::transmute(uldn_getContext(::core::mem::transmute(ldn), ::core::mem::transmute(r#type), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_getDialectHandling(ldn: *const ULocaleDisplayNames) -> UDialectHandling {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_getDialectHandling(ldn: *const ULocaleDisplayNames) -> UDialectHandling;
        }
        ::core::mem::transmute(uldn_getDialectHandling(::core::mem::transmute(ldn)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_getLocale(ldn: *const ULocaleDisplayNames) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_getLocale(ldn: *const ULocaleDisplayNames) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uldn_getLocale(::core::mem::transmute(ldn)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_keyDisplayName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(ldn: *const ULocaleDisplayNames, key: Param1, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_keyDisplayName(ldn: *const ULocaleDisplayNames, key: ::windows::core::PCSTR, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uldn_keyDisplayName(::core::mem::transmute(ldn), key.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(maxresultsize), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_keyValueDisplayName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(ldn: *const ULocaleDisplayNames, key: Param1, value: Param2, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_keyValueDisplayName(ldn: *const ULocaleDisplayNames, key: ::windows::core::PCSTR, value: ::windows::core::PCSTR, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uldn_keyValueDisplayName(::core::mem::transmute(ldn), key.into_param().abi(), value.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(maxresultsize), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_languageDisplayName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(ldn: *const ULocaleDisplayNames, lang: Param1, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_languageDisplayName(ldn: *const ULocaleDisplayNames, lang: ::windows::core::PCSTR, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uldn_languageDisplayName(::core::mem::transmute(ldn), lang.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(maxresultsize), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_localeDisplayName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(ldn: *const ULocaleDisplayNames, locale: Param1, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_localeDisplayName(ldn: *const ULocaleDisplayNames, locale: ::windows::core::PCSTR, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uldn_localeDisplayName(::core::mem::transmute(ldn), locale.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(maxresultsize), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, dialecthandling: UDialectHandling, perrorcode: *mut UErrorCode) -> *mut ULocaleDisplayNames {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_open(locale: ::windows::core::PCSTR, dialecthandling: UDialectHandling, perrorcode: *mut UErrorCode) -> *mut ULocaleDisplayNames;
        }
        ::core::mem::transmute(uldn_open(locale.into_param().abi(), ::core::mem::transmute(dialecthandling), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_openForContext<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, contexts: *mut UDisplayContext, length: i32, perrorcode: *mut UErrorCode) -> *mut ULocaleDisplayNames {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_openForContext(locale: ::windows::core::PCSTR, contexts: *mut UDisplayContext, length: i32, perrorcode: *mut UErrorCode) -> *mut ULocaleDisplayNames;
        }
        ::core::mem::transmute(uldn_openForContext(locale.into_param().abi(), ::core::mem::transmute(contexts), ::core::mem::transmute(length), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_regionDisplayName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(ldn: *const ULocaleDisplayNames, region: Param1, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_regionDisplayName(ldn: *const ULocaleDisplayNames, region: ::windows::core::PCSTR, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uldn_regionDisplayName(::core::mem::transmute(ldn), region.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(maxresultsize), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_scriptCodeDisplayName(ldn: *const ULocaleDisplayNames, scriptcode: UScriptCode, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_scriptCodeDisplayName(ldn: *const ULocaleDisplayNames, scriptcode: UScriptCode, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uldn_scriptCodeDisplayName(::core::mem::transmute(ldn), ::core::mem::transmute(scriptcode), ::core::mem::transmute(result), ::core::mem::transmute(maxresultsize), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_scriptDisplayName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(ldn: *const ULocaleDisplayNames, script: Param1, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_scriptDisplayName(ldn: *const ULocaleDisplayNames, script: ::windows::core::PCSTR, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uldn_scriptDisplayName(::core::mem::transmute(ldn), script.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(maxresultsize), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uldn_variantDisplayName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(ldn: *const ULocaleDisplayNames, variant: Param1, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uldn_variantDisplayName(ldn: *const ULocaleDisplayNames, variant: ::windows::core::PCSTR, result: *mut u16, maxresultsize: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uldn_variantDisplayName(::core::mem::transmute(ldn), variant.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(maxresultsize), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulistfmt_close(listfmt: *mut UListFormatter) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulistfmt_close(listfmt: *mut UListFormatter);
        }
        ulistfmt_close(::core::mem::transmute(listfmt))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulistfmt_closeResult(uresult: *mut UFormattedList) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulistfmt_closeResult(uresult: *mut UFormattedList);
        }
        ulistfmt_closeResult(::core::mem::transmute(uresult))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulistfmt_format(listfmt: *const UListFormatter, strings: *const *const u16, stringlengths: *const i32, stringcount: i32, result: *mut u16, resultcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulistfmt_format(listfmt: *const UListFormatter, strings: *const *const u16, stringlengths: *const i32, stringcount: i32, result: *mut u16, resultcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ulistfmt_format(::core::mem::transmute(listfmt), ::core::mem::transmute(strings), ::core::mem::transmute(stringlengths), ::core::mem::transmute(stringcount), ::core::mem::transmute(result), ::core::mem::transmute(resultcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulistfmt_formatStringsToResult(listfmt: *const UListFormatter, strings: *const *const u16, stringlengths: *const i32, stringcount: i32, uresult: *mut UFormattedList, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulistfmt_formatStringsToResult(listfmt: *const UListFormatter, strings: *const *const u16, stringlengths: *const i32, stringcount: i32, uresult: *mut UFormattedList, status: *mut UErrorCode);
        }
        ulistfmt_formatStringsToResult(::core::mem::transmute(listfmt), ::core::mem::transmute(strings), ::core::mem::transmute(stringlengths), ::core::mem::transmute(stringcount), ::core::mem::transmute(uresult), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulistfmt_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, status: *mut UErrorCode) -> *mut UListFormatter {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulistfmt_open(locale: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UListFormatter;
        }
        ::core::mem::transmute(ulistfmt_open(locale.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulistfmt_openForType<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, r#type: UListFormatterType, width: UListFormatterWidth, status: *mut UErrorCode) -> *mut UListFormatter {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulistfmt_openForType(locale: ::windows::core::PCSTR, r#type: UListFormatterType, width: UListFormatterWidth, status: *mut UErrorCode) -> *mut UListFormatter;
        }
        ::core::mem::transmute(ulistfmt_openForType(locale.into_param().abi(), ::core::mem::transmute(r#type), ::core::mem::transmute(width), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulistfmt_openResult(ec: *mut UErrorCode) -> *mut UFormattedList {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulistfmt_openResult(ec: *mut UErrorCode) -> *mut UFormattedList;
        }
        ::core::mem::transmute(ulistfmt_openResult(::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulistfmt_resultAsValue(uresult: *const UFormattedList, ec: *mut UErrorCode) -> *mut UFormattedValue {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulistfmt_resultAsValue(uresult: *const UFormattedList, ec: *mut UErrorCode) -> *mut UFormattedValue;
        }
        ::core::mem::transmute(ulistfmt_resultAsValue(::core::mem::transmute(uresult), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_acceptLanguage<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(result: Param0, resultavailable: i32, outresult: *mut UAcceptResult, acceptlist: *const *const i8, acceptlistcount: i32, availablelocales: *mut UEnumeration, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_acceptLanguage(result: ::windows::core::PCSTR, resultavailable: i32, outresult: *mut UAcceptResult, acceptlist: *const *const i8, acceptlistcount: i32, availablelocales: *mut UEnumeration, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_acceptLanguage(result.into_param().abi(), ::core::mem::transmute(resultavailable), ::core::mem::transmute(outresult), ::core::mem::transmute(acceptlist), ::core::mem::transmute(acceptlistcount), ::core::mem::transmute(availablelocales), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_acceptLanguageFromHTTP<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(result: Param0, resultavailable: i32, outresult: *mut UAcceptResult, httpacceptlanguage: Param3, availablelocales: *mut UEnumeration, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_acceptLanguageFromHTTP(result: ::windows::core::PCSTR, resultavailable: i32, outresult: *mut UAcceptResult, httpacceptlanguage: ::windows::core::PCSTR, availablelocales: *mut UEnumeration, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_acceptLanguageFromHTTP(result.into_param().abi(), ::core::mem::transmute(resultavailable), ::core::mem::transmute(outresult), httpacceptlanguage.into_param().abi(), ::core::mem::transmute(availablelocales), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_addLikelySubtags<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, maximizedlocaleid: Param1, maximizedlocaleidcapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_addLikelySubtags(localeid: ::windows::core::PCSTR, maximizedlocaleid: ::windows::core::PCSTR, maximizedlocaleidcapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_addLikelySubtags(localeid.into_param().abi(), maximizedlocaleid.into_param().abi(), ::core::mem::transmute(maximizedlocaleidcapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_canonicalize<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, name: Param1, namecapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_canonicalize(localeid: ::windows::core::PCSTR, name: ::windows::core::PCSTR, namecapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_canonicalize(localeid.into_param().abi(), name.into_param().abi(), ::core::mem::transmute(namecapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_countAvailable() -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_countAvailable() -> i32;
        }
        ::core::mem::transmute(uloc_countAvailable())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_forLanguageTag<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(langtag: Param0, localeid: Param1, localeidcapacity: i32, parsedlength: *mut i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_forLanguageTag(langtag: ::windows::core::PCSTR, localeid: ::windows::core::PCSTR, localeidcapacity: i32, parsedlength: *mut i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_forLanguageTag(langtag.into_param().abi(), localeid.into_param().abi(), ::core::mem::transmute(localeidcapacity), ::core::mem::transmute(parsedlength), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getAvailable(n: i32) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getAvailable(n: i32) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uloc_getAvailable(::core::mem::transmute(n)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getBaseName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, name: Param1, namecapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getBaseName(localeid: ::windows::core::PCSTR, name: ::windows::core::PCSTR, namecapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getBaseName(localeid.into_param().abi(), name.into_param().abi(), ::core::mem::transmute(namecapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getCharacterOrientation<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, status: *mut UErrorCode) -> ULayoutType {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getCharacterOrientation(localeid: ::windows::core::PCSTR, status: *mut UErrorCode) -> ULayoutType;
        }
        ::core::mem::transmute(uloc_getCharacterOrientation(localeid.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getCountry<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, country: Param1, countrycapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getCountry(localeid: ::windows::core::PCSTR, country: ::windows::core::PCSTR, countrycapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getCountry(localeid.into_param().abi(), country.into_param().abi(), ::core::mem::transmute(countrycapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getDefault() -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getDefault() -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uloc_getDefault())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getDisplayCountry<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, displaylocale: Param1, country: *mut u16, countrycapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getDisplayCountry(locale: ::windows::core::PCSTR, displaylocale: ::windows::core::PCSTR, country: *mut u16, countrycapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getDisplayCountry(locale.into_param().abi(), displaylocale.into_param().abi(), ::core::mem::transmute(country), ::core::mem::transmute(countrycapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getDisplayKeyword<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(keyword: Param0, displaylocale: Param1, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getDisplayKeyword(keyword: ::windows::core::PCSTR, displaylocale: ::windows::core::PCSTR, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getDisplayKeyword(keyword.into_param().abi(), displaylocale.into_param().abi(), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getDisplayKeywordValue<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, keyword: Param1, displaylocale: Param2, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getDisplayKeywordValue(locale: ::windows::core::PCSTR, keyword: ::windows::core::PCSTR, displaylocale: ::windows::core::PCSTR, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getDisplayKeywordValue(locale.into_param().abi(), keyword.into_param().abi(), displaylocale.into_param().abi(), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getDisplayLanguage<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, displaylocale: Param1, language: *mut u16, languagecapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getDisplayLanguage(locale: ::windows::core::PCSTR, displaylocale: ::windows::core::PCSTR, language: *mut u16, languagecapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getDisplayLanguage(locale.into_param().abi(), displaylocale.into_param().abi(), ::core::mem::transmute(language), ::core::mem::transmute(languagecapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getDisplayName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, inlocaleid: Param1, result: *mut u16, maxresultsize: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getDisplayName(localeid: ::windows::core::PCSTR, inlocaleid: ::windows::core::PCSTR, result: *mut u16, maxresultsize: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getDisplayName(localeid.into_param().abi(), inlocaleid.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(maxresultsize), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getDisplayScript<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, displaylocale: Param1, script: *mut u16, scriptcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getDisplayScript(locale: ::windows::core::PCSTR, displaylocale: ::windows::core::PCSTR, script: *mut u16, scriptcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getDisplayScript(locale.into_param().abi(), displaylocale.into_param().abi(), ::core::mem::transmute(script), ::core::mem::transmute(scriptcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getDisplayVariant<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, displaylocale: Param1, variant: *mut u16, variantcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getDisplayVariant(locale: ::windows::core::PCSTR, displaylocale: ::windows::core::PCSTR, variant: *mut u16, variantcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getDisplayVariant(locale.into_param().abi(), displaylocale.into_param().abi(), ::core::mem::transmute(variant), ::core::mem::transmute(variantcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getISO3Country<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getISO3Country(localeid: ::windows::core::PCSTR) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uloc_getISO3Country(localeid.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getISO3Language<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getISO3Language(localeid: ::windows::core::PCSTR) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uloc_getISO3Language(localeid.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getISOCountries() -> *mut *mut i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getISOCountries() -> *mut *mut i8;
        }
        ::core::mem::transmute(uloc_getISOCountries())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getISOLanguages() -> *mut *mut i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getISOLanguages() -> *mut *mut i8;
        }
        ::core::mem::transmute(uloc_getISOLanguages())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getKeywordValue<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, keywordname: Param1, buffer: Param2, buffercapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getKeywordValue(localeid: ::windows::core::PCSTR, keywordname: ::windows::core::PCSTR, buffer: ::windows::core::PCSTR, buffercapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getKeywordValue(localeid.into_param().abi(), keywordname.into_param().abi(), buffer.into_param().abi(), ::core::mem::transmute(buffercapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getLCID<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getLCID(localeid: ::windows::core::PCSTR) -> u32;
        }
        ::core::mem::transmute(uloc_getLCID(localeid.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getLanguage<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, language: Param1, languagecapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getLanguage(localeid: ::windows::core::PCSTR, language: ::windows::core::PCSTR, languagecapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getLanguage(localeid.into_param().abi(), language.into_param().abi(), ::core::mem::transmute(languagecapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getLineOrientation<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, status: *mut UErrorCode) -> ULayoutType {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getLineOrientation(localeid: ::windows::core::PCSTR, status: *mut UErrorCode) -> ULayoutType;
        }
        ::core::mem::transmute(uloc_getLineOrientation(localeid.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getLocaleForLCID<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(hostid: u32, locale: Param1, localecapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getLocaleForLCID(hostid: u32, locale: ::windows::core::PCSTR, localecapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getLocaleForLCID(::core::mem::transmute(hostid), locale.into_param().abi(), ::core::mem::transmute(localecapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, name: Param1, namecapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getName(localeid: ::windows::core::PCSTR, name: ::windows::core::PCSTR, namecapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getName(localeid.into_param().abi(), name.into_param().abi(), ::core::mem::transmute(namecapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getParent<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, parent: Param1, parentcapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getParent(localeid: ::windows::core::PCSTR, parent: ::windows::core::PCSTR, parentcapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getParent(localeid.into_param().abi(), parent.into_param().abi(), ::core::mem::transmute(parentcapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getScript<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, script: Param1, scriptcapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getScript(localeid: ::windows::core::PCSTR, script: ::windows::core::PCSTR, scriptcapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getScript(localeid.into_param().abi(), script.into_param().abi(), ::core::mem::transmute(scriptcapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_getVariant<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, variant: Param1, variantcapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_getVariant(localeid: ::windows::core::PCSTR, variant: ::windows::core::PCSTR, variantcapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_getVariant(localeid.into_param().abi(), variant.into_param().abi(), ::core::mem::transmute(variantcapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_isRightToLeft<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_isRightToLeft(locale: ::windows::core::PCSTR) -> i8;
        }
        ::core::mem::transmute(uloc_isRightToLeft(locale.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_minimizeSubtags<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, minimizedlocaleid: Param1, minimizedlocaleidcapacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_minimizeSubtags(localeid: ::windows::core::PCSTR, minimizedlocaleid: ::windows::core::PCSTR, minimizedlocaleidcapacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_minimizeSubtags(localeid.into_param().abi(), minimizedlocaleid.into_param().abi(), ::core::mem::transmute(minimizedlocaleidcapacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_openAvailableByType(r#type: ULocAvailableType, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_openAvailableByType(r#type: ULocAvailableType, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(uloc_openAvailableByType(::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_openKeywords<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_openKeywords(localeid: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(uloc_openKeywords(localeid.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_setDefault<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_setDefault(localeid: ::windows::core::PCSTR, status: *mut UErrorCode);
        }
        uloc_setDefault(localeid.into_param().abi(), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_setKeywordValue<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(keywordname: Param0, keywordvalue: Param1, buffer: Param2, buffercapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_setKeywordValue(keywordname: ::windows::core::PCSTR, keywordvalue: ::windows::core::PCSTR, buffer: ::windows::core::PCSTR, buffercapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_setKeywordValue(keywordname.into_param().abi(), keywordvalue.into_param().abi(), buffer.into_param().abi(), ::core::mem::transmute(buffercapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_toLanguageTag<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, langtag: Param1, langtagcapacity: i32, strict: i8, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_toLanguageTag(localeid: ::windows::core::PCSTR, langtag: ::windows::core::PCSTR, langtagcapacity: i32, strict: i8, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uloc_toLanguageTag(localeid.into_param().abi(), langtag.into_param().abi(), ::core::mem::transmute(langtagcapacity), ::core::mem::transmute(strict), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_toLegacyKey<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(keyword: Param0) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_toLegacyKey(keyword: ::windows::core::PCSTR) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uloc_toLegacyKey(keyword.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_toLegacyType<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(keyword: Param0, value: Param1) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_toLegacyType(keyword: ::windows::core::PCSTR, value: ::windows::core::PCSTR) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uloc_toLegacyType(keyword.into_param().abi(), value.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_toUnicodeLocaleKey<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(keyword: Param0) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_toUnicodeLocaleKey(keyword: ::windows::core::PCSTR) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uloc_toUnicodeLocaleKey(keyword.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uloc_toUnicodeLocaleType<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(keyword: Param0, value: Param1) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uloc_toUnicodeLocaleType(keyword: ::windows::core::PCSTR, value: ::windows::core::PCSTR) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uloc_toUnicodeLocaleType(keyword.into_param().abi(), value.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_close(uld: *mut ULocaleData) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_close(uld: *mut ULocaleData);
        }
        ulocdata_close(::core::mem::transmute(uld))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_getCLDRVersion(versionarray: *mut u8, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_getCLDRVersion(versionarray: *mut u8, status: *mut UErrorCode);
        }
        ulocdata_getCLDRVersion(::core::mem::transmute(versionarray), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_getDelimiter(uld: *mut ULocaleData, r#type: ULocaleDataDelimiterType, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_getDelimiter(uld: *mut ULocaleData, r#type: ULocaleDataDelimiterType, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ulocdata_getDelimiter(::core::mem::transmute(uld), ::core::mem::transmute(r#type), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_getExemplarSet(uld: *mut ULocaleData, fillin: *mut USet, options: u32, extype: ULocaleDataExemplarSetType, status: *mut UErrorCode) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_getExemplarSet(uld: *mut ULocaleData, fillin: *mut USet, options: u32, extype: ULocaleDataExemplarSetType, status: *mut UErrorCode) -> *mut USet;
        }
        ::core::mem::transmute(ulocdata_getExemplarSet(::core::mem::transmute(uld), ::core::mem::transmute(fillin), ::core::mem::transmute(options), ::core::mem::transmute(extype), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_getLocaleDisplayPattern(uld: *mut ULocaleData, pattern: *mut u16, patterncapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_getLocaleDisplayPattern(uld: *mut ULocaleData, pattern: *mut u16, patterncapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ulocdata_getLocaleDisplayPattern(::core::mem::transmute(uld), ::core::mem::transmute(pattern), ::core::mem::transmute(patterncapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_getLocaleSeparator(uld: *mut ULocaleData, separator: *mut u16, separatorcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_getLocaleSeparator(uld: *mut ULocaleData, separator: *mut u16, separatorcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ulocdata_getLocaleSeparator(::core::mem::transmute(uld), ::core::mem::transmute(separator), ::core::mem::transmute(separatorcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_getMeasurementSystem<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, status: *mut UErrorCode) -> UMeasurementSystem {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_getMeasurementSystem(localeid: ::windows::core::PCSTR, status: *mut UErrorCode) -> UMeasurementSystem;
        }
        ::core::mem::transmute(ulocdata_getMeasurementSystem(localeid.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_getNoSubstitute(uld: *mut ULocaleData) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_getNoSubstitute(uld: *mut ULocaleData) -> i8;
        }
        ::core::mem::transmute(ulocdata_getNoSubstitute(::core::mem::transmute(uld)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_getPaperSize<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, height: *mut i32, width: *mut i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_getPaperSize(localeid: ::windows::core::PCSTR, height: *mut i32, width: *mut i32, status: *mut UErrorCode);
        }
        ulocdata_getPaperSize(localeid.into_param().abi(), ::core::mem::transmute(height), ::core::mem::transmute(width), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(localeid: Param0, status: *mut UErrorCode) -> *mut ULocaleData {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_open(localeid: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut ULocaleData;
        }
        ::core::mem::transmute(ulocdata_open(localeid.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ulocdata_setNoSubstitute(uld: *mut ULocaleData, setting: i8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ulocdata_setNoSubstitute(uld: *mut ULocaleData, setting: i8);
        }
        ulocdata_setNoSubstitute(::core::mem::transmute(uld), ::core::mem::transmute(setting))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_applyPattern(fmt: *mut *mut ::core::ffi::c_void, pattern: *const u16, patternlength: i32, parseerror: *mut UParseError, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_applyPattern(fmt: *mut *mut ::core::ffi::c_void, pattern: *const u16, patternlength: i32, parseerror: *mut UParseError, status: *mut UErrorCode);
        }
        umsg_applyPattern(::core::mem::transmute(fmt), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(parseerror), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_autoQuoteApostrophe(pattern: *const u16, patternlength: i32, dest: *mut u16, destcapacity: i32, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_autoQuoteApostrophe(pattern: *const u16, patternlength: i32, dest: *mut u16, destcapacity: i32, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(umsg_autoQuoteApostrophe(::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_clone(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_clone(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(umsg_clone(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_close(format: *mut *mut ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_close(format: *mut *mut ::core::ffi::c_void);
        }
        umsg_close(::core::mem::transmute(format))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_format(fmt: *const *const ::core::ffi::c_void, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_format(fmt: *const *const ::core::ffi::c_void, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(umsg_format(::core::mem::transmute(fmt), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_getLocale(fmt: *const *const ::core::ffi::c_void) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_getLocale(fmt: *const *const ::core::ffi::c_void) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(umsg_getLocale(::core::mem::transmute(fmt)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_open<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(pattern: *const u16, patternlength: i32, locale: Param2, parseerror: *mut UParseError, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_open(pattern: *const u16, patternlength: i32, locale: ::windows::core::PCSTR, parseerror: *mut UParseError, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(umsg_open(::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), locale.into_param().abi(), ::core::mem::transmute(parseerror), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_parse(fmt: *const *const ::core::ffi::c_void, source: *const u16, sourcelength: i32, count: *mut i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_parse(fmt: *const *const ::core::ffi::c_void, source: *const u16, sourcelength: i32, count: *mut i32, status: *mut UErrorCode);
        }
        umsg_parse(::core::mem::transmute(fmt), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(count), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_setLocale<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(fmt: *mut *mut ::core::ffi::c_void, locale: Param1) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_setLocale(fmt: *mut *mut ::core::ffi::c_void, locale: ::windows::core::PCSTR);
        }
        umsg_setLocale(::core::mem::transmute(fmt), locale.into_param().abi())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_toPattern(fmt: *const *const ::core::ffi::c_void, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_toPattern(fmt: *const *const ::core::ffi::c_void, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(umsg_toPattern(::core::mem::transmute(fmt), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_vformat(fmt: *const *const ::core::ffi::c_void, result: *mut u16, resultlength: i32, ap: *mut i8, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_vformat(fmt: *const *const ::core::ffi::c_void, result: *mut u16, resultlength: i32, ap: *mut i8, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(umsg_vformat(::core::mem::transmute(fmt), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(ap), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umsg_vparse(fmt: *const *const ::core::ffi::c_void, source: *const u16, sourcelength: i32, count: *mut i32, ap: *mut i8, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umsg_vparse(fmt: *const *const ::core::ffi::c_void, source: *const u16, sourcelength: i32, count: *mut i32, ap: *mut i8, status: *mut UErrorCode);
        }
        umsg_vparse(::core::mem::transmute(fmt), ::core::mem::transmute(source), ::core::mem::transmute(sourcelength), ::core::mem::transmute(count), ::core::mem::transmute(ap), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umutablecptrie_buildImmutable(trie: *mut UMutableCPTrie, r#type: UCPTrieType, valuewidth: UCPTrieValueWidth, perrorcode: *mut UErrorCode) -> *mut UCPTrie {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umutablecptrie_buildImmutable(trie: *mut UMutableCPTrie, r#type: UCPTrieType, valuewidth: UCPTrieValueWidth, perrorcode: *mut UErrorCode) -> *mut UCPTrie;
        }
        ::core::mem::transmute(umutablecptrie_buildImmutable(::core::mem::transmute(trie), ::core::mem::transmute(r#type), ::core::mem::transmute(valuewidth), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umutablecptrie_clone(other: *const UMutableCPTrie, perrorcode: *mut UErrorCode) -> *mut UMutableCPTrie {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umutablecptrie_clone(other: *const UMutableCPTrie, perrorcode: *mut UErrorCode) -> *mut UMutableCPTrie;
        }
        ::core::mem::transmute(umutablecptrie_clone(::core::mem::transmute(other), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umutablecptrie_close(trie: *mut UMutableCPTrie) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umutablecptrie_close(trie: *mut UMutableCPTrie);
        }
        umutablecptrie_close(::core::mem::transmute(trie))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umutablecptrie_fromUCPMap(map: *const UCPMap, perrorcode: *mut UErrorCode) -> *mut UMutableCPTrie {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umutablecptrie_fromUCPMap(map: *const UCPMap, perrorcode: *mut UErrorCode) -> *mut UMutableCPTrie;
        }
        ::core::mem::transmute(umutablecptrie_fromUCPMap(::core::mem::transmute(map), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umutablecptrie_fromUCPTrie(trie: *const UCPTrie, perrorcode: *mut UErrorCode) -> *mut UMutableCPTrie {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umutablecptrie_fromUCPTrie(trie: *const UCPTrie, perrorcode: *mut UErrorCode) -> *mut UMutableCPTrie;
        }
        ::core::mem::transmute(umutablecptrie_fromUCPTrie(::core::mem::transmute(trie), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umutablecptrie_get(trie: *const UMutableCPTrie, c: i32) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umutablecptrie_get(trie: *const UMutableCPTrie, c: i32) -> u32;
        }
        ::core::mem::transmute(umutablecptrie_get(::core::mem::transmute(trie), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umutablecptrie_getRange(trie: *const UMutableCPTrie, start: i32, option: UCPMapRangeOption, surrogatevalue: u32, filter: *mut UCPMapValueFilter, context: *const ::core::ffi::c_void, pvalue: *mut u32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umutablecptrie_getRange(trie: *const UMutableCPTrie, start: i32, option: UCPMapRangeOption, surrogatevalue: u32, filter: *mut ::windows::core::RawPtr, context: *const ::core::ffi::c_void, pvalue: *mut u32) -> i32;
        }
        ::core::mem::transmute(umutablecptrie_getRange(::core::mem::transmute(trie), ::core::mem::transmute(start), ::core::mem::transmute(option), ::core::mem::transmute(surrogatevalue), ::core::mem::transmute(filter), ::core::mem::transmute(context), ::core::mem::transmute(pvalue)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umutablecptrie_open(initialvalue: u32, errorvalue: u32, perrorcode: *mut UErrorCode) -> *mut UMutableCPTrie {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umutablecptrie_open(initialvalue: u32, errorvalue: u32, perrorcode: *mut UErrorCode) -> *mut UMutableCPTrie;
        }
        ::core::mem::transmute(umutablecptrie_open(::core::mem::transmute(initialvalue), ::core::mem::transmute(errorvalue), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umutablecptrie_set(trie: *mut UMutableCPTrie, c: i32, value: u32, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umutablecptrie_set(trie: *mut UMutableCPTrie, c: i32, value: u32, perrorcode: *mut UErrorCode);
        }
        umutablecptrie_set(::core::mem::transmute(trie), ::core::mem::transmute(c), ::core::mem::transmute(value), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn umutablecptrie_setRange(trie: *mut UMutableCPTrie, start: i32, end: i32, value: u32, perrorcode: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn umutablecptrie_setRange(trie: *mut UMutableCPTrie, start: i32, end: i32, value: u32, perrorcode: *mut UErrorCode);
        }
        umutablecptrie_setRange(::core::mem::transmute(trie), ::core::mem::transmute(start), ::core::mem::transmute(end), ::core::mem::transmute(value), ::core::mem::transmute(perrorcode))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_append(norm2: *const UNormalizer2, first: *mut u16, firstlength: i32, firstcapacity: i32, second: *const u16, secondlength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_append(norm2: *const UNormalizer2, first: *mut u16, firstlength: i32, firstcapacity: i32, second: *const u16, secondlength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unorm2_append(::core::mem::transmute(norm2), ::core::mem::transmute(first), ::core::mem::transmute(firstlength), ::core::mem::transmute(firstcapacity), ::core::mem::transmute(second), ::core::mem::transmute(secondlength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_close(norm2: *mut UNormalizer2) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_close(norm2: *mut UNormalizer2);
        }
        unorm2_close(::core::mem::transmute(norm2))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_composePair(norm2: *const UNormalizer2, a: i32, b: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_composePair(norm2: *const UNormalizer2, a: i32, b: i32) -> i32;
        }
        ::core::mem::transmute(unorm2_composePair(::core::mem::transmute(norm2), ::core::mem::transmute(a), ::core::mem::transmute(b)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_getCombiningClass(norm2: *const UNormalizer2, c: i32) -> u8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_getCombiningClass(norm2: *const UNormalizer2, c: i32) -> u8;
        }
        ::core::mem::transmute(unorm2_getCombiningClass(::core::mem::transmute(norm2), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_getDecomposition(norm2: *const UNormalizer2, c: i32, decomposition: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_getDecomposition(norm2: *const UNormalizer2, c: i32, decomposition: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unorm2_getDecomposition(::core::mem::transmute(norm2), ::core::mem::transmute(c), ::core::mem::transmute(decomposition), ::core::mem::transmute(capacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_getInstance<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(packagename: Param0, name: Param1, mode: UNormalization2Mode, perrorcode: *mut UErrorCode) -> *mut UNormalizer2 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_getInstance(packagename: ::windows::core::PCSTR, name: ::windows::core::PCSTR, mode: UNormalization2Mode, perrorcode: *mut UErrorCode) -> *mut UNormalizer2;
        }
        ::core::mem::transmute(unorm2_getInstance(packagename.into_param().abi(), name.into_param().abi(), ::core::mem::transmute(mode), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_getNFCInstance(perrorcode: *mut UErrorCode) -> *mut UNormalizer2 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_getNFCInstance(perrorcode: *mut UErrorCode) -> *mut UNormalizer2;
        }
        ::core::mem::transmute(unorm2_getNFCInstance(::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_getNFDInstance(perrorcode: *mut UErrorCode) -> *mut UNormalizer2 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_getNFDInstance(perrorcode: *mut UErrorCode) -> *mut UNormalizer2;
        }
        ::core::mem::transmute(unorm2_getNFDInstance(::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_getNFKCCasefoldInstance(perrorcode: *mut UErrorCode) -> *mut UNormalizer2 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_getNFKCCasefoldInstance(perrorcode: *mut UErrorCode) -> *mut UNormalizer2;
        }
        ::core::mem::transmute(unorm2_getNFKCCasefoldInstance(::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_getNFKCInstance(perrorcode: *mut UErrorCode) -> *mut UNormalizer2 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_getNFKCInstance(perrorcode: *mut UErrorCode) -> *mut UNormalizer2;
        }
        ::core::mem::transmute(unorm2_getNFKCInstance(::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_getNFKDInstance(perrorcode: *mut UErrorCode) -> *mut UNormalizer2 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_getNFKDInstance(perrorcode: *mut UErrorCode) -> *mut UNormalizer2;
        }
        ::core::mem::transmute(unorm2_getNFKDInstance(::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_getRawDecomposition(norm2: *const UNormalizer2, c: i32, decomposition: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_getRawDecomposition(norm2: *const UNormalizer2, c: i32, decomposition: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unorm2_getRawDecomposition(::core::mem::transmute(norm2), ::core::mem::transmute(c), ::core::mem::transmute(decomposition), ::core::mem::transmute(capacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_hasBoundaryAfter(norm2: *const UNormalizer2, c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_hasBoundaryAfter(norm2: *const UNormalizer2, c: i32) -> i8;
        }
        ::core::mem::transmute(unorm2_hasBoundaryAfter(::core::mem::transmute(norm2), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_hasBoundaryBefore(norm2: *const UNormalizer2, c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_hasBoundaryBefore(norm2: *const UNormalizer2, c: i32) -> i8;
        }
        ::core::mem::transmute(unorm2_hasBoundaryBefore(::core::mem::transmute(norm2), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_isInert(norm2: *const UNormalizer2, c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_isInert(norm2: *const UNormalizer2, c: i32) -> i8;
        }
        ::core::mem::transmute(unorm2_isInert(::core::mem::transmute(norm2), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_isNormalized(norm2: *const UNormalizer2, s: *const u16, length: i32, perrorcode: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_isNormalized(norm2: *const UNormalizer2, s: *const u16, length: i32, perrorcode: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(unorm2_isNormalized(::core::mem::transmute(norm2), ::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_normalize(norm2: *const UNormalizer2, src: *const u16, length: i32, dest: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_normalize(norm2: *const UNormalizer2, src: *const u16, length: i32, dest: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unorm2_normalize(::core::mem::transmute(norm2), ::core::mem::transmute(src), ::core::mem::transmute(length), ::core::mem::transmute(dest), ::core::mem::transmute(capacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_normalizeSecondAndAppend(norm2: *const UNormalizer2, first: *mut u16, firstlength: i32, firstcapacity: i32, second: *const u16, secondlength: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_normalizeSecondAndAppend(norm2: *const UNormalizer2, first: *mut u16, firstlength: i32, firstcapacity: i32, second: *const u16, secondlength: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unorm2_normalizeSecondAndAppend(::core::mem::transmute(norm2), ::core::mem::transmute(first), ::core::mem::transmute(firstlength), ::core::mem::transmute(firstcapacity), ::core::mem::transmute(second), ::core::mem::transmute(secondlength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_openFiltered(norm2: *const UNormalizer2, filterset: *const USet, perrorcode: *mut UErrorCode) -> *mut UNormalizer2 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_openFiltered(norm2: *const UNormalizer2, filterset: *const USet, perrorcode: *mut UErrorCode) -> *mut UNormalizer2;
        }
        ::core::mem::transmute(unorm2_openFiltered(::core::mem::transmute(norm2), ::core::mem::transmute(filterset), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_quickCheck(norm2: *const UNormalizer2, s: *const u16, length: i32, perrorcode: *mut UErrorCode) -> UNormalizationCheckResult {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_quickCheck(norm2: *const UNormalizer2, s: *const u16, length: i32, perrorcode: *mut UErrorCode) -> UNormalizationCheckResult;
        }
        ::core::mem::transmute(unorm2_quickCheck(::core::mem::transmute(norm2), ::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm2_spanQuickCheckYes(norm2: *const UNormalizer2, s: *const u16, length: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm2_spanQuickCheckYes(norm2: *const UNormalizer2, s: *const u16, length: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unorm2_spanQuickCheckYes(::core::mem::transmute(norm2), ::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unorm_compare(s1: *const u16, length1: i32, s2: *const u16, length2: i32, options: u32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unorm_compare(s1: *const u16, length1: i32, s2: *const u16, length2: i32, options: u32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unorm_compare(::core::mem::transmute(s1), ::core::mem::transmute(length1), ::core::mem::transmute(s2), ::core::mem::transmute(length2), ::core::mem::transmute(options), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_applyPattern(format: *mut *mut ::core::ffi::c_void, localized: i8, pattern: *const u16, patternlength: i32, parseerror: *mut UParseError, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_applyPattern(format: *mut *mut ::core::ffi::c_void, localized: i8, pattern: *const u16, patternlength: i32, parseerror: *mut UParseError, status: *mut UErrorCode);
        }
        unum_applyPattern(::core::mem::transmute(format), ::core::mem::transmute(localized), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(parseerror), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_clone(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_clone(fmt: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(unum_clone(::core::mem::transmute(fmt), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_close(fmt: *mut *mut ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_close(fmt: *mut *mut ::core::ffi::c_void);
        }
        unum_close(::core::mem::transmute(fmt))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_countAvailable() -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_countAvailable() -> i32;
        }
        ::core::mem::transmute(unum_countAvailable())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_format(fmt: *const *const ::core::ffi::c_void, number: i32, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_format(fmt: *const *const ::core::ffi::c_void, number: i32, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_format(::core::mem::transmute(fmt), ::core::mem::transmute(number), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(pos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_formatDecimal<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(fmt: *const *const ::core::ffi::c_void, number: Param1, length: i32, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_formatDecimal(fmt: *const *const ::core::ffi::c_void, number: ::windows::core::PCSTR, length: i32, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_formatDecimal(::core::mem::transmute(fmt), number.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(pos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_formatDouble(fmt: *const *const ::core::ffi::c_void, number: f64, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_formatDouble(fmt: *const *const ::core::ffi::c_void, number: f64, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_formatDouble(::core::mem::transmute(fmt), ::core::mem::transmute(number), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(pos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_formatDoubleCurrency(fmt: *const *const ::core::ffi::c_void, number: f64, currency: *mut u16, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_formatDoubleCurrency(fmt: *const *const ::core::ffi::c_void, number: f64, currency: *mut u16, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_formatDoubleCurrency(::core::mem::transmute(fmt), ::core::mem::transmute(number), ::core::mem::transmute(currency), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(pos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_formatDoubleForFields(format: *const *const ::core::ffi::c_void, number: f64, result: *mut u16, resultlength: i32, fpositer: *mut UFieldPositionIterator, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_formatDoubleForFields(format: *const *const ::core::ffi::c_void, number: f64, result: *mut u16, resultlength: i32, fpositer: *mut UFieldPositionIterator, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_formatDoubleForFields(::core::mem::transmute(format), ::core::mem::transmute(number), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(fpositer), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_formatInt64(fmt: *const *const ::core::ffi::c_void, number: i64, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_formatInt64(fmt: *const *const ::core::ffi::c_void, number: i64, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_formatInt64(::core::mem::transmute(fmt), ::core::mem::transmute(number), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(pos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_formatUFormattable(fmt: *const *const ::core::ffi::c_void, number: *const *const ::core::ffi::c_void, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_formatUFormattable(fmt: *const *const ::core::ffi::c_void, number: *const *const ::core::ffi::c_void, result: *mut u16, resultlength: i32, pos: *mut UFieldPosition, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_formatUFormattable(::core::mem::transmute(fmt), ::core::mem::transmute(number), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(pos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_getAttribute(fmt: *const *const ::core::ffi::c_void, attr: UNumberFormatAttribute) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_getAttribute(fmt: *const *const ::core::ffi::c_void, attr: UNumberFormatAttribute) -> i32;
        }
        ::core::mem::transmute(unum_getAttribute(::core::mem::transmute(fmt), ::core::mem::transmute(attr)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_getAvailable(localeindex: i32) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_getAvailable(localeindex: i32) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(unum_getAvailable(::core::mem::transmute(localeindex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_getContext(fmt: *const *const ::core::ffi::c_void, r#type: UDisplayContextType, status: *mut UErrorCode) -> UDisplayContext {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_getContext(fmt: *const *const ::core::ffi::c_void, r#type: UDisplayContextType, status: *mut UErrorCode) -> UDisplayContext;
        }
        ::core::mem::transmute(unum_getContext(::core::mem::transmute(fmt), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_getDoubleAttribute(fmt: *const *const ::core::ffi::c_void, attr: UNumberFormatAttribute) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_getDoubleAttribute(fmt: *const *const ::core::ffi::c_void, attr: UNumberFormatAttribute) -> f64;
        }
        ::core::mem::transmute(unum_getDoubleAttribute(::core::mem::transmute(fmt), ::core::mem::transmute(attr)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_getLocaleByType(fmt: *const *const ::core::ffi::c_void, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_getLocaleByType(fmt: *const *const ::core::ffi::c_void, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(unum_getLocaleByType(::core::mem::transmute(fmt), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_getSymbol(fmt: *const *const ::core::ffi::c_void, symbol: UNumberFormatSymbol, buffer: *mut u16, size: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_getSymbol(fmt: *const *const ::core::ffi::c_void, symbol: UNumberFormatSymbol, buffer: *mut u16, size: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_getSymbol(::core::mem::transmute(fmt), ::core::mem::transmute(symbol), ::core::mem::transmute(buffer), ::core::mem::transmute(size), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_getTextAttribute(fmt: *const *const ::core::ffi::c_void, tag: UNumberFormatTextAttribute, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_getTextAttribute(fmt: *const *const ::core::ffi::c_void, tag: UNumberFormatTextAttribute, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_getTextAttribute(::core::mem::transmute(fmt), ::core::mem::transmute(tag), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_open<'a, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(style: UNumberFormatStyle, pattern: *const u16, patternlength: i32, locale: Param3, parseerr: *mut UParseError, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_open(style: UNumberFormatStyle, pattern: *const u16, patternlength: i32, locale: ::windows::core::PCSTR, parseerr: *mut UParseError, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(unum_open(::core::mem::transmute(style), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), locale.into_param().abi(), ::core::mem::transmute(parseerr), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_parse(fmt: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_parse(fmt: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_parse(::core::mem::transmute(fmt), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(parsepos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_parseDecimal<'a, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(fmt: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, outbuf: Param4, outbuflength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_parseDecimal(fmt: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, outbuf: ::windows::core::PCSTR, outbuflength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_parseDecimal(::core::mem::transmute(fmt), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(parsepos), outbuf.into_param().abi(), ::core::mem::transmute(outbuflength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_parseDouble(fmt: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_parseDouble(fmt: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) -> f64;
        }
        ::core::mem::transmute(unum_parseDouble(::core::mem::transmute(fmt), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(parsepos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_parseDoubleCurrency(fmt: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, currency: *mut u16, status: *mut UErrorCode) -> f64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_parseDoubleCurrency(fmt: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, currency: *mut u16, status: *mut UErrorCode) -> f64;
        }
        ::core::mem::transmute(unum_parseDoubleCurrency(::core::mem::transmute(fmt), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(parsepos), ::core::mem::transmute(currency), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_parseInt64(fmt: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_parseInt64(fmt: *const *const ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) -> i64;
        }
        ::core::mem::transmute(unum_parseInt64(::core::mem::transmute(fmt), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(parsepos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_parseToUFormattable(fmt: *const *const ::core::ffi::c_void, result: *mut *mut ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_parseToUFormattable(fmt: *const *const ::core::ffi::c_void, result: *mut *mut ::core::ffi::c_void, text: *const u16, textlength: i32, parsepos: *mut i32, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(unum_parseToUFormattable(::core::mem::transmute(fmt), ::core::mem::transmute(result), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(parsepos), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_setAttribute(fmt: *mut *mut ::core::ffi::c_void, attr: UNumberFormatAttribute, newvalue: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_setAttribute(fmt: *mut *mut ::core::ffi::c_void, attr: UNumberFormatAttribute, newvalue: i32);
        }
        unum_setAttribute(::core::mem::transmute(fmt), ::core::mem::transmute(attr), ::core::mem::transmute(newvalue))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_setContext(fmt: *mut *mut ::core::ffi::c_void, value: UDisplayContext, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_setContext(fmt: *mut *mut ::core::ffi::c_void, value: UDisplayContext, status: *mut UErrorCode);
        }
        unum_setContext(::core::mem::transmute(fmt), ::core::mem::transmute(value), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_setDoubleAttribute(fmt: *mut *mut ::core::ffi::c_void, attr: UNumberFormatAttribute, newvalue: f64) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_setDoubleAttribute(fmt: *mut *mut ::core::ffi::c_void, attr: UNumberFormatAttribute, newvalue: f64);
        }
        unum_setDoubleAttribute(::core::mem::transmute(fmt), ::core::mem::transmute(attr), ::core::mem::transmute(newvalue))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_setSymbol(fmt: *mut *mut ::core::ffi::c_void, symbol: UNumberFormatSymbol, value: *const u16, length: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_setSymbol(fmt: *mut *mut ::core::ffi::c_void, symbol: UNumberFormatSymbol, value: *const u16, length: i32, status: *mut UErrorCode);
        }
        unum_setSymbol(::core::mem::transmute(fmt), ::core::mem::transmute(symbol), ::core::mem::transmute(value), ::core::mem::transmute(length), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_setTextAttribute(fmt: *mut *mut ::core::ffi::c_void, tag: UNumberFormatTextAttribute, newvalue: *const u16, newvaluelength: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_setTextAttribute(fmt: *mut *mut ::core::ffi::c_void, tag: UNumberFormatTextAttribute, newvalue: *const u16, newvaluelength: i32, status: *mut UErrorCode);
        }
        unum_setTextAttribute(::core::mem::transmute(fmt), ::core::mem::transmute(tag), ::core::mem::transmute(newvalue), ::core::mem::transmute(newvaluelength), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unum_toPattern(fmt: *const *const ::core::ffi::c_void, ispatternlocalized: i8, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unum_toPattern(fmt: *const *const ::core::ffi::c_void, ispatternlocalized: i8, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unum_toPattern(::core::mem::transmute(fmt), ::core::mem::transmute(ispatternlocalized), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_close(uformatter: *mut UNumberFormatter) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_close(uformatter: *mut UNumberFormatter);
        }
        unumf_close(::core::mem::transmute(uformatter))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_closeResult(uresult: *mut UFormattedNumber) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_closeResult(uresult: *mut UFormattedNumber);
        }
        unumf_closeResult(::core::mem::transmute(uresult))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_formatDecimal<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(uformatter: *const UNumberFormatter, value: Param1, valuelen: i32, uresult: *mut UFormattedNumber, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_formatDecimal(uformatter: *const UNumberFormatter, value: ::windows::core::PCSTR, valuelen: i32, uresult: *mut UFormattedNumber, ec: *mut UErrorCode);
        }
        unumf_formatDecimal(::core::mem::transmute(uformatter), value.into_param().abi(), ::core::mem::transmute(valuelen), ::core::mem::transmute(uresult), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_formatDouble(uformatter: *const UNumberFormatter, value: f64, uresult: *mut UFormattedNumber, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_formatDouble(uformatter: *const UNumberFormatter, value: f64, uresult: *mut UFormattedNumber, ec: *mut UErrorCode);
        }
        unumf_formatDouble(::core::mem::transmute(uformatter), ::core::mem::transmute(value), ::core::mem::transmute(uresult), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_formatInt(uformatter: *const UNumberFormatter, value: i64, uresult: *mut UFormattedNumber, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_formatInt(uformatter: *const UNumberFormatter, value: i64, uresult: *mut UFormattedNumber, ec: *mut UErrorCode);
        }
        unumf_formatInt(::core::mem::transmute(uformatter), ::core::mem::transmute(value), ::core::mem::transmute(uresult), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_openForSkeletonAndLocale<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(skeleton: *const u16, skeletonlen: i32, locale: Param2, ec: *mut UErrorCode) -> *mut UNumberFormatter {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_openForSkeletonAndLocale(skeleton: *const u16, skeletonlen: i32, locale: ::windows::core::PCSTR, ec: *mut UErrorCode) -> *mut UNumberFormatter;
        }
        ::core::mem::transmute(unumf_openForSkeletonAndLocale(::core::mem::transmute(skeleton), ::core::mem::transmute(skeletonlen), locale.into_param().abi(), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_openForSkeletonAndLocaleWithError<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(skeleton: *const u16, skeletonlen: i32, locale: Param2, perror: *mut UParseError, ec: *mut UErrorCode) -> *mut UNumberFormatter {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_openForSkeletonAndLocaleWithError(skeleton: *const u16, skeletonlen: i32, locale: ::windows::core::PCSTR, perror: *mut UParseError, ec: *mut UErrorCode) -> *mut UNumberFormatter;
        }
        ::core::mem::transmute(unumf_openForSkeletonAndLocaleWithError(::core::mem::transmute(skeleton), ::core::mem::transmute(skeletonlen), locale.into_param().abi(), ::core::mem::transmute(perror), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_openResult(ec: *mut UErrorCode) -> *mut UFormattedNumber {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_openResult(ec: *mut UErrorCode) -> *mut UFormattedNumber;
        }
        ::core::mem::transmute(unumf_openResult(::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_resultAsValue(uresult: *const UFormattedNumber, ec: *mut UErrorCode) -> *mut UFormattedValue {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_resultAsValue(uresult: *const UFormattedNumber, ec: *mut UErrorCode) -> *mut UFormattedValue;
        }
        ::core::mem::transmute(unumf_resultAsValue(::core::mem::transmute(uresult), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_resultGetAllFieldPositions(uresult: *const UFormattedNumber, ufpositer: *mut UFieldPositionIterator, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_resultGetAllFieldPositions(uresult: *const UFormattedNumber, ufpositer: *mut UFieldPositionIterator, ec: *mut UErrorCode);
        }
        unumf_resultGetAllFieldPositions(::core::mem::transmute(uresult), ::core::mem::transmute(ufpositer), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_resultNextFieldPosition(uresult: *const UFormattedNumber, ufpos: *mut UFieldPosition, ec: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_resultNextFieldPosition(uresult: *const UFormattedNumber, ufpos: *mut UFieldPosition, ec: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(unumf_resultNextFieldPosition(::core::mem::transmute(uresult), ::core::mem::transmute(ufpos), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumf_resultToString(uresult: *const UFormattedNumber, buffer: *mut u16, buffercapacity: i32, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumf_resultToString(uresult: *const UFormattedNumber, buffer: *mut u16, buffercapacity: i32, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unumf_resultToString(::core::mem::transmute(uresult), ::core::mem::transmute(buffer), ::core::mem::transmute(buffercapacity), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumsys_close(unumsys: *mut UNumberingSystem) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumsys_close(unumsys: *mut UNumberingSystem);
        }
        unumsys_close(::core::mem::transmute(unumsys))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumsys_getDescription(unumsys: *const UNumberingSystem, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumsys_getDescription(unumsys: *const UNumberingSystem, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(unumsys_getDescription(::core::mem::transmute(unumsys), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumsys_getName(unumsys: *const UNumberingSystem) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumsys_getName(unumsys: *const UNumberingSystem) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(unumsys_getName(::core::mem::transmute(unumsys)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumsys_getRadix(unumsys: *const UNumberingSystem) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumsys_getRadix(unumsys: *const UNumberingSystem) -> i32;
        }
        ::core::mem::transmute(unumsys_getRadix(::core::mem::transmute(unumsys)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumsys_isAlgorithmic(unumsys: *const UNumberingSystem) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumsys_isAlgorithmic(unumsys: *const UNumberingSystem) -> i8;
        }
        ::core::mem::transmute(unumsys_isAlgorithmic(::core::mem::transmute(unumsys)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumsys_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, status: *mut UErrorCode) -> *mut UNumberingSystem {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumsys_open(locale: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UNumberingSystem;
        }
        ::core::mem::transmute(unumsys_open(locale.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumsys_openAvailableNames(status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumsys_openAvailableNames(status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(unumsys_openAvailableNames(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn unumsys_openByName<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(name: Param0, status: *mut UErrorCode) -> *mut UNumberingSystem {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn unumsys_openByName(name: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UNumberingSystem;
        }
        ::core::mem::transmute(unumsys_openByName(name.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uplrules_close(uplrules: *mut UPluralRules) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uplrules_close(uplrules: *mut UPluralRules);
        }
        uplrules_close(::core::mem::transmute(uplrules))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uplrules_getKeywords(uplrules: *const UPluralRules, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uplrules_getKeywords(uplrules: *const UPluralRules, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(uplrules_getKeywords(::core::mem::transmute(uplrules), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uplrules_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, status: *mut UErrorCode) -> *mut UPluralRules {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uplrules_open(locale: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UPluralRules;
        }
        ::core::mem::transmute(uplrules_open(locale.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uplrules_openForType<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, r#type: UPluralType, status: *mut UErrorCode) -> *mut UPluralRules {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uplrules_openForType(locale: ::windows::core::PCSTR, r#type: UPluralType, status: *mut UErrorCode) -> *mut UPluralRules;
        }
        ::core::mem::transmute(uplrules_openForType(locale.into_param().abi(), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uplrules_select(uplrules: *const UPluralRules, number: f64, keyword: *mut u16, capacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uplrules_select(uplrules: *const UPluralRules, number: f64, keyword: *mut u16, capacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uplrules_select(::core::mem::transmute(uplrules), ::core::mem::transmute(number), ::core::mem::transmute(keyword), ::core::mem::transmute(capacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uplrules_selectFormatted(uplrules: *const UPluralRules, number: *const UFormattedNumber, keyword: *mut u16, capacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uplrules_selectFormatted(uplrules: *const UPluralRules, number: *const UFormattedNumber, keyword: *mut u16, capacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uplrules_selectFormatted(::core::mem::transmute(uplrules), ::core::mem::transmute(number), ::core::mem::transmute(keyword), ::core::mem::transmute(capacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_appendReplacement(regexp: *mut URegularExpression, replacementtext: *const u16, replacementlength: i32, destbuf: *mut *mut u16, destcapacity: *mut i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_appendReplacement(regexp: *mut URegularExpression, replacementtext: *const u16, replacementlength: i32, destbuf: *mut *mut u16, destcapacity: *mut i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_appendReplacement(::core::mem::transmute(regexp), ::core::mem::transmute(replacementtext), ::core::mem::transmute(replacementlength), ::core::mem::transmute(destbuf), ::core::mem::transmute(destcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_appendReplacementUText(regexp: *mut URegularExpression, replacementtext: *mut UText, dest: *mut UText, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_appendReplacementUText(regexp: *mut URegularExpression, replacementtext: *mut UText, dest: *mut UText, status: *mut UErrorCode);
        }
        uregex_appendReplacementUText(::core::mem::transmute(regexp), ::core::mem::transmute(replacementtext), ::core::mem::transmute(dest), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_appendTail(regexp: *mut URegularExpression, destbuf: *mut *mut u16, destcapacity: *mut i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_appendTail(regexp: *mut URegularExpression, destbuf: *mut *mut u16, destcapacity: *mut i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_appendTail(::core::mem::transmute(regexp), ::core::mem::transmute(destbuf), ::core::mem::transmute(destcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_appendTailUText(regexp: *mut URegularExpression, dest: *mut UText, status: *mut UErrorCode) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_appendTailUText(regexp: *mut URegularExpression, dest: *mut UText, status: *mut UErrorCode) -> *mut UText;
        }
        ::core::mem::transmute(uregex_appendTailUText(::core::mem::transmute(regexp), ::core::mem::transmute(dest), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_clone(regexp: *const URegularExpression, status: *mut UErrorCode) -> *mut URegularExpression {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_clone(regexp: *const URegularExpression, status: *mut UErrorCode) -> *mut URegularExpression;
        }
        ::core::mem::transmute(uregex_clone(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_close(regexp: *mut URegularExpression) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_close(regexp: *mut URegularExpression);
        }
        uregex_close(::core::mem::transmute(regexp))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_end(regexp: *mut URegularExpression, groupnum: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_end(regexp: *mut URegularExpression, groupnum: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_end(::core::mem::transmute(regexp), ::core::mem::transmute(groupnum), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_end64(regexp: *mut URegularExpression, groupnum: i32, status: *mut UErrorCode) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_end64(regexp: *mut URegularExpression, groupnum: i32, status: *mut UErrorCode) -> i64;
        }
        ::core::mem::transmute(uregex_end64(::core::mem::transmute(regexp), ::core::mem::transmute(groupnum), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_find(regexp: *mut URegularExpression, startindex: i32, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_find(regexp: *mut URegularExpression, startindex: i32, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_find(::core::mem::transmute(regexp), ::core::mem::transmute(startindex), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_find64(regexp: *mut URegularExpression, startindex: i64, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_find64(regexp: *mut URegularExpression, startindex: i64, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_find64(::core::mem::transmute(regexp), ::core::mem::transmute(startindex), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_findNext(regexp: *mut URegularExpression, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_findNext(regexp: *mut URegularExpression, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_findNext(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_flags(regexp: *const URegularExpression, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_flags(regexp: *const URegularExpression, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_flags(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_getFindProgressCallback(regexp: *const URegularExpression, callback: *mut URegexFindProgressCallback, context: *const *const ::core::ffi::c_void, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_getFindProgressCallback(regexp: *const URegularExpression, callback: *mut ::windows::core::RawPtr, context: *const *const ::core::ffi::c_void, status: *mut UErrorCode);
        }
        uregex_getFindProgressCallback(::core::mem::transmute(regexp), ::core::mem::transmute(callback), ::core::mem::transmute(context), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_getMatchCallback(regexp: *const URegularExpression, callback: *mut URegexMatchCallback, context: *const *const ::core::ffi::c_void, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_getMatchCallback(regexp: *const URegularExpression, callback: *mut ::windows::core::RawPtr, context: *const *const ::core::ffi::c_void, status: *mut UErrorCode);
        }
        uregex_getMatchCallback(::core::mem::transmute(regexp), ::core::mem::transmute(callback), ::core::mem::transmute(context), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_getStackLimit(regexp: *const URegularExpression, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_getStackLimit(regexp: *const URegularExpression, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_getStackLimit(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_getText(regexp: *mut URegularExpression, textlength: *mut i32, status: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_getText(regexp: *mut URegularExpression, textlength: *mut i32, status: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(uregex_getText(::core::mem::transmute(regexp), ::core::mem::transmute(textlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_getTimeLimit(regexp: *const URegularExpression, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_getTimeLimit(regexp: *const URegularExpression, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_getTimeLimit(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_getUText(regexp: *mut URegularExpression, dest: *mut UText, status: *mut UErrorCode) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_getUText(regexp: *mut URegularExpression, dest: *mut UText, status: *mut UErrorCode) -> *mut UText;
        }
        ::core::mem::transmute(uregex_getUText(::core::mem::transmute(regexp), ::core::mem::transmute(dest), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_group(regexp: *mut URegularExpression, groupnum: i32, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_group(regexp: *mut URegularExpression, groupnum: i32, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_group(::core::mem::transmute(regexp), ::core::mem::transmute(groupnum), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_groupCount(regexp: *mut URegularExpression, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_groupCount(regexp: *mut URegularExpression, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_groupCount(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_groupNumberFromCName<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(regexp: *mut URegularExpression, groupname: Param1, namelength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_groupNumberFromCName(regexp: *mut URegularExpression, groupname: ::windows::core::PCSTR, namelength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_groupNumberFromCName(::core::mem::transmute(regexp), groupname.into_param().abi(), ::core::mem::transmute(namelength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_groupNumberFromName(regexp: *mut URegularExpression, groupname: *const u16, namelength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_groupNumberFromName(regexp: *mut URegularExpression, groupname: *const u16, namelength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_groupNumberFromName(::core::mem::transmute(regexp), ::core::mem::transmute(groupname), ::core::mem::transmute(namelength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_groupUText(regexp: *mut URegularExpression, groupnum: i32, dest: *mut UText, grouplength: *mut i64, status: *mut UErrorCode) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_groupUText(regexp: *mut URegularExpression, groupnum: i32, dest: *mut UText, grouplength: *mut i64, status: *mut UErrorCode) -> *mut UText;
        }
        ::core::mem::transmute(uregex_groupUText(::core::mem::transmute(regexp), ::core::mem::transmute(groupnum), ::core::mem::transmute(dest), ::core::mem::transmute(grouplength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_hasAnchoringBounds(regexp: *const URegularExpression, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_hasAnchoringBounds(regexp: *const URegularExpression, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_hasAnchoringBounds(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_hasTransparentBounds(regexp: *const URegularExpression, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_hasTransparentBounds(regexp: *const URegularExpression, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_hasTransparentBounds(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_hitEnd(regexp: *const URegularExpression, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_hitEnd(regexp: *const URegularExpression, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_hitEnd(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_lookingAt(regexp: *mut URegularExpression, startindex: i32, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_lookingAt(regexp: *mut URegularExpression, startindex: i32, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_lookingAt(::core::mem::transmute(regexp), ::core::mem::transmute(startindex), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_lookingAt64(regexp: *mut URegularExpression, startindex: i64, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_lookingAt64(regexp: *mut URegularExpression, startindex: i64, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_lookingAt64(::core::mem::transmute(regexp), ::core::mem::transmute(startindex), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_matches(regexp: *mut URegularExpression, startindex: i32, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_matches(regexp: *mut URegularExpression, startindex: i32, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_matches(::core::mem::transmute(regexp), ::core::mem::transmute(startindex), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_matches64(regexp: *mut URegularExpression, startindex: i64, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_matches64(regexp: *mut URegularExpression, startindex: i64, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_matches64(::core::mem::transmute(regexp), ::core::mem::transmute(startindex), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_open(pattern: *const u16, patternlength: i32, flags: u32, pe: *mut UParseError, status: *mut UErrorCode) -> *mut URegularExpression {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_open(pattern: *const u16, patternlength: i32, flags: u32, pe: *mut UParseError, status: *mut UErrorCode) -> *mut URegularExpression;
        }
        ::core::mem::transmute(uregex_open(::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(flags), ::core::mem::transmute(pe), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_openC<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(pattern: Param0, flags: u32, pe: *mut UParseError, status: *mut UErrorCode) -> *mut URegularExpression {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_openC(pattern: ::windows::core::PCSTR, flags: u32, pe: *mut UParseError, status: *mut UErrorCode) -> *mut URegularExpression;
        }
        ::core::mem::transmute(uregex_openC(pattern.into_param().abi(), ::core::mem::transmute(flags), ::core::mem::transmute(pe), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_openUText(pattern: *mut UText, flags: u32, pe: *mut UParseError, status: *mut UErrorCode) -> *mut URegularExpression {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_openUText(pattern: *mut UText, flags: u32, pe: *mut UParseError, status: *mut UErrorCode) -> *mut URegularExpression;
        }
        ::core::mem::transmute(uregex_openUText(::core::mem::transmute(pattern), ::core::mem::transmute(flags), ::core::mem::transmute(pe), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_pattern(regexp: *const URegularExpression, patlength: *mut i32, status: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_pattern(regexp: *const URegularExpression, patlength: *mut i32, status: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(uregex_pattern(::core::mem::transmute(regexp), ::core::mem::transmute(patlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_patternUText(regexp: *const URegularExpression, status: *mut UErrorCode) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_patternUText(regexp: *const URegularExpression, status: *mut UErrorCode) -> *mut UText;
        }
        ::core::mem::transmute(uregex_patternUText(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_refreshUText(regexp: *mut URegularExpression, text: *mut UText, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_refreshUText(regexp: *mut URegularExpression, text: *mut UText, status: *mut UErrorCode);
        }
        uregex_refreshUText(::core::mem::transmute(regexp), ::core::mem::transmute(text), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_regionEnd(regexp: *const URegularExpression, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_regionEnd(regexp: *const URegularExpression, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_regionEnd(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_regionEnd64(regexp: *const URegularExpression, status: *mut UErrorCode) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_regionEnd64(regexp: *const URegularExpression, status: *mut UErrorCode) -> i64;
        }
        ::core::mem::transmute(uregex_regionEnd64(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_regionStart(regexp: *const URegularExpression, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_regionStart(regexp: *const URegularExpression, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_regionStart(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_regionStart64(regexp: *const URegularExpression, status: *mut UErrorCode) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_regionStart64(regexp: *const URegularExpression, status: *mut UErrorCode) -> i64;
        }
        ::core::mem::transmute(uregex_regionStart64(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_replaceAll(regexp: *mut URegularExpression, replacementtext: *const u16, replacementlength: i32, destbuf: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_replaceAll(regexp: *mut URegularExpression, replacementtext: *const u16, replacementlength: i32, destbuf: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_replaceAll(::core::mem::transmute(regexp), ::core::mem::transmute(replacementtext), ::core::mem::transmute(replacementlength), ::core::mem::transmute(destbuf), ::core::mem::transmute(destcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_replaceAllUText(regexp: *mut URegularExpression, replacement: *mut UText, dest: *mut UText, status: *mut UErrorCode) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_replaceAllUText(regexp: *mut URegularExpression, replacement: *mut UText, dest: *mut UText, status: *mut UErrorCode) -> *mut UText;
        }
        ::core::mem::transmute(uregex_replaceAllUText(::core::mem::transmute(regexp), ::core::mem::transmute(replacement), ::core::mem::transmute(dest), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_replaceFirst(regexp: *mut URegularExpression, replacementtext: *const u16, replacementlength: i32, destbuf: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_replaceFirst(regexp: *mut URegularExpression, replacementtext: *const u16, replacementlength: i32, destbuf: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_replaceFirst(::core::mem::transmute(regexp), ::core::mem::transmute(replacementtext), ::core::mem::transmute(replacementlength), ::core::mem::transmute(destbuf), ::core::mem::transmute(destcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_replaceFirstUText(regexp: *mut URegularExpression, replacement: *mut UText, dest: *mut UText, status: *mut UErrorCode) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_replaceFirstUText(regexp: *mut URegularExpression, replacement: *mut UText, dest: *mut UText, status: *mut UErrorCode) -> *mut UText;
        }
        ::core::mem::transmute(uregex_replaceFirstUText(::core::mem::transmute(regexp), ::core::mem::transmute(replacement), ::core::mem::transmute(dest), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_requireEnd(regexp: *const URegularExpression, status: *mut UErrorCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_requireEnd(regexp: *const URegularExpression, status: *mut UErrorCode) -> i8;
        }
        ::core::mem::transmute(uregex_requireEnd(::core::mem::transmute(regexp), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_reset(regexp: *mut URegularExpression, index: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_reset(regexp: *mut URegularExpression, index: i32, status: *mut UErrorCode);
        }
        uregex_reset(::core::mem::transmute(regexp), ::core::mem::transmute(index), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_reset64(regexp: *mut URegularExpression, index: i64, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_reset64(regexp: *mut URegularExpression, index: i64, status: *mut UErrorCode);
        }
        uregex_reset64(::core::mem::transmute(regexp), ::core::mem::transmute(index), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_setFindProgressCallback(regexp: *mut URegularExpression, callback: URegexFindProgressCallback, context: *const ::core::ffi::c_void, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_setFindProgressCallback(regexp: *mut URegularExpression, callback: ::windows::core::RawPtr, context: *const ::core::ffi::c_void, status: *mut UErrorCode);
        }
        uregex_setFindProgressCallback(::core::mem::transmute(regexp), ::core::mem::transmute(callback), ::core::mem::transmute(context), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_setMatchCallback(regexp: *mut URegularExpression, callback: URegexMatchCallback, context: *const ::core::ffi::c_void, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_setMatchCallback(regexp: *mut URegularExpression, callback: ::windows::core::RawPtr, context: *const ::core::ffi::c_void, status: *mut UErrorCode);
        }
        uregex_setMatchCallback(::core::mem::transmute(regexp), ::core::mem::transmute(callback), ::core::mem::transmute(context), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_setRegion(regexp: *mut URegularExpression, regionstart: i32, regionlimit: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_setRegion(regexp: *mut URegularExpression, regionstart: i32, regionlimit: i32, status: *mut UErrorCode);
        }
        uregex_setRegion(::core::mem::transmute(regexp), ::core::mem::transmute(regionstart), ::core::mem::transmute(regionlimit), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_setRegion64(regexp: *mut URegularExpression, regionstart: i64, regionlimit: i64, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_setRegion64(regexp: *mut URegularExpression, regionstart: i64, regionlimit: i64, status: *mut UErrorCode);
        }
        uregex_setRegion64(::core::mem::transmute(regexp), ::core::mem::transmute(regionstart), ::core::mem::transmute(regionlimit), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_setRegionAndStart(regexp: *mut URegularExpression, regionstart: i64, regionlimit: i64, startindex: i64, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_setRegionAndStart(regexp: *mut URegularExpression, regionstart: i64, regionlimit: i64, startindex: i64, status: *mut UErrorCode);
        }
        uregex_setRegionAndStart(::core::mem::transmute(regexp), ::core::mem::transmute(regionstart), ::core::mem::transmute(regionlimit), ::core::mem::transmute(startindex), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_setStackLimit(regexp: *mut URegularExpression, limit: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_setStackLimit(regexp: *mut URegularExpression, limit: i32, status: *mut UErrorCode);
        }
        uregex_setStackLimit(::core::mem::transmute(regexp), ::core::mem::transmute(limit), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_setText(regexp: *mut URegularExpression, text: *const u16, textlength: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_setText(regexp: *mut URegularExpression, text: *const u16, textlength: i32, status: *mut UErrorCode);
        }
        uregex_setText(::core::mem::transmute(regexp), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_setTimeLimit(regexp: *mut URegularExpression, limit: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_setTimeLimit(regexp: *mut URegularExpression, limit: i32, status: *mut UErrorCode);
        }
        uregex_setTimeLimit(::core::mem::transmute(regexp), ::core::mem::transmute(limit), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_setUText(regexp: *mut URegularExpression, text: *mut UText, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_setUText(regexp: *mut URegularExpression, text: *mut UText, status: *mut UErrorCode);
        }
        uregex_setUText(::core::mem::transmute(regexp), ::core::mem::transmute(text), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_split(regexp: *mut URegularExpression, destbuf: *mut u16, destcapacity: i32, requiredcapacity: *mut i32, destfields: *mut *mut u16, destfieldscapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_split(regexp: *mut URegularExpression, destbuf: *mut u16, destcapacity: i32, requiredcapacity: *mut i32, destfields: *mut *mut u16, destfieldscapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_split(::core::mem::transmute(regexp), ::core::mem::transmute(destbuf), ::core::mem::transmute(destcapacity), ::core::mem::transmute(requiredcapacity), ::core::mem::transmute(destfields), ::core::mem::transmute(destfieldscapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_splitUText(regexp: *mut URegularExpression, destfields: *mut *mut UText, destfieldscapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_splitUText(regexp: *mut URegularExpression, destfields: *mut *mut UText, destfieldscapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_splitUText(::core::mem::transmute(regexp), ::core::mem::transmute(destfields), ::core::mem::transmute(destfieldscapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_start(regexp: *mut URegularExpression, groupnum: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_start(regexp: *mut URegularExpression, groupnum: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uregex_start(::core::mem::transmute(regexp), ::core::mem::transmute(groupnum), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_start64(regexp: *mut URegularExpression, groupnum: i32, status: *mut UErrorCode) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_start64(regexp: *mut URegularExpression, groupnum: i32, status: *mut UErrorCode) -> i64;
        }
        ::core::mem::transmute(uregex_start64(::core::mem::transmute(regexp), ::core::mem::transmute(groupnum), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_useAnchoringBounds(regexp: *mut URegularExpression, b: i8, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_useAnchoringBounds(regexp: *mut URegularExpression, b: i8, status: *mut UErrorCode);
        }
        uregex_useAnchoringBounds(::core::mem::transmute(regexp), ::core::mem::transmute(b), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregex_useTransparentBounds(regexp: *mut URegularExpression, b: i8, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregex_useTransparentBounds(regexp: *mut URegularExpression, b: i8, status: *mut UErrorCode);
        }
        uregex_useTransparentBounds(::core::mem::transmute(regexp), ::core::mem::transmute(b), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_areEqual(uregion: *const URegion, otherregion: *const URegion) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_areEqual(uregion: *const URegion, otherregion: *const URegion) -> i8;
        }
        ::core::mem::transmute(uregion_areEqual(::core::mem::transmute(uregion), ::core::mem::transmute(otherregion)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_contains(uregion: *const URegion, otherregion: *const URegion) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_contains(uregion: *const URegion, otherregion: *const URegion) -> i8;
        }
        ::core::mem::transmute(uregion_contains(::core::mem::transmute(uregion), ::core::mem::transmute(otherregion)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getAvailable(r#type: URegionType, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getAvailable(r#type: URegionType, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(uregion_getAvailable(::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getContainedRegions(uregion: *const URegion, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getContainedRegions(uregion: *const URegion, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(uregion_getContainedRegions(::core::mem::transmute(uregion), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getContainedRegionsOfType(uregion: *const URegion, r#type: URegionType, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getContainedRegionsOfType(uregion: *const URegion, r#type: URegionType, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(uregion_getContainedRegionsOfType(::core::mem::transmute(uregion), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getContainingRegion(uregion: *const URegion) -> *mut URegion {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getContainingRegion(uregion: *const URegion) -> *mut URegion;
        }
        ::core::mem::transmute(uregion_getContainingRegion(::core::mem::transmute(uregion)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getContainingRegionOfType(uregion: *const URegion, r#type: URegionType) -> *mut URegion {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getContainingRegionOfType(uregion: *const URegion, r#type: URegionType) -> *mut URegion;
        }
        ::core::mem::transmute(uregion_getContainingRegionOfType(::core::mem::transmute(uregion), ::core::mem::transmute(r#type)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getNumericCode(uregion: *const URegion) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getNumericCode(uregion: *const URegion) -> i32;
        }
        ::core::mem::transmute(uregion_getNumericCode(::core::mem::transmute(uregion)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getPreferredValues(uregion: *const URegion, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getPreferredValues(uregion: *const URegion, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(uregion_getPreferredValues(::core::mem::transmute(uregion), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getRegionCode(uregion: *const URegion) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getRegionCode(uregion: *const URegion) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uregion_getRegionCode(::core::mem::transmute(uregion)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getRegionFromCode<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(regioncode: Param0, status: *mut UErrorCode) -> *mut URegion {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getRegionFromCode(regioncode: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut URegion;
        }
        ::core::mem::transmute(uregion_getRegionFromCode(regioncode.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getRegionFromNumericCode(code: i32, status: *mut UErrorCode) -> *mut URegion {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getRegionFromNumericCode(code: i32, status: *mut UErrorCode) -> *mut URegion;
        }
        ::core::mem::transmute(uregion_getRegionFromNumericCode(::core::mem::transmute(code), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uregion_getType(uregion: *const URegion) -> URegionType {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uregion_getType(uregion: *const URegion) -> URegionType;
        }
        ::core::mem::transmute(uregion_getType(::core::mem::transmute(uregion)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ureldatefmt_close(reldatefmt: *mut URelativeDateTimeFormatter) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ureldatefmt_close(reldatefmt: *mut URelativeDateTimeFormatter);
        }
        ureldatefmt_close(::core::mem::transmute(reldatefmt))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ureldatefmt_closeResult(ufrdt: *mut UFormattedRelativeDateTime) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ureldatefmt_closeResult(ufrdt: *mut UFormattedRelativeDateTime);
        }
        ureldatefmt_closeResult(::core::mem::transmute(ufrdt))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ureldatefmt_combineDateAndTime(reldatefmt: *const URelativeDateTimeFormatter, relativedatestring: *const u16, relativedatestringlen: i32, timestring: *const u16, timestringlen: i32, result: *mut u16, resultcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ureldatefmt_combineDateAndTime(reldatefmt: *const URelativeDateTimeFormatter, relativedatestring: *const u16, relativedatestringlen: i32, timestring: *const u16, timestringlen: i32, result: *mut u16, resultcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ureldatefmt_combineDateAndTime(::core::mem::transmute(reldatefmt), ::core::mem::transmute(relativedatestring), ::core::mem::transmute(relativedatestringlen), ::core::mem::transmute(timestring), ::core::mem::transmute(timestringlen), ::core::mem::transmute(result), ::core::mem::transmute(resultcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ureldatefmt_format(reldatefmt: *const URelativeDateTimeFormatter, offset: f64, unit: URelativeDateTimeUnit, result: *mut u16, resultcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ureldatefmt_format(reldatefmt: *const URelativeDateTimeFormatter, offset: f64, unit: URelativeDateTimeUnit, result: *mut u16, resultcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ureldatefmt_format(::core::mem::transmute(reldatefmt), ::core::mem::transmute(offset), ::core::mem::transmute(unit), ::core::mem::transmute(result), ::core::mem::transmute(resultcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ureldatefmt_formatNumeric(reldatefmt: *const URelativeDateTimeFormatter, offset: f64, unit: URelativeDateTimeUnit, result: *mut u16, resultcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ureldatefmt_formatNumeric(reldatefmt: *const URelativeDateTimeFormatter, offset: f64, unit: URelativeDateTimeUnit, result: *mut u16, resultcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ureldatefmt_formatNumeric(::core::mem::transmute(reldatefmt), ::core::mem::transmute(offset), ::core::mem::transmute(unit), ::core::mem::transmute(result), ::core::mem::transmute(resultcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ureldatefmt_formatNumericToResult(reldatefmt: *const URelativeDateTimeFormatter, offset: f64, unit: URelativeDateTimeUnit, result: *mut UFormattedRelativeDateTime, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ureldatefmt_formatNumericToResult(reldatefmt: *const URelativeDateTimeFormatter, offset: f64, unit: URelativeDateTimeUnit, result: *mut UFormattedRelativeDateTime, status: *mut UErrorCode);
        }
        ureldatefmt_formatNumericToResult(::core::mem::transmute(reldatefmt), ::core::mem::transmute(offset), ::core::mem::transmute(unit), ::core::mem::transmute(result), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ureldatefmt_formatToResult(reldatefmt: *const URelativeDateTimeFormatter, offset: f64, unit: URelativeDateTimeUnit, result: *mut UFormattedRelativeDateTime, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ureldatefmt_formatToResult(reldatefmt: *const URelativeDateTimeFormatter, offset: f64, unit: URelativeDateTimeUnit, result: *mut UFormattedRelativeDateTime, status: *mut UErrorCode);
        }
        ureldatefmt_formatToResult(::core::mem::transmute(reldatefmt), ::core::mem::transmute(offset), ::core::mem::transmute(unit), ::core::mem::transmute(result), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ureldatefmt_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(locale: Param0, nftoadopt: *mut *mut ::core::ffi::c_void, width: UDateRelativeDateTimeFormatterStyle, capitalizationcontext: UDisplayContext, status: *mut UErrorCode) -> *mut URelativeDateTimeFormatter {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ureldatefmt_open(locale: ::windows::core::PCSTR, nftoadopt: *mut *mut ::core::ffi::c_void, width: UDateRelativeDateTimeFormatterStyle, capitalizationcontext: UDisplayContext, status: *mut UErrorCode) -> *mut URelativeDateTimeFormatter;
        }
        ::core::mem::transmute(ureldatefmt_open(locale.into_param().abi(), ::core::mem::transmute(nftoadopt), ::core::mem::transmute(width), ::core::mem::transmute(capitalizationcontext), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ureldatefmt_openResult(ec: *mut UErrorCode) -> *mut UFormattedRelativeDateTime {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ureldatefmt_openResult(ec: *mut UErrorCode) -> *mut UFormattedRelativeDateTime;
        }
        ::core::mem::transmute(ureldatefmt_openResult(::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ureldatefmt_resultAsValue(ufrdt: *const UFormattedRelativeDateTime, ec: *mut UErrorCode) -> *mut UFormattedValue {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ureldatefmt_resultAsValue(ufrdt: *const UFormattedRelativeDateTime, ec: *mut UErrorCode) -> *mut UFormattedValue;
        }
        ::core::mem::transmute(ureldatefmt_resultAsValue(::core::mem::transmute(ufrdt), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_close(resourcebundle: *mut UResourceBundle) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_close(resourcebundle: *mut UResourceBundle);
        }
        ures_close(::core::mem::transmute(resourcebundle))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getBinary(resourcebundle: *const UResourceBundle, len: *mut i32, status: *mut UErrorCode) -> *mut u8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getBinary(resourcebundle: *const UResourceBundle, len: *mut i32, status: *mut UErrorCode) -> *mut u8;
        }
        ::core::mem::transmute(ures_getBinary(::core::mem::transmute(resourcebundle), ::core::mem::transmute(len), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getByIndex(resourcebundle: *const UResourceBundle, indexr: i32, fillin: *mut UResourceBundle, status: *mut UErrorCode) -> *mut UResourceBundle {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getByIndex(resourcebundle: *const UResourceBundle, indexr: i32, fillin: *mut UResourceBundle, status: *mut UErrorCode) -> *mut UResourceBundle;
        }
        ::core::mem::transmute(ures_getByIndex(::core::mem::transmute(resourcebundle), ::core::mem::transmute(indexr), ::core::mem::transmute(fillin), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getByKey<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(resourcebundle: *const UResourceBundle, key: Param1, fillin: *mut UResourceBundle, status: *mut UErrorCode) -> *mut UResourceBundle {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getByKey(resourcebundle: *const UResourceBundle, key: ::windows::core::PCSTR, fillin: *mut UResourceBundle, status: *mut UErrorCode) -> *mut UResourceBundle;
        }
        ::core::mem::transmute(ures_getByKey(::core::mem::transmute(resourcebundle), key.into_param().abi(), ::core::mem::transmute(fillin), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getInt(resourcebundle: *const UResourceBundle, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getInt(resourcebundle: *const UResourceBundle, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(ures_getInt(::core::mem::transmute(resourcebundle), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getIntVector(resourcebundle: *const UResourceBundle, len: *mut i32, status: *mut UErrorCode) -> *mut i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getIntVector(resourcebundle: *const UResourceBundle, len: *mut i32, status: *mut UErrorCode) -> *mut i32;
        }
        ::core::mem::transmute(ures_getIntVector(::core::mem::transmute(resourcebundle), ::core::mem::transmute(len), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getKey(resourcebundle: *const UResourceBundle) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getKey(resourcebundle: *const UResourceBundle) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ures_getKey(::core::mem::transmute(resourcebundle)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getLocaleByType(resourcebundle: *const UResourceBundle, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getLocaleByType(resourcebundle: *const UResourceBundle, r#type: ULocDataLocaleType, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ures_getLocaleByType(::core::mem::transmute(resourcebundle), ::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getNextResource(resourcebundle: *mut UResourceBundle, fillin: *mut UResourceBundle, status: *mut UErrorCode) -> *mut UResourceBundle {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getNextResource(resourcebundle: *mut UResourceBundle, fillin: *mut UResourceBundle, status: *mut UErrorCode) -> *mut UResourceBundle;
        }
        ::core::mem::transmute(ures_getNextResource(::core::mem::transmute(resourcebundle), ::core::mem::transmute(fillin), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getNextString(resourcebundle: *mut UResourceBundle, len: *mut i32, key: *const *const i8, status: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getNextString(resourcebundle: *mut UResourceBundle, len: *mut i32, key: *const *const i8, status: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(ures_getNextString(::core::mem::transmute(resourcebundle), ::core::mem::transmute(len), ::core::mem::transmute(key), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getSize(resourcebundle: *const UResourceBundle) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getSize(resourcebundle: *const UResourceBundle) -> i32;
        }
        ::core::mem::transmute(ures_getSize(::core::mem::transmute(resourcebundle)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getString(resourcebundle: *const UResourceBundle, len: *mut i32, status: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getString(resourcebundle: *const UResourceBundle, len: *mut i32, status: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(ures_getString(::core::mem::transmute(resourcebundle), ::core::mem::transmute(len), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getStringByIndex(resourcebundle: *const UResourceBundle, indexs: i32, len: *mut i32, status: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getStringByIndex(resourcebundle: *const UResourceBundle, indexs: i32, len: *mut i32, status: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(ures_getStringByIndex(::core::mem::transmute(resourcebundle), ::core::mem::transmute(indexs), ::core::mem::transmute(len), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getStringByKey<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(resb: *const UResourceBundle, key: Param1, len: *mut i32, status: *mut UErrorCode) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getStringByKey(resb: *const UResourceBundle, key: ::windows::core::PCSTR, len: *mut i32, status: *mut UErrorCode) -> *mut u16;
        }
        ::core::mem::transmute(ures_getStringByKey(::core::mem::transmute(resb), key.into_param().abi(), ::core::mem::transmute(len), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getType(resourcebundle: *const UResourceBundle) -> UResType {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getType(resourcebundle: *const UResourceBundle) -> UResType;
        }
        ::core::mem::transmute(ures_getType(::core::mem::transmute(resourcebundle)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getUInt(resourcebundle: *const UResourceBundle, status: *mut UErrorCode) -> u32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getUInt(resourcebundle: *const UResourceBundle, status: *mut UErrorCode) -> u32;
        }
        ::core::mem::transmute(ures_getUInt(::core::mem::transmute(resourcebundle), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getUTF8String<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(resb: *const UResourceBundle, dest: Param1, length: *mut i32, forcecopy: i8, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getUTF8String(resb: *const UResourceBundle, dest: ::windows::core::PCSTR, length: *mut i32, forcecopy: i8, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ures_getUTF8String(::core::mem::transmute(resb), dest.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(forcecopy), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getUTF8StringByIndex<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(resb: *const UResourceBundle, stringindex: i32, dest: Param2, plength: *mut i32, forcecopy: i8, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getUTF8StringByIndex(resb: *const UResourceBundle, stringindex: i32, dest: ::windows::core::PCSTR, plength: *mut i32, forcecopy: i8, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ures_getUTF8StringByIndex(::core::mem::transmute(resb), ::core::mem::transmute(stringindex), dest.into_param().abi(), ::core::mem::transmute(plength), ::core::mem::transmute(forcecopy), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getUTF8StringByKey<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(resb: *const UResourceBundle, key: Param1, dest: Param2, plength: *mut i32, forcecopy: i8, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getUTF8StringByKey(resb: *const UResourceBundle, key: ::windows::core::PCSTR, dest: ::windows::core::PCSTR, plength: *mut i32, forcecopy: i8, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(ures_getUTF8StringByKey(::core::mem::transmute(resb), key.into_param().abi(), dest.into_param().abi(), ::core::mem::transmute(plength), ::core::mem::transmute(forcecopy), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_getVersion(resb: *const UResourceBundle, versioninfo: *mut u8) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_getVersion(resb: *const UResourceBundle, versioninfo: *mut u8);
        }
        ures_getVersion(::core::mem::transmute(resb), ::core::mem::transmute(versioninfo))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_hasNext(resourcebundle: *const UResourceBundle) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_hasNext(resourcebundle: *const UResourceBundle) -> i8;
        }
        ::core::mem::transmute(ures_hasNext(::core::mem::transmute(resourcebundle)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(packagename: Param0, locale: Param1, status: *mut UErrorCode) -> *mut UResourceBundle {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_open(packagename: ::windows::core::PCSTR, locale: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UResourceBundle;
        }
        ::core::mem::transmute(ures_open(packagename.into_param().abi(), locale.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_openAvailableLocales<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(packagename: Param0, status: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_openAvailableLocales(packagename: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(ures_openAvailableLocales(packagename.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_openDirect<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(packagename: Param0, locale: Param1, status: *mut UErrorCode) -> *mut UResourceBundle {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_openDirect(packagename: ::windows::core::PCSTR, locale: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UResourceBundle;
        }
        ::core::mem::transmute(ures_openDirect(packagename.into_param().abi(), locale.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_openU<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(packagename: *const u16, locale: Param1, status: *mut UErrorCode) -> *mut UResourceBundle {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_openU(packagename: *const u16, locale: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UResourceBundle;
        }
        ::core::mem::transmute(ures_openU(::core::mem::transmute(packagename), locale.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn ures_resetIterator(resourcebundle: *mut UResourceBundle) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn ures_resetIterator(resourcebundle: *mut UResourceBundle);
        }
        ures_resetIterator(::core::mem::transmute(resourcebundle))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_breaksBetweenLetters(script: UScriptCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_breaksBetweenLetters(script: UScriptCode) -> i8;
        }
        ::core::mem::transmute(uscript_breaksBetweenLetters(::core::mem::transmute(script)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_getCode<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(nameorabbrorlocale: Param0, fillin: *mut UScriptCode, capacity: i32, err: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_getCode(nameorabbrorlocale: ::windows::core::PCSTR, fillin: *mut UScriptCode, capacity: i32, err: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uscript_getCode(nameorabbrorlocale.into_param().abi(), ::core::mem::transmute(fillin), ::core::mem::transmute(capacity), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_getName(scriptcode: UScriptCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_getName(scriptcode: UScriptCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uscript_getName(::core::mem::transmute(scriptcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_getSampleString(script: UScriptCode, dest: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_getSampleString(script: UScriptCode, dest: *mut u16, capacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uscript_getSampleString(::core::mem::transmute(script), ::core::mem::transmute(dest), ::core::mem::transmute(capacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_getScript(codepoint: i32, err: *mut UErrorCode) -> UScriptCode {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_getScript(codepoint: i32, err: *mut UErrorCode) -> UScriptCode;
        }
        ::core::mem::transmute(uscript_getScript(::core::mem::transmute(codepoint), ::core::mem::transmute(err)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_getScriptExtensions(c: i32, scripts: *mut UScriptCode, capacity: i32, errorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_getScriptExtensions(c: i32, scripts: *mut UScriptCode, capacity: i32, errorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uscript_getScriptExtensions(::core::mem::transmute(c), ::core::mem::transmute(scripts), ::core::mem::transmute(capacity), ::core::mem::transmute(errorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_getShortName(scriptcode: UScriptCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_getShortName(scriptcode: UScriptCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uscript_getShortName(::core::mem::transmute(scriptcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_getUsage(script: UScriptCode) -> UScriptUsage {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_getUsage(script: UScriptCode) -> UScriptUsage;
        }
        ::core::mem::transmute(uscript_getUsage(::core::mem::transmute(script)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_hasScript(c: i32, sc: UScriptCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_hasScript(c: i32, sc: UScriptCode) -> i8;
        }
        ::core::mem::transmute(uscript_hasScript(::core::mem::transmute(c), ::core::mem::transmute(sc)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_isCased(script: UScriptCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_isCased(script: UScriptCode) -> i8;
        }
        ::core::mem::transmute(uscript_isCased(::core::mem::transmute(script)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uscript_isRightToLeft(script: UScriptCode) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uscript_isRightToLeft(script: UScriptCode) -> i8;
        }
        ::core::mem::transmute(uscript_isRightToLeft(::core::mem::transmute(script)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_close(searchiter: *mut UStringSearch) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_close(searchiter: *mut UStringSearch);
        }
        usearch_close(::core::mem::transmute(searchiter))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_first(strsrch: *mut UStringSearch, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_first(strsrch: *mut UStringSearch, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(usearch_first(::core::mem::transmute(strsrch), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_following(strsrch: *mut UStringSearch, position: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_following(strsrch: *mut UStringSearch, position: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(usearch_following(::core::mem::transmute(strsrch), ::core::mem::transmute(position), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_getAttribute(strsrch: *const UStringSearch, attribute: USearchAttribute) -> USearchAttributeValue {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_getAttribute(strsrch: *const UStringSearch, attribute: USearchAttribute) -> USearchAttributeValue;
        }
        ::core::mem::transmute(usearch_getAttribute(::core::mem::transmute(strsrch), ::core::mem::transmute(attribute)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_getBreakIterator(strsrch: *const UStringSearch) -> *mut UBreakIterator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_getBreakIterator(strsrch: *const UStringSearch) -> *mut UBreakIterator;
        }
        ::core::mem::transmute(usearch_getBreakIterator(::core::mem::transmute(strsrch)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_getCollator(strsrch: *const UStringSearch) -> *mut UCollator {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_getCollator(strsrch: *const UStringSearch) -> *mut UCollator;
        }
        ::core::mem::transmute(usearch_getCollator(::core::mem::transmute(strsrch)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_getMatchedLength(strsrch: *const UStringSearch) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_getMatchedLength(strsrch: *const UStringSearch) -> i32;
        }
        ::core::mem::transmute(usearch_getMatchedLength(::core::mem::transmute(strsrch)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_getMatchedStart(strsrch: *const UStringSearch) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_getMatchedStart(strsrch: *const UStringSearch) -> i32;
        }
        ::core::mem::transmute(usearch_getMatchedStart(::core::mem::transmute(strsrch)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_getMatchedText(strsrch: *const UStringSearch, result: *mut u16, resultcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_getMatchedText(strsrch: *const UStringSearch, result: *mut u16, resultcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(usearch_getMatchedText(::core::mem::transmute(strsrch), ::core::mem::transmute(result), ::core::mem::transmute(resultcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_getOffset(strsrch: *const UStringSearch) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_getOffset(strsrch: *const UStringSearch) -> i32;
        }
        ::core::mem::transmute(usearch_getOffset(::core::mem::transmute(strsrch)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_getPattern(strsrch: *const UStringSearch, length: *mut i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_getPattern(strsrch: *const UStringSearch, length: *mut i32) -> *mut u16;
        }
        ::core::mem::transmute(usearch_getPattern(::core::mem::transmute(strsrch), ::core::mem::transmute(length)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_getText(strsrch: *const UStringSearch, length: *mut i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_getText(strsrch: *const UStringSearch, length: *mut i32) -> *mut u16;
        }
        ::core::mem::transmute(usearch_getText(::core::mem::transmute(strsrch), ::core::mem::transmute(length)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_last(strsrch: *mut UStringSearch, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_last(strsrch: *mut UStringSearch, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(usearch_last(::core::mem::transmute(strsrch), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_next(strsrch: *mut UStringSearch, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_next(strsrch: *mut UStringSearch, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(usearch_next(::core::mem::transmute(strsrch), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_open<'a, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(pattern: *const u16, patternlength: i32, text: *const u16, textlength: i32, locale: Param4, breakiter: *mut UBreakIterator, status: *mut UErrorCode) -> *mut UStringSearch {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_open(pattern: *const u16, patternlength: i32, text: *const u16, textlength: i32, locale: ::windows::core::PCSTR, breakiter: *mut UBreakIterator, status: *mut UErrorCode) -> *mut UStringSearch;
        }
        ::core::mem::transmute(usearch_open(::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(text), ::core::mem::transmute(textlength), locale.into_param().abi(), ::core::mem::transmute(breakiter), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_openFromCollator(pattern: *const u16, patternlength: i32, text: *const u16, textlength: i32, collator: *const UCollator, breakiter: *mut UBreakIterator, status: *mut UErrorCode) -> *mut UStringSearch {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_openFromCollator(pattern: *const u16, patternlength: i32, text: *const u16, textlength: i32, collator: *const UCollator, breakiter: *mut UBreakIterator, status: *mut UErrorCode) -> *mut UStringSearch;
        }
        ::core::mem::transmute(usearch_openFromCollator(::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(collator), ::core::mem::transmute(breakiter), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_preceding(strsrch: *mut UStringSearch, position: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_preceding(strsrch: *mut UStringSearch, position: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(usearch_preceding(::core::mem::transmute(strsrch), ::core::mem::transmute(position), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_previous(strsrch: *mut UStringSearch, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_previous(strsrch: *mut UStringSearch, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(usearch_previous(::core::mem::transmute(strsrch), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_reset(strsrch: *mut UStringSearch) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_reset(strsrch: *mut UStringSearch);
        }
        usearch_reset(::core::mem::transmute(strsrch))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_setAttribute(strsrch: *mut UStringSearch, attribute: USearchAttribute, value: USearchAttributeValue, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_setAttribute(strsrch: *mut UStringSearch, attribute: USearchAttribute, value: USearchAttributeValue, status: *mut UErrorCode);
        }
        usearch_setAttribute(::core::mem::transmute(strsrch), ::core::mem::transmute(attribute), ::core::mem::transmute(value), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_setBreakIterator(strsrch: *mut UStringSearch, breakiter: *mut UBreakIterator, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_setBreakIterator(strsrch: *mut UStringSearch, breakiter: *mut UBreakIterator, status: *mut UErrorCode);
        }
        usearch_setBreakIterator(::core::mem::transmute(strsrch), ::core::mem::transmute(breakiter), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_setCollator(strsrch: *mut UStringSearch, collator: *const UCollator, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_setCollator(strsrch: *mut UStringSearch, collator: *const UCollator, status: *mut UErrorCode);
        }
        usearch_setCollator(::core::mem::transmute(strsrch), ::core::mem::transmute(collator), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_setOffset(strsrch: *mut UStringSearch, position: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_setOffset(strsrch: *mut UStringSearch, position: i32, status: *mut UErrorCode);
        }
        usearch_setOffset(::core::mem::transmute(strsrch), ::core::mem::transmute(position), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_setPattern(strsrch: *mut UStringSearch, pattern: *const u16, patternlength: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_setPattern(strsrch: *mut UStringSearch, pattern: *const u16, patternlength: i32, status: *mut UErrorCode);
        }
        usearch_setPattern(::core::mem::transmute(strsrch), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usearch_setText(strsrch: *mut UStringSearch, text: *const u16, textlength: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usearch_setText(strsrch: *mut UStringSearch, text: *const u16, textlength: i32, status: *mut UErrorCode);
        }
        usearch_setText(::core::mem::transmute(strsrch), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_add(set: *mut USet, c: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_add(set: *mut USet, c: i32);
        }
        uset_add(::core::mem::transmute(set), ::core::mem::transmute(c))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_addAll(set: *mut USet, additionalset: *const USet) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_addAll(set: *mut USet, additionalset: *const USet);
        }
        uset_addAll(::core::mem::transmute(set), ::core::mem::transmute(additionalset))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_addAllCodePoints(set: *mut USet, str: *const u16, strlen: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_addAllCodePoints(set: *mut USet, str: *const u16, strlen: i32);
        }
        uset_addAllCodePoints(::core::mem::transmute(set), ::core::mem::transmute(str), ::core::mem::transmute(strlen))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_addRange(set: *mut USet, start: i32, end: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_addRange(set: *mut USet, start: i32, end: i32);
        }
        uset_addRange(::core::mem::transmute(set), ::core::mem::transmute(start), ::core::mem::transmute(end))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_addString(set: *mut USet, str: *const u16, strlen: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_addString(set: *mut USet, str: *const u16, strlen: i32);
        }
        uset_addString(::core::mem::transmute(set), ::core::mem::transmute(str), ::core::mem::transmute(strlen))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_applyIntPropertyValue(set: *mut USet, prop: UProperty, value: i32, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_applyIntPropertyValue(set: *mut USet, prop: UProperty, value: i32, ec: *mut UErrorCode);
        }
        uset_applyIntPropertyValue(::core::mem::transmute(set), ::core::mem::transmute(prop), ::core::mem::transmute(value), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_applyPattern(set: *mut USet, pattern: *const u16, patternlength: i32, options: u32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_applyPattern(set: *mut USet, pattern: *const u16, patternlength: i32, options: u32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uset_applyPattern(::core::mem::transmute(set), ::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(options), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_applyPropertyAlias(set: *mut USet, prop: *const u16, proplength: i32, value: *const u16, valuelength: i32, ec: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_applyPropertyAlias(set: *mut USet, prop: *const u16, proplength: i32, value: *const u16, valuelength: i32, ec: *mut UErrorCode);
        }
        uset_applyPropertyAlias(::core::mem::transmute(set), ::core::mem::transmute(prop), ::core::mem::transmute(proplength), ::core::mem::transmute(value), ::core::mem::transmute(valuelength), ::core::mem::transmute(ec))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_charAt(set: *const USet, charindex: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_charAt(set: *const USet, charindex: i32) -> i32;
        }
        ::core::mem::transmute(uset_charAt(::core::mem::transmute(set), ::core::mem::transmute(charindex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_clear(set: *mut USet) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_clear(set: *mut USet);
        }
        uset_clear(::core::mem::transmute(set))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_clone(set: *const USet) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_clone(set: *const USet) -> *mut USet;
        }
        ::core::mem::transmute(uset_clone(::core::mem::transmute(set)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_cloneAsThawed(set: *const USet) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_cloneAsThawed(set: *const USet) -> *mut USet;
        }
        ::core::mem::transmute(uset_cloneAsThawed(::core::mem::transmute(set)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_close(set: *mut USet) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_close(set: *mut USet);
        }
        uset_close(::core::mem::transmute(set))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_closeOver(set: *mut USet, attributes: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_closeOver(set: *mut USet, attributes: i32);
        }
        uset_closeOver(::core::mem::transmute(set), ::core::mem::transmute(attributes))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_compact(set: *mut USet) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_compact(set: *mut USet);
        }
        uset_compact(::core::mem::transmute(set))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_complement(set: *mut USet) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_complement(set: *mut USet);
        }
        uset_complement(::core::mem::transmute(set))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_complementAll(set: *mut USet, complement: *const USet) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_complementAll(set: *mut USet, complement: *const USet);
        }
        uset_complementAll(::core::mem::transmute(set), ::core::mem::transmute(complement))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_contains(set: *const USet, c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_contains(set: *const USet, c: i32) -> i8;
        }
        ::core::mem::transmute(uset_contains(::core::mem::transmute(set), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_containsAll(set1: *const USet, set2: *const USet) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_containsAll(set1: *const USet, set2: *const USet) -> i8;
        }
        ::core::mem::transmute(uset_containsAll(::core::mem::transmute(set1), ::core::mem::transmute(set2)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_containsAllCodePoints(set: *const USet, str: *const u16, strlen: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_containsAllCodePoints(set: *const USet, str: *const u16, strlen: i32) -> i8;
        }
        ::core::mem::transmute(uset_containsAllCodePoints(::core::mem::transmute(set), ::core::mem::transmute(str), ::core::mem::transmute(strlen)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_containsNone(set1: *const USet, set2: *const USet) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_containsNone(set1: *const USet, set2: *const USet) -> i8;
        }
        ::core::mem::transmute(uset_containsNone(::core::mem::transmute(set1), ::core::mem::transmute(set2)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_containsRange(set: *const USet, start: i32, end: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_containsRange(set: *const USet, start: i32, end: i32) -> i8;
        }
        ::core::mem::transmute(uset_containsRange(::core::mem::transmute(set), ::core::mem::transmute(start), ::core::mem::transmute(end)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_containsSome(set1: *const USet, set2: *const USet) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_containsSome(set1: *const USet, set2: *const USet) -> i8;
        }
        ::core::mem::transmute(uset_containsSome(::core::mem::transmute(set1), ::core::mem::transmute(set2)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_containsString(set: *const USet, str: *const u16, strlen: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_containsString(set: *const USet, str: *const u16, strlen: i32) -> i8;
        }
        ::core::mem::transmute(uset_containsString(::core::mem::transmute(set), ::core::mem::transmute(str), ::core::mem::transmute(strlen)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_equals(set1: *const USet, set2: *const USet) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_equals(set1: *const USet, set2: *const USet) -> i8;
        }
        ::core::mem::transmute(uset_equals(::core::mem::transmute(set1), ::core::mem::transmute(set2)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_freeze(set: *mut USet) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_freeze(set: *mut USet);
        }
        uset_freeze(::core::mem::transmute(set))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_getItem(set: *const USet, itemindex: i32, start: *mut i32, end: *mut i32, str: *mut u16, strcapacity: i32, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_getItem(set: *const USet, itemindex: i32, start: *mut i32, end: *mut i32, str: *mut u16, strcapacity: i32, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uset_getItem(::core::mem::transmute(set), ::core::mem::transmute(itemindex), ::core::mem::transmute(start), ::core::mem::transmute(end), ::core::mem::transmute(str), ::core::mem::transmute(strcapacity), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_getItemCount(set: *const USet) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_getItemCount(set: *const USet) -> i32;
        }
        ::core::mem::transmute(uset_getItemCount(::core::mem::transmute(set)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_getSerializedRange(set: *const USerializedSet, rangeindex: i32, pstart: *mut i32, pend: *mut i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_getSerializedRange(set: *const USerializedSet, rangeindex: i32, pstart: *mut i32, pend: *mut i32) -> i8;
        }
        ::core::mem::transmute(uset_getSerializedRange(::core::mem::transmute(set), ::core::mem::transmute(rangeindex), ::core::mem::transmute(pstart), ::core::mem::transmute(pend)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_getSerializedRangeCount(set: *const USerializedSet) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_getSerializedRangeCount(set: *const USerializedSet) -> i32;
        }
        ::core::mem::transmute(uset_getSerializedRangeCount(::core::mem::transmute(set)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_getSerializedSet(fillset: *mut USerializedSet, src: *const u16, srclength: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_getSerializedSet(fillset: *mut USerializedSet, src: *const u16, srclength: i32) -> i8;
        }
        ::core::mem::transmute(uset_getSerializedSet(::core::mem::transmute(fillset), ::core::mem::transmute(src), ::core::mem::transmute(srclength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_indexOf(set: *const USet, c: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_indexOf(set: *const USet, c: i32) -> i32;
        }
        ::core::mem::transmute(uset_indexOf(::core::mem::transmute(set), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_isEmpty(set: *const USet) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_isEmpty(set: *const USet) -> i8;
        }
        ::core::mem::transmute(uset_isEmpty(::core::mem::transmute(set)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_isFrozen(set: *const USet) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_isFrozen(set: *const USet) -> i8;
        }
        ::core::mem::transmute(uset_isFrozen(::core::mem::transmute(set)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_open(start: i32, end: i32) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_open(start: i32, end: i32) -> *mut USet;
        }
        ::core::mem::transmute(uset_open(::core::mem::transmute(start), ::core::mem::transmute(end)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_openEmpty() -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_openEmpty() -> *mut USet;
        }
        ::core::mem::transmute(uset_openEmpty())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_openPattern(pattern: *const u16, patternlength: i32, ec: *mut UErrorCode) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_openPattern(pattern: *const u16, patternlength: i32, ec: *mut UErrorCode) -> *mut USet;
        }
        ::core::mem::transmute(uset_openPattern(::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_openPatternOptions(pattern: *const u16, patternlength: i32, options: u32, ec: *mut UErrorCode) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_openPatternOptions(pattern: *const u16, patternlength: i32, options: u32, ec: *mut UErrorCode) -> *mut USet;
        }
        ::core::mem::transmute(uset_openPatternOptions(::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(options), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_remove(set: *mut USet, c: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_remove(set: *mut USet, c: i32);
        }
        uset_remove(::core::mem::transmute(set), ::core::mem::transmute(c))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_removeAll(set: *mut USet, removeset: *const USet) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_removeAll(set: *mut USet, removeset: *const USet);
        }
        uset_removeAll(::core::mem::transmute(set), ::core::mem::transmute(removeset))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_removeAllStrings(set: *mut USet) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_removeAllStrings(set: *mut USet);
        }
        uset_removeAllStrings(::core::mem::transmute(set))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_removeRange(set: *mut USet, start: i32, end: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_removeRange(set: *mut USet, start: i32, end: i32);
        }
        uset_removeRange(::core::mem::transmute(set), ::core::mem::transmute(start), ::core::mem::transmute(end))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_removeString(set: *mut USet, str: *const u16, strlen: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_removeString(set: *mut USet, str: *const u16, strlen: i32);
        }
        uset_removeString(::core::mem::transmute(set), ::core::mem::transmute(str), ::core::mem::transmute(strlen))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_resemblesPattern(pattern: *const u16, patternlength: i32, pos: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_resemblesPattern(pattern: *const u16, patternlength: i32, pos: i32) -> i8;
        }
        ::core::mem::transmute(uset_resemblesPattern(::core::mem::transmute(pattern), ::core::mem::transmute(patternlength), ::core::mem::transmute(pos)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_retain(set: *mut USet, start: i32, end: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_retain(set: *mut USet, start: i32, end: i32);
        }
        uset_retain(::core::mem::transmute(set), ::core::mem::transmute(start), ::core::mem::transmute(end))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_retainAll(set: *mut USet, retain: *const USet) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_retainAll(set: *mut USet, retain: *const USet);
        }
        uset_retainAll(::core::mem::transmute(set), ::core::mem::transmute(retain))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_serialize(set: *const USet, dest: *mut u16, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_serialize(set: *const USet, dest: *mut u16, destcapacity: i32, perrorcode: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uset_serialize(::core::mem::transmute(set), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_serializedContains(set: *const USerializedSet, c: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_serializedContains(set: *const USerializedSet, c: i32) -> i8;
        }
        ::core::mem::transmute(uset_serializedContains(::core::mem::transmute(set), ::core::mem::transmute(c)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_set(set: *mut USet, start: i32, end: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_set(set: *mut USet, start: i32, end: i32);
        }
        uset_set(::core::mem::transmute(set), ::core::mem::transmute(start), ::core::mem::transmute(end))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_setSerializedToOne(fillset: *mut USerializedSet, c: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_setSerializedToOne(fillset: *mut USerializedSet, c: i32);
        }
        uset_setSerializedToOne(::core::mem::transmute(fillset), ::core::mem::transmute(c))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_size(set: *const USet) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_size(set: *const USet) -> i32;
        }
        ::core::mem::transmute(uset_size(::core::mem::transmute(set)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_span(set: *const USet, s: *const u16, length: i32, spancondition: USetSpanCondition) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_span(set: *const USet, s: *const u16, length: i32, spancondition: USetSpanCondition) -> i32;
        }
        ::core::mem::transmute(uset_span(::core::mem::transmute(set), ::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(spancondition)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_spanBack(set: *const USet, s: *const u16, length: i32, spancondition: USetSpanCondition) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_spanBack(set: *const USet, s: *const u16, length: i32, spancondition: USetSpanCondition) -> i32;
        }
        ::core::mem::transmute(uset_spanBack(::core::mem::transmute(set), ::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(spancondition)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_spanBackUTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(set: *const USet, s: Param1, length: i32, spancondition: USetSpanCondition) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_spanBackUTF8(set: *const USet, s: ::windows::core::PCSTR, length: i32, spancondition: USetSpanCondition) -> i32;
        }
        ::core::mem::transmute(uset_spanBackUTF8(::core::mem::transmute(set), s.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(spancondition)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_spanUTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(set: *const USet, s: Param1, length: i32, spancondition: USetSpanCondition) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_spanUTF8(set: *const USet, s: ::windows::core::PCSTR, length: i32, spancondition: USetSpanCondition) -> i32;
        }
        ::core::mem::transmute(uset_spanUTF8(::core::mem::transmute(set), s.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(spancondition)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uset_toPattern(set: *const USet, result: *mut u16, resultcapacity: i32, escapeunprintable: i8, ec: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uset_toPattern(set: *const USet, result: *mut u16, resultcapacity: i32, escapeunprintable: i8, ec: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uset_toPattern(::core::mem::transmute(set), ::core::mem::transmute(result), ::core::mem::transmute(resultcapacity), ::core::mem::transmute(escapeunprintable), ::core::mem::transmute(ec)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_areConfusable(sc: *const USpoofChecker, id1: *const u16, length1: i32, id2: *const u16, length2: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_areConfusable(sc: *const USpoofChecker, id1: *const u16, length1: i32, id2: *const u16, length2: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_areConfusable(::core::mem::transmute(sc), ::core::mem::transmute(id1), ::core::mem::transmute(length1), ::core::mem::transmute(id2), ::core::mem::transmute(length2), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_areConfusableUTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(sc: *const USpoofChecker, id1: Param1, length1: i32, id2: Param3, length2: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_areConfusableUTF8(sc: *const USpoofChecker, id1: ::windows::core::PCSTR, length1: i32, id2: ::windows::core::PCSTR, length2: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_areConfusableUTF8(::core::mem::transmute(sc), id1.into_param().abi(), ::core::mem::transmute(length1), id2.into_param().abi(), ::core::mem::transmute(length2), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_check(sc: *const USpoofChecker, id: *const u16, length: i32, position: *mut i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_check(sc: *const USpoofChecker, id: *const u16, length: i32, position: *mut i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_check(::core::mem::transmute(sc), ::core::mem::transmute(id), ::core::mem::transmute(length), ::core::mem::transmute(position), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_check2(sc: *const USpoofChecker, id: *const u16, length: i32, checkresult: *mut USpoofCheckResult, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_check2(sc: *const USpoofChecker, id: *const u16, length: i32, checkresult: *mut USpoofCheckResult, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_check2(::core::mem::transmute(sc), ::core::mem::transmute(id), ::core::mem::transmute(length), ::core::mem::transmute(checkresult), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_check2UTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(sc: *const USpoofChecker, id: Param1, length: i32, checkresult: *mut USpoofCheckResult, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_check2UTF8(sc: *const USpoofChecker, id: ::windows::core::PCSTR, length: i32, checkresult: *mut USpoofCheckResult, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_check2UTF8(::core::mem::transmute(sc), id.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(checkresult), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_checkUTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(sc: *const USpoofChecker, id: Param1, length: i32, position: *mut i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_checkUTF8(sc: *const USpoofChecker, id: ::windows::core::PCSTR, length: i32, position: *mut i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_checkUTF8(::core::mem::transmute(sc), id.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(position), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_clone(sc: *const USpoofChecker, status: *mut UErrorCode) -> *mut USpoofChecker {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_clone(sc: *const USpoofChecker, status: *mut UErrorCode) -> *mut USpoofChecker;
        }
        ::core::mem::transmute(uspoof_clone(::core::mem::transmute(sc), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_close(sc: *mut USpoofChecker) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_close(sc: *mut USpoofChecker);
        }
        uspoof_close(::core::mem::transmute(sc))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_closeCheckResult(checkresult: *mut USpoofCheckResult) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_closeCheckResult(checkresult: *mut USpoofCheckResult);
        }
        uspoof_closeCheckResult(::core::mem::transmute(checkresult))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getAllowedChars(sc: *const USpoofChecker, status: *mut UErrorCode) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getAllowedChars(sc: *const USpoofChecker, status: *mut UErrorCode) -> *mut USet;
        }
        ::core::mem::transmute(uspoof_getAllowedChars(::core::mem::transmute(sc), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getAllowedLocales(sc: *mut USpoofChecker, status: *mut UErrorCode) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getAllowedLocales(sc: *mut USpoofChecker, status: *mut UErrorCode) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(uspoof_getAllowedLocales(::core::mem::transmute(sc), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getCheckResultChecks(checkresult: *const USpoofCheckResult, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getCheckResultChecks(checkresult: *const USpoofCheckResult, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_getCheckResultChecks(::core::mem::transmute(checkresult), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getCheckResultNumerics(checkresult: *const USpoofCheckResult, status: *mut UErrorCode) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getCheckResultNumerics(checkresult: *const USpoofCheckResult, status: *mut UErrorCode) -> *mut USet;
        }
        ::core::mem::transmute(uspoof_getCheckResultNumerics(::core::mem::transmute(checkresult), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getCheckResultRestrictionLevel(checkresult: *const USpoofCheckResult, status: *mut UErrorCode) -> URestrictionLevel {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getCheckResultRestrictionLevel(checkresult: *const USpoofCheckResult, status: *mut UErrorCode) -> URestrictionLevel;
        }
        ::core::mem::transmute(uspoof_getCheckResultRestrictionLevel(::core::mem::transmute(checkresult), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getChecks(sc: *const USpoofChecker, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getChecks(sc: *const USpoofChecker, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_getChecks(::core::mem::transmute(sc), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getInclusionSet(status: *mut UErrorCode) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getInclusionSet(status: *mut UErrorCode) -> *mut USet;
        }
        ::core::mem::transmute(uspoof_getInclusionSet(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getRecommendedSet(status: *mut UErrorCode) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getRecommendedSet(status: *mut UErrorCode) -> *mut USet;
        }
        ::core::mem::transmute(uspoof_getRecommendedSet(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getRestrictionLevel(sc: *const USpoofChecker) -> URestrictionLevel {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getRestrictionLevel(sc: *const USpoofChecker) -> URestrictionLevel;
        }
        ::core::mem::transmute(uspoof_getRestrictionLevel(::core::mem::transmute(sc)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getSkeleton(sc: *const USpoofChecker, r#type: u32, id: *const u16, length: i32, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getSkeleton(sc: *const USpoofChecker, r#type: u32, id: *const u16, length: i32, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_getSkeleton(::core::mem::transmute(sc), ::core::mem::transmute(r#type), ::core::mem::transmute(id), ::core::mem::transmute(length), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_getSkeletonUTF8<'a, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param4: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(sc: *const USpoofChecker, r#type: u32, id: Param2, length: i32, dest: Param4, destcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_getSkeletonUTF8(sc: *const USpoofChecker, r#type: u32, id: ::windows::core::PCSTR, length: i32, dest: ::windows::core::PCSTR, destcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_getSkeletonUTF8(::core::mem::transmute(sc), ::core::mem::transmute(r#type), id.into_param().abi(), ::core::mem::transmute(length), dest.into_param().abi(), ::core::mem::transmute(destcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_open(status: *mut UErrorCode) -> *mut USpoofChecker {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_open(status: *mut UErrorCode) -> *mut USpoofChecker;
        }
        ::core::mem::transmute(uspoof_open(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_openCheckResult(status: *mut UErrorCode) -> *mut USpoofCheckResult {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_openCheckResult(status: *mut UErrorCode) -> *mut USpoofCheckResult;
        }
        ::core::mem::transmute(uspoof_openCheckResult(::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_openFromSerialized(data: *const ::core::ffi::c_void, length: i32, pactuallength: *mut i32, perrorcode: *mut UErrorCode) -> *mut USpoofChecker {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_openFromSerialized(data: *const ::core::ffi::c_void, length: i32, pactuallength: *mut i32, perrorcode: *mut UErrorCode) -> *mut USpoofChecker;
        }
        ::core::mem::transmute(uspoof_openFromSerialized(::core::mem::transmute(data), ::core::mem::transmute(length), ::core::mem::transmute(pactuallength), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_openFromSource<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param2: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(confusables: Param0, confusableslen: i32, confusableswholescript: Param2, confusableswholescriptlen: i32, errtype: *mut i32, pe: *mut UParseError, status: *mut UErrorCode) -> *mut USpoofChecker {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_openFromSource(confusables: ::windows::core::PCSTR, confusableslen: i32, confusableswholescript: ::windows::core::PCSTR, confusableswholescriptlen: i32, errtype: *mut i32, pe: *mut UParseError, status: *mut UErrorCode) -> *mut USpoofChecker;
        }
        ::core::mem::transmute(uspoof_openFromSource(confusables.into_param().abi(), ::core::mem::transmute(confusableslen), confusableswholescript.into_param().abi(), ::core::mem::transmute(confusableswholescriptlen), ::core::mem::transmute(errtype), ::core::mem::transmute(pe), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_serialize(sc: *mut USpoofChecker, data: *mut ::core::ffi::c_void, capacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_serialize(sc: *mut USpoofChecker, data: *mut ::core::ffi::c_void, capacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(uspoof_serialize(::core::mem::transmute(sc), ::core::mem::transmute(data), ::core::mem::transmute(capacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_setAllowedChars(sc: *mut USpoofChecker, chars: *const USet, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_setAllowedChars(sc: *mut USpoofChecker, chars: *const USet, status: *mut UErrorCode);
        }
        uspoof_setAllowedChars(::core::mem::transmute(sc), ::core::mem::transmute(chars), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_setAllowedLocales<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(sc: *mut USpoofChecker, localeslist: Param1, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_setAllowedLocales(sc: *mut USpoofChecker, localeslist: ::windows::core::PCSTR, status: *mut UErrorCode);
        }
        uspoof_setAllowedLocales(::core::mem::transmute(sc), localeslist.into_param().abi(), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_setChecks(sc: *mut USpoofChecker, checks: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_setChecks(sc: *mut USpoofChecker, checks: i32, status: *mut UErrorCode);
        }
        uspoof_setChecks(::core::mem::transmute(sc), ::core::mem::transmute(checks), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn uspoof_setRestrictionLevel(sc: *mut USpoofChecker, restrictionlevel: URestrictionLevel) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn uspoof_setRestrictionLevel(sc: *mut USpoofChecker, restrictionlevel: URestrictionLevel);
        }
        uspoof_setRestrictionLevel(::core::mem::transmute(sc), ::core::mem::transmute(restrictionlevel))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usprep_close(profile: *mut UStringPrepProfile) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usprep_close(profile: *mut UStringPrepProfile);
        }
        usprep_close(::core::mem::transmute(profile))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usprep_open<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(path: Param0, filename: Param1, status: *mut UErrorCode) -> *mut UStringPrepProfile {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usprep_open(path: ::windows::core::PCSTR, filename: ::windows::core::PCSTR, status: *mut UErrorCode) -> *mut UStringPrepProfile;
        }
        ::core::mem::transmute(usprep_open(path.into_param().abi(), filename.into_param().abi(), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usprep_openByType(r#type: UStringPrepProfileType, status: *mut UErrorCode) -> *mut UStringPrepProfile {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usprep_openByType(r#type: UStringPrepProfileType, status: *mut UErrorCode) -> *mut UStringPrepProfile;
        }
        ::core::mem::transmute(usprep_openByType(::core::mem::transmute(r#type), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn usprep_prepare(prep: *const UStringPrepProfile, src: *const u16, srclength: i32, dest: *mut u16, destcapacity: i32, options: i32, parseerror: *mut UParseError, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn usprep_prepare(prep: *const UStringPrepProfile, src: *const u16, srclength: i32, dest: *mut u16, destcapacity: i32, options: i32, parseerror: *mut UParseError, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(usprep_prepare(::core::mem::transmute(prep), ::core::mem::transmute(src), ::core::mem::transmute(srclength), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(options), ::core::mem::transmute(parseerror), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_char32At(ut: *mut UText, nativeindex: i64) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_char32At(ut: *mut UText, nativeindex: i64) -> i32;
        }
        ::core::mem::transmute(utext_char32At(::core::mem::transmute(ut), ::core::mem::transmute(nativeindex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_clone(dest: *mut UText, src: *const UText, deep: i8, readonly: i8, status: *mut UErrorCode) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_clone(dest: *mut UText, src: *const UText, deep: i8, readonly: i8, status: *mut UErrorCode) -> *mut UText;
        }
        ::core::mem::transmute(utext_clone(::core::mem::transmute(dest), ::core::mem::transmute(src), ::core::mem::transmute(deep), ::core::mem::transmute(readonly), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_close(ut: *mut UText) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_close(ut: *mut UText) -> *mut UText;
        }
        ::core::mem::transmute(utext_close(::core::mem::transmute(ut)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_copy(ut: *mut UText, nativestart: i64, nativelimit: i64, destindex: i64, r#move: i8, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_copy(ut: *mut UText, nativestart: i64, nativelimit: i64, destindex: i64, r#move: i8, status: *mut UErrorCode);
        }
        utext_copy(::core::mem::transmute(ut), ::core::mem::transmute(nativestart), ::core::mem::transmute(nativelimit), ::core::mem::transmute(destindex), ::core::mem::transmute(r#move), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_current32(ut: *mut UText) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_current32(ut: *mut UText) -> i32;
        }
        ::core::mem::transmute(utext_current32(::core::mem::transmute(ut)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_equals(a: *const UText, b: *const UText) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_equals(a: *const UText, b: *const UText) -> i8;
        }
        ::core::mem::transmute(utext_equals(::core::mem::transmute(a), ::core::mem::transmute(b)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_extract(ut: *mut UText, nativestart: i64, nativelimit: i64, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_extract(ut: *mut UText, nativestart: i64, nativelimit: i64, dest: *mut u16, destcapacity: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(utext_extract(::core::mem::transmute(ut), ::core::mem::transmute(nativestart), ::core::mem::transmute(nativelimit), ::core::mem::transmute(dest), ::core::mem::transmute(destcapacity), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_freeze(ut: *mut UText) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_freeze(ut: *mut UText);
        }
        utext_freeze(::core::mem::transmute(ut))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_getNativeIndex(ut: *const UText) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_getNativeIndex(ut: *const UText) -> i64;
        }
        ::core::mem::transmute(utext_getNativeIndex(::core::mem::transmute(ut)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_getPreviousNativeIndex(ut: *mut UText) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_getPreviousNativeIndex(ut: *mut UText) -> i64;
        }
        ::core::mem::transmute(utext_getPreviousNativeIndex(::core::mem::transmute(ut)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_hasMetaData(ut: *const UText) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_hasMetaData(ut: *const UText) -> i8;
        }
        ::core::mem::transmute(utext_hasMetaData(::core::mem::transmute(ut)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_isLengthExpensive(ut: *const UText) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_isLengthExpensive(ut: *const UText) -> i8;
        }
        ::core::mem::transmute(utext_isLengthExpensive(::core::mem::transmute(ut)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_isWritable(ut: *const UText) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_isWritable(ut: *const UText) -> i8;
        }
        ::core::mem::transmute(utext_isWritable(::core::mem::transmute(ut)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_moveIndex32(ut: *mut UText, delta: i32) -> i8 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_moveIndex32(ut: *mut UText, delta: i32) -> i8;
        }
        ::core::mem::transmute(utext_moveIndex32(::core::mem::transmute(ut), ::core::mem::transmute(delta)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_nativeLength(ut: *mut UText) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_nativeLength(ut: *mut UText) -> i64;
        }
        ::core::mem::transmute(utext_nativeLength(::core::mem::transmute(ut)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_next32(ut: *mut UText) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_next32(ut: *mut UText) -> i32;
        }
        ::core::mem::transmute(utext_next32(::core::mem::transmute(ut)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_next32From(ut: *mut UText, nativeindex: i64) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_next32From(ut: *mut UText, nativeindex: i64) -> i32;
        }
        ::core::mem::transmute(utext_next32From(::core::mem::transmute(ut), ::core::mem::transmute(nativeindex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_openUChars(ut: *mut UText, s: *const u16, length: i64, status: *mut UErrorCode) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_openUChars(ut: *mut UText, s: *const u16, length: i64, status: *mut UErrorCode) -> *mut UText;
        }
        ::core::mem::transmute(utext_openUChars(::core::mem::transmute(ut), ::core::mem::transmute(s), ::core::mem::transmute(length), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_openUTF8<'a, Param1: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(ut: *mut UText, s: Param1, length: i64, status: *mut UErrorCode) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_openUTF8(ut: *mut UText, s: ::windows::core::PCSTR, length: i64, status: *mut UErrorCode) -> *mut UText;
        }
        ::core::mem::transmute(utext_openUTF8(::core::mem::transmute(ut), s.into_param().abi(), ::core::mem::transmute(length), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_previous32(ut: *mut UText) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_previous32(ut: *mut UText) -> i32;
        }
        ::core::mem::transmute(utext_previous32(::core::mem::transmute(ut)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_previous32From(ut: *mut UText, nativeindex: i64) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_previous32From(ut: *mut UText, nativeindex: i64) -> i32;
        }
        ::core::mem::transmute(utext_previous32From(::core::mem::transmute(ut), ::core::mem::transmute(nativeindex)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_replace(ut: *mut UText, nativestart: i64, nativelimit: i64, replacementtext: *const u16, replacementlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_replace(ut: *mut UText, nativestart: i64, nativelimit: i64, replacementtext: *const u16, replacementlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(utext_replace(::core::mem::transmute(ut), ::core::mem::transmute(nativestart), ::core::mem::transmute(nativelimit), ::core::mem::transmute(replacementtext), ::core::mem::transmute(replacementlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_setNativeIndex(ut: *mut UText, nativeindex: i64) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_setNativeIndex(ut: *mut UText, nativeindex: i64);
        }
        utext_setNativeIndex(::core::mem::transmute(ut), ::core::mem::transmute(nativeindex))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utext_setup(ut: *mut UText, extraspace: i32, status: *mut UErrorCode) -> *mut UText {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utext_setup(ut: *mut UText, extraspace: i32, status: *mut UErrorCode) -> *mut UText;
        }
        ::core::mem::transmute(utext_setup(::core::mem::transmute(ut), ::core::mem::transmute(extraspace), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utf8_appendCharSafeBody(s: *mut u8, i: i32, length: i32, c: i32, piserror: *mut i8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utf8_appendCharSafeBody(s: *mut u8, i: i32, length: i32, c: i32, piserror: *mut i8) -> i32;
        }
        ::core::mem::transmute(utf8_appendCharSafeBody(::core::mem::transmute(s), ::core::mem::transmute(i), ::core::mem::transmute(length), ::core::mem::transmute(c), ::core::mem::transmute(piserror)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utf8_back1SafeBody(s: *const u8, start: i32, i: i32) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utf8_back1SafeBody(s: *const u8, start: i32, i: i32) -> i32;
        }
        ::core::mem::transmute(utf8_back1SafeBody(::core::mem::transmute(s), ::core::mem::transmute(start), ::core::mem::transmute(i)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utf8_nextCharSafeBody(s: *const u8, pi: *mut i32, length: i32, c: i32, strict: i8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utf8_nextCharSafeBody(s: *const u8, pi: *mut i32, length: i32, c: i32, strict: i8) -> i32;
        }
        ::core::mem::transmute(utf8_nextCharSafeBody(::core::mem::transmute(s), ::core::mem::transmute(pi), ::core::mem::transmute(length), ::core::mem::transmute(c), ::core::mem::transmute(strict)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utf8_prevCharSafeBody(s: *const u8, start: i32, pi: *mut i32, c: i32, strict: i8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utf8_prevCharSafeBody(s: *const u8, start: i32, pi: *mut i32, c: i32, strict: i8) -> i32;
        }
        ::core::mem::transmute(utf8_prevCharSafeBody(::core::mem::transmute(s), ::core::mem::transmute(start), ::core::mem::transmute(pi), ::core::mem::transmute(c), ::core::mem::transmute(strict)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utmscale_fromInt64(othertime: i64, timescale: UDateTimeScale, status: *mut UErrorCode) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utmscale_fromInt64(othertime: i64, timescale: UDateTimeScale, status: *mut UErrorCode) -> i64;
        }
        ::core::mem::transmute(utmscale_fromInt64(::core::mem::transmute(othertime), ::core::mem::transmute(timescale), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utmscale_getTimeScaleValue(timescale: UDateTimeScale, value: UTimeScaleValue, status: *mut UErrorCode) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utmscale_getTimeScaleValue(timescale: UDateTimeScale, value: UTimeScaleValue, status: *mut UErrorCode) -> i64;
        }
        ::core::mem::transmute(utmscale_getTimeScaleValue(::core::mem::transmute(timescale), ::core::mem::transmute(value), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utmscale_toInt64(universaltime: i64, timescale: UDateTimeScale, status: *mut UErrorCode) -> i64 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utmscale_toInt64(universaltime: i64, timescale: UDateTimeScale, status: *mut UErrorCode) -> i64;
        }
        ::core::mem::transmute(utmscale_toInt64(::core::mem::transmute(universaltime), ::core::mem::transmute(timescale), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrace_format<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(outbuf: Param0, capacity: i32, indent: i32, fmt: Param3) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrace_format(outbuf: ::windows::core::PCSTR, capacity: i32, indent: i32, fmt: ::windows::core::PCSTR) -> i32;
        }
        ::core::mem::transmute(utrace_format(outbuf.into_param().abi(), ::core::mem::transmute(capacity), ::core::mem::transmute(indent), fmt.into_param().abi()))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrace_functionName(fnnumber: i32) -> ::windows::core::PSTR {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrace_functionName(fnnumber: i32) -> ::windows::core::PSTR;
        }
        ::core::mem::transmute(utrace_functionName(::core::mem::transmute(fnnumber)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrace_getFunctions(context: *const *const ::core::ffi::c_void, e: *mut UTraceEntry, x: *mut UTraceExit, d: *mut UTraceData) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrace_getFunctions(context: *const *const ::core::ffi::c_void, e: *mut ::windows::core::RawPtr, x: *mut ::windows::core::RawPtr, d: *mut ::windows::core::RawPtr);
        }
        utrace_getFunctions(::core::mem::transmute(context), ::core::mem::transmute(e), ::core::mem::transmute(x), ::core::mem::transmute(d))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrace_getLevel() -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrace_getLevel() -> i32;
        }
        ::core::mem::transmute(utrace_getLevel())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrace_setFunctions(context: *const ::core::ffi::c_void, e: UTraceEntry, x: UTraceExit, d: UTraceData) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrace_setFunctions(context: *const ::core::ffi::c_void, e: ::windows::core::RawPtr, x: ::windows::core::RawPtr, d: ::windows::core::RawPtr);
        }
        utrace_setFunctions(::core::mem::transmute(context), ::core::mem::transmute(e), ::core::mem::transmute(x), ::core::mem::transmute(d))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrace_setLevel(tracelevel: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrace_setLevel(tracelevel: i32);
        }
        utrace_setLevel(::core::mem::transmute(tracelevel))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrace_vformat<'a, Param0: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>, Param3: ::windows::core::IntoParam<'a, ::windows::core::PCSTR>>(outbuf: Param0, capacity: i32, indent: i32, fmt: Param3, args: *mut i8) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrace_vformat(outbuf: ::windows::core::PCSTR, capacity: i32, indent: i32, fmt: ::windows::core::PCSTR, args: *mut i8) -> i32;
        }
        ::core::mem::transmute(utrace_vformat(outbuf.into_param().abi(), ::core::mem::transmute(capacity), ::core::mem::transmute(indent), fmt.into_param().abi(), ::core::mem::transmute(args)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_clone(trans: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_clone(trans: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(utrans_clone(::core::mem::transmute(trans), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_close(trans: *mut *mut ::core::ffi::c_void) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_close(trans: *mut *mut ::core::ffi::c_void);
        }
        utrans_close(::core::mem::transmute(trans))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_countAvailableIDs() -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_countAvailableIDs() -> i32;
        }
        ::core::mem::transmute(utrans_countAvailableIDs())
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_getSourceSet(trans: *const *const ::core::ffi::c_void, ignorefilter: i8, fillin: *mut USet, status: *mut UErrorCode) -> *mut USet {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_getSourceSet(trans: *const *const ::core::ffi::c_void, ignorefilter: i8, fillin: *mut USet, status: *mut UErrorCode) -> *mut USet;
        }
        ::core::mem::transmute(utrans_getSourceSet(::core::mem::transmute(trans), ::core::mem::transmute(ignorefilter), ::core::mem::transmute(fillin), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_getUnicodeID(trans: *const *const ::core::ffi::c_void, resultlength: *mut i32) -> *mut u16 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_getUnicodeID(trans: *const *const ::core::ffi::c_void, resultlength: *mut i32) -> *mut u16;
        }
        ::core::mem::transmute(utrans_getUnicodeID(::core::mem::transmute(trans), ::core::mem::transmute(resultlength)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_openIDs(perrorcode: *mut UErrorCode) -> *mut UEnumeration {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_openIDs(perrorcode: *mut UErrorCode) -> *mut UEnumeration;
        }
        ::core::mem::transmute(utrans_openIDs(::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_openInverse(trans: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_openInverse(trans: *const *const ::core::ffi::c_void, status: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(utrans_openInverse(::core::mem::transmute(trans), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_openU(id: *const u16, idlength: i32, dir: UTransDirection, rules: *const u16, ruleslength: i32, parseerror: *mut UParseError, perrorcode: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_openU(id: *const u16, idlength: i32, dir: UTransDirection, rules: *const u16, ruleslength: i32, parseerror: *mut UParseError, perrorcode: *mut UErrorCode) -> *mut *mut ::core::ffi::c_void;
        }
        ::core::mem::transmute(utrans_openU(::core::mem::transmute(id), ::core::mem::transmute(idlength), ::core::mem::transmute(dir), ::core::mem::transmute(rules), ::core::mem::transmute(ruleslength), ::core::mem::transmute(parseerror), ::core::mem::transmute(perrorcode)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_register(adoptedtrans: *mut *mut ::core::ffi::c_void, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_register(adoptedtrans: *mut *mut ::core::ffi::c_void, status: *mut UErrorCode);
        }
        utrans_register(::core::mem::transmute(adoptedtrans), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_setFilter(trans: *mut *mut ::core::ffi::c_void, filterpattern: *const u16, filterpatternlen: i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_setFilter(trans: *mut *mut ::core::ffi::c_void, filterpattern: *const u16, filterpatternlen: i32, status: *mut UErrorCode);
        }
        utrans_setFilter(::core::mem::transmute(trans), ::core::mem::transmute(filterpattern), ::core::mem::transmute(filterpatternlen), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_toRules(trans: *const *const ::core::ffi::c_void, escapeunprintable: i8, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32 {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_toRules(trans: *const *const ::core::ffi::c_void, escapeunprintable: i8, result: *mut u16, resultlength: i32, status: *mut UErrorCode) -> i32;
        }
        ::core::mem::transmute(utrans_toRules(::core::mem::transmute(trans), ::core::mem::transmute(escapeunprintable), ::core::mem::transmute(result), ::core::mem::transmute(resultlength), ::core::mem::transmute(status)))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_trans(trans: *const *const ::core::ffi::c_void, rep: *mut *mut ::core::ffi::c_void, repfunc: *const UReplaceableCallbacks, start: i32, limit: *mut i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_trans(trans: *const *const ::core::ffi::c_void, rep: *mut *mut ::core::ffi::c_void, repfunc: *const UReplaceableCallbacks, start: i32, limit: *mut i32, status: *mut UErrorCode);
        }
        utrans_trans(::core::mem::transmute(trans), ::core::mem::transmute(rep), ::core::mem::transmute(repfunc), ::core::mem::transmute(start), ::core::mem::transmute(limit), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_transIncremental(trans: *const *const ::core::ffi::c_void, rep: *mut *mut ::core::ffi::c_void, repfunc: *const UReplaceableCallbacks, pos: *mut UTransPosition, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_transIncremental(trans: *const *const ::core::ffi::c_void, rep: *mut *mut ::core::ffi::c_void, repfunc: *const UReplaceableCallbacks, pos: *mut UTransPosition, status: *mut UErrorCode);
        }
        utrans_transIncremental(::core::mem::transmute(trans), ::core::mem::transmute(rep), ::core::mem::transmute(repfunc), ::core::mem::transmute(pos), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_transIncrementalUChars(trans: *const *const ::core::ffi::c_void, text: *mut u16, textlength: *mut i32, textcapacity: i32, pos: *mut UTransPosition, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_transIncrementalUChars(trans: *const *const ::core::ffi::c_void, text: *mut u16, textlength: *mut i32, textcapacity: i32, pos: *mut UTransPosition, status: *mut UErrorCode);
        }
        utrans_transIncrementalUChars(::core::mem::transmute(trans), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(textcapacity), ::core::mem::transmute(pos), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_transUChars(trans: *const *const ::core::ffi::c_void, text: *mut u16, textlength: *mut i32, textcapacity: i32, start: i32, limit: *mut i32, status: *mut UErrorCode) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_transUChars(trans: *const *const ::core::ffi::c_void, text: *mut u16, textlength: *mut i32, textcapacity: i32, start: i32, limit: *mut i32, status: *mut UErrorCode);
        }
        utrans_transUChars(::core::mem::transmute(trans), ::core::mem::transmute(text), ::core::mem::transmute(textlength), ::core::mem::transmute(textcapacity), ::core::mem::transmute(start), ::core::mem::transmute(limit), ::core::mem::transmute(status))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[doc = "*Required features: 'Win32_Globalization'*"]
#[inline]
pub unsafe fn utrans_unregisterID(id: *const u16, idlength: i32) {
    #[cfg(windows)]
    {
        #[link(name = "windows")]
        extern "system" {
            fn utrans_unregisterID(id: *const u16, idlength: i32);
        }
        utrans_unregisterID(::core::mem::transmute(id), ::core::mem::transmute(idlength))
    }
    #[cfg(not(windows))]
    unimplemented!("Unsupported target OS");
}
#[cfg(feature = "implement")]
::core::include!("impl.rs");
