pub const ANALOG_AUXIN_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0x742ef867_09e1_40a3_82d3_9669ba35325f);
pub const ANALOG_FM_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0x7728087b_2bb9_4e30_8078_449476e59dbb);
pub const ANALOG_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0xb820d87e_e0e3_478f_8a38_4e13f7b3df42);
pub const ATSCChannelTuneRequest: windows_core::GUID = windows_core::GUID::from_u128(0x0369b4e6_45b6_11d3_b650_00c04f79498e);
pub const ATSCComponentType: windows_core::GUID = windows_core::GUID::from_u128(0xa8dcf3d5_0780_4ef4_8a83_2cffaacb8ace);
pub const ATSCLocator: windows_core::GUID = windows_core::GUID::from_u128(0x8872ff1b_98fa_4d7a_8d93_c9f1055f85bb);
pub const ATSCTuningSpace: windows_core::GUID = windows_core::GUID::from_u128(0xa2e30750_6c3d_11d3_b653_00c04f79498e);
pub const ATSC_EIT_TID: u32 = 203u32;
pub const ATSC_ETM_LOCATION_IN_PTC_FOR_EVENT: u32 = 2u32;
pub const ATSC_ETM_LOCATION_IN_PTC_FOR_PSIP: u32 = 1u32;
pub const ATSC_ETM_LOCATION_NOT_PRESENT: u32 = 0u32;
pub const ATSC_ETM_LOCATION_RESERVED: u32 = 3u32;
pub const ATSC_ETT_TID: u32 = 204u32;
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct ATSC_FILTER_OPTIONS {
pub fSpecifyEtmId: windows_core::BOOL,
pub EtmId: u32,
}
pub const ATSC_MGT_PID: u32 = 8187u32;
pub const ATSC_MGT_TID: u32 = 199u32;
pub const ATSC_PIT_TID: u32 = 208u32;
pub const ATSC_RRT_PID: u32 = 8187u32;
pub const ATSC_RRT_TID: u32 = 202u32;
pub const ATSC_STT_PID: u32 = 8187u32;
pub const ATSC_STT_TID: u32 = 205u32;
pub const ATSC_TERRESTRIAL_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0x0dad2fdd_5fd7_11d3_8f50_00c04f7971e2);
pub const ATSC_VCT_CABL_TID: u32 = 201u32;
pub const ATSC_VCT_PID: u32 = 8187u32;
pub const ATSC_VCT_TERR_TID: u32 = 200u32;
pub const AgeBased: EnTvRat_System = EnTvRat_System(9i32);
pub const AnalogAudioComponentType: windows_core::GUID = windows_core::GUID::from_u128(0x28ab0005_e845_4ffa_aa9b_f4665236141c);
pub const AnalogLocator: windows_core::GUID = windows_core::GUID::from_u128(0x49638b91_48ab_48b7_a47a_7d0e75a08ede);
pub const AnalogRadioTuningSpace: windows_core::GUID = windows_core::GUID::from_u128(0x8a674b4c_1f63_11d3_b64c_00c04f79498e);
pub const AnalogTVTuningSpace: windows_core::GUID = windows_core::GUID::from_u128(0x8a674b4d_1f63_11d3_b64c_00c04f79498e);
pub const AudioType_Commentary: u32 = 5u32;
pub const AudioType_Dialogue: u32 = 4u32;
pub const AudioType_Emergency: u32 = 6u32;
pub const AudioType_Hearing_Impaired: u32 = 3u32;
pub const AudioType_Music_And_Effects: u32 = 1u32;
pub const AudioType_Reserved: i32 = -1i32;
pub const AudioType_Standard: u32 = 0u32;
pub const AudioType_Visually_Impaired: u32 = 2u32;
pub const AudioType_Voiceover: u32 = 7u32;
pub const AuxInTuningSpace: windows_core::GUID = windows_core::GUID::from_u128(0xf9769a06_7aca_4e39_9cfb_97bb35f0e77e);
pub const BDANETWORKTYPE_ATSC: windows_core::GUID = windows_core::GUID::from_u128(0x71985f51_1ca1_11d3_9cc8_00c04f7971e0);
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct BDA_DEBUG_DATA {
pub lResult: i32,
pub uuidDebugDataType: windows_core::GUID,
pub ulDataSize: u32,
pub argbDebugData: [u8; 1],
}
impl Default for BDA_DEBUG_DATA {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const BDA_DEBUG_DATA_AVAILABLE: windows_core::GUID = windows_core::GUID::from_u128(0x69c24f54_9983_497e_b415_282be4c555fb);
pub const BDA_DEBUG_DATA_TYPE_STRING: windows_core::GUID = windows_core::GUID::from_u128(0xa806e767_de5c_430c_80bf_a21ebe06c748);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct BDA_DigitalSignalStandard(pub i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct BDA_EVENT_DATA {
pub lResult: i32,
pub ulEventID: u32,
pub uuidEventType: windows_core::GUID,
pub ulEventDataLength: u32,
pub argbEventData: [u8; 1],
}
impl Default for BDA_EVENT_DATA {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct BDA_LockType(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct BDA_SignalType(pub i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct BDA_TRANSPORT_INFO {
pub ulcbPhyiscalPacket: u32,
pub ulcbPhyiscalFrame: u32,
pub ulcbPhyiscalFrameAlignment: u32,
pub AvgTimePerFrame: i64,
}
pub const BSKYB_TERRESTRIAL_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0x9e9e46c6_3aba_4f08_ad0e_cc5ac8148c2b);
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct BadSampleInfo {
pub hrReason: windows_core::HRESULT,
}
pub const Bda_DigitalStandard_ATSC: BDA_DigitalSignalStandard = BDA_DigitalSignalStandard(8i32);
pub const Bda_DigitalStandard_DVB_C: BDA_DigitalSignalStandard = BDA_DigitalSignalStandard(4i32);
pub const Bda_DigitalStandard_DVB_S: BDA_DigitalSignalStandard = BDA_DigitalSignalStandard(2i32);
pub const Bda_DigitalStandard_DVB_T: BDA_DigitalSignalStandard = BDA_DigitalSignalStandard(1i32);
pub const Bda_DigitalStandard_ISDB_C: BDA_DigitalSignalStandard = BDA_DigitalSignalStandard(64i32);
pub const Bda_DigitalStandard_ISDB_S: BDA_DigitalSignalStandard = BDA_DigitalSignalStandard(32i32);
pub const Bda_DigitalStandard_ISDB_T: BDA_DigitalSignalStandard = BDA_DigitalSignalStandard(16i32);
pub const Bda_DigitalStandard_None: BDA_DigitalSignalStandard = BDA_DigitalSignalStandard(0i32);
pub const Bda_LockType_Complete: BDA_LockType = BDA_LockType(128i32);
pub const Bda_LockType_DecoderDemod: BDA_LockType = BDA_LockType(2i32);
pub const Bda_LockType_None: BDA_LockType = BDA_LockType(0i32);
pub const Bda_LockType_PLL: BDA_LockType = BDA_LockType(1i32);
pub const Bda_SignalType_Analog: BDA_SignalType = BDA_SignalType(1i32);
pub const Bda_SignalType_Digital: BDA_SignalType = BDA_SignalType(2i32);
pub const Bda_SignalType_Unknown: BDA_SignalType = BDA_SignalType(0i32);
pub const BfAttrNone: BfEnTvRat_GenericAttributes = BfEnTvRat_GenericAttributes(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct BfEnTvRat_Attributes_CAE_TV(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct BfEnTvRat_Attributes_CAF_TV(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct BfEnTvRat_Attributes_MPAA(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct BfEnTvRat_Attributes_US_TV(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct BfEnTvRat_GenericAttributes(pub i32);
pub const BfIsAttr_1: BfEnTvRat_GenericAttributes = BfEnTvRat_GenericAttributes(2i32);
pub const BfIsAttr_2: BfEnTvRat_GenericAttributes = BfEnTvRat_GenericAttributes(4i32);
pub const BfIsAttr_3: BfEnTvRat_GenericAttributes = BfEnTvRat_GenericAttributes(8i32);
pub const BfIsAttr_4: BfEnTvRat_GenericAttributes = BfEnTvRat_GenericAttributes(16i32);
pub const BfIsAttr_5: BfEnTvRat_GenericAttributes = BfEnTvRat_GenericAttributes(32i32);
pub const BfIsAttr_6: BfEnTvRat_GenericAttributes = BfEnTvRat_GenericAttributes(64i32);
pub const BfIsAttr_7: BfEnTvRat_GenericAttributes = BfEnTvRat_GenericAttributes(128i32);
pub const BfIsBlocked: BfEnTvRat_GenericAttributes = BfEnTvRat_GenericAttributes(1i32);
pub const BfValidAttrSubmask: BfEnTvRat_GenericAttributes = BfEnTvRat_GenericAttributes(255i32);
pub const BroadcastEventService: windows_core::GUID = windows_core::GUID::from_u128(0x0b3ffb92_0919_4934_9d5b_619c719d0202);
pub const CAE_IsBlocked: BfEnTvRat_Attributes_CAE_TV = BfEnTvRat_Attributes_CAE_TV(1i32);
pub const CAE_TV_14: EnTvRat_CAE_TV = EnTvRat_CAE_TV(5i32);
pub const CAE_TV_18: EnTvRat_CAE_TV = EnTvRat_CAE_TV(6i32);
pub const CAE_TV_C: EnTvRat_CAE_TV = EnTvRat_CAE_TV(1i32);
pub const CAE_TV_C8: EnTvRat_CAE_TV = EnTvRat_CAE_TV(2i32);
pub const CAE_TV_Exempt: EnTvRat_CAE_TV = EnTvRat_CAE_TV(0i32);
pub const CAE_TV_G: EnTvRat_CAE_TV = EnTvRat_CAE_TV(3i32);
pub const CAE_TV_PG: EnTvRat_CAE_TV = EnTvRat_CAE_TV(4i32);
pub const CAE_TV_Reserved: EnTvRat_CAE_TV = EnTvRat_CAE_TV(7i32);
pub const CAE_ValidAttrSubmask: BfEnTvRat_Attributes_CAE_TV = BfEnTvRat_Attributes_CAE_TV(1i32);
pub const CAF_IsBlocked: BfEnTvRat_Attributes_CAF_TV = BfEnTvRat_Attributes_CAF_TV(1i32);
pub const CAF_TV_13: EnTvRat_CAF_TV = EnTvRat_CAF_TV(3i32);
pub const CAF_TV_16: EnTvRat_CAF_TV = EnTvRat_CAF_TV(4i32);
pub const CAF_TV_18: EnTvRat_CAF_TV = EnTvRat_CAF_TV(5i32);
pub const CAF_TV_8: EnTvRat_CAF_TV = EnTvRat_CAF_TV(2i32);
pub const CAF_TV_Exempt: EnTvRat_CAF_TV = EnTvRat_CAF_TV(0i32);
pub const CAF_TV_G: EnTvRat_CAF_TV = EnTvRat_CAF_TV(1i32);
pub const CAF_TV_Reserved: EnTvRat_CAF_TV = EnTvRat_CAF_TV(7i32);
pub const CAF_TV_Reserved6: EnTvRat_CAF_TV = EnTvRat_CAF_TV(6i32);
pub const CAF_ValidAttrSubmask: BfEnTvRat_Attributes_CAF_TV = BfEnTvRat_Attributes_CAF_TV(1i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct CAPTURE_STREAMTIME {
pub StreamTime: i64,
}
pub const CLSID_CPCAFiltersCategory: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4fc_0049_4e2b_98fb_9537f6ce516d);
pub const CLSID_DTFilterEncProperties: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c482_0049_4e2b_98fb_9537f6ce516d);
pub const CLSID_DTFilterTagProperties: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c492_0049_4e2b_98fb_9537f6ce516d);
pub const CLSID_ETFilterEncProperties: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c481_0049_4e2b_98fb_9537f6ce516d);
pub const CLSID_ETFilterTagProperties: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c491_0049_4e2b_98fb_9537f6ce516d);
pub const CLSID_Mpeg2TableFilter: windows_core::GUID = windows_core::GUID::from_u128(0x752845f1_758f_4c83_a043_4270c593308e);
pub const CLSID_PTFilter: windows_core::GUID = windows_core::GUID::from_u128(0x9cd31617_b303_4f96_8330_2eb173ea4dc6);
pub const CLSID_XDSCodecProperties: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c483_0049_4e2b_98fb_9537f6ce516d);
pub const CLSID_XDSCodecTagProperties: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c493_0049_4e2b_98fb_9537f6ce516d);
pub const COMPONENT_TAG_CAPTION_MAX: u32 = 55u32;
pub const COMPONENT_TAG_CAPTION_MIN: u32 = 48u32;
pub const COMPONENT_TAG_SUPERIMPOSE_MAX: u32 = 63u32;
pub const COMPONENT_TAG_SUPERIMPOSE_MIN: u32 = 56u32;
pub const CONTENT: RecordingType = RecordingType(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct COPPEventBlockReason(pub i32);
pub const COPP_Activate: COPPEventBlockReason = COPPEventBlockReason(8i32);
pub const COPP_AeroGlassOff: COPPEventBlockReason = COPPEventBlockReason(5i32);
pub const COPP_BadCertificate: COPPEventBlockReason = COPPEventBlockReason(3i32);
pub const COPP_BadDriver: COPPEventBlockReason = COPPEventBlockReason(0i32);
pub const COPP_DigitalAudioUnprotected: COPPEventBlockReason = COPPEventBlockReason(9i32);
pub const COPP_ForbiddenVideo: COPPEventBlockReason = COPPEventBlockReason(7i32);
pub const COPP_InvalidBusProtection: COPPEventBlockReason = COPPEventBlockReason(4i32);
pub const COPP_NoCardHDCPSupport: COPPEventBlockReason = COPPEventBlockReason(1i32);
pub const COPP_NoMonitorHDCPSupport: COPPEventBlockReason = COPPEventBlockReason(2i32);
pub const COPP_RogueApp: COPPEventBlockReason = COPPEventBlockReason(6i32);
pub const COPP_Unknown: COPPEventBlockReason = COPPEventBlockReason(-1i32);
pub const CPEVENT_BITSHIFT_COPP: CPEventBitShift = CPEventBitShift(1i32);
pub const CPEVENT_BITSHIFT_DOWNRES: CPEventBitShift = CPEventBitShift(5i32);
pub const CPEVENT_BITSHIFT_LICENSE: CPEventBitShift = CPEventBitShift(2i32);
pub const CPEVENT_BITSHIFT_NO_PLAYREADY: CPEventBitShift = CPEventBitShift(9i32);
pub const CPEVENT_BITSHIFT_PENDING_CERTIFICATE: CPEventBitShift = CPEventBitShift(8i32);
pub const CPEVENT_BITSHIFT_RATINGS: CPEventBitShift = CPEventBitShift(0i32);
pub const CPEVENT_BITSHIFT_ROLLBACK: CPEventBitShift = CPEventBitShift(3i32);
pub const CPEVENT_BITSHIFT_SAC: CPEventBitShift = CPEventBitShift(4i32);
pub const CPEVENT_BITSHIFT_STUBLIB: CPEventBitShift = CPEventBitShift(6i32);
pub const CPEVENT_BITSHIFT_UNTRUSTEDGRAPH: CPEventBitShift = CPEventBitShift(7i32);
pub const CPEVENT_COPP: CPEvents = CPEvents(2i32);
pub const CPEVENT_DOWNRES: CPEvents = CPEvents(6i32);
pub const CPEVENT_LICENSE: CPEvents = CPEvents(3i32);
pub const CPEVENT_NONE: CPEvents = CPEvents(0i32);
pub const CPEVENT_PROTECTWINDOWED: CPEvents = CPEvents(9i32);
pub const CPEVENT_RATINGS: CPEvents = CPEvents(1i32);
pub const CPEVENT_ROLLBACK: CPEvents = CPEvents(4i32);
pub const CPEVENT_SAC: CPEvents = CPEvents(5i32);
pub const CPEVENT_STUBLIB: CPEvents = CPEvents(7i32);
pub const CPEVENT_UNTRUSTEDGRAPH: CPEvents = CPEvents(8i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct CPEventBitShift(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct CPEvents(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct CPRecordingStatus(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct CRID_LOCATION(pub i32);
pub const CRID_LOCATION_DVB_RESERVED1: CRID_LOCATION = CRID_LOCATION(2i32);
pub const CRID_LOCATION_DVB_RESERVED2: CRID_LOCATION = CRID_LOCATION(3i32);
pub const CRID_LOCATION_IN_CIT: CRID_LOCATION = CRID_LOCATION(1i32);
pub const CRID_LOCATION_IN_DESCRIPTOR: CRID_LOCATION = CRID_LOCATION(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct CROSSBAR_DEFAULT_FLAGS(pub i32);
pub const CXDSData: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4f4_0049_4e2b_98fb_9537f6ce516d);
pub const Canadian_English: EnTvRat_System = EnTvRat_System(2i32);
pub const Canadian_French: EnTvRat_System = EnTvRat_System(3i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct ChannelChangeInfo {
pub state: ChannelChangeSpanningEvent_State,
pub TimeStamp: u64,
}
pub const ChannelChangeSpanningEvent_End: ChannelChangeSpanningEvent_State = ChannelChangeSpanningEvent_State(2i32);
pub const ChannelChangeSpanningEvent_Start: ChannelChangeSpanningEvent_State = ChannelChangeSpanningEvent_State(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct ChannelChangeSpanningEvent_State(pub i32);
pub const ChannelIDTuneRequest: windows_core::GUID = windows_core::GUID::from_u128(0x3a9428a7_31a4_45e9_9efb_e055bf7bb3db);
pub const ChannelIDTuningSpace: windows_core::GUID = windows_core::GUID::from_u128(0xcc829a2f_3365_463f_af13_81dbb6f3a555);
#[repr(C)]
#[derive(Clone, Copy)]
pub struct ChannelInfo {
pub lFrequency: i32,
pub Anonymous: ChannelInfo_0,
}
impl Default for ChannelInfo {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union ChannelInfo_0 {
pub DVB: ChannelInfo_0_0,
pub DC: ChannelInfo_0_1,
pub ATSC: ChannelInfo_0_2,
}
impl Default for ChannelInfo_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct ChannelInfo_0_2 {
pub lProgNumber: i32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct ChannelInfo_0_1 {
pub lProgNumber: i32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct ChannelInfo_0_0 {
pub lONID: i32,
pub lTSID: i32,
pub lSID: i32,
}
pub const ChannelTuneRequest: windows_core::GUID = windows_core::GUID::from_u128(0x0369b4e5_45b6_11d3_b650_00c04f79498e);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct ChannelType(pub i32);
pub const ChannelTypeAudio: ChannelType = ChannelType(4i32);
pub const ChannelTypeCaptions: ChannelType = ChannelType(32i32);
pub const ChannelTypeData: ChannelType = ChannelType(128i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct ChannelTypeInfo {
pub channelType: ChannelType,
pub timeStamp: u64,
}
pub const ChannelTypeNone: ChannelType = ChannelType(0i32);
pub const ChannelTypeOther: ChannelType = ChannelType(1i32);
pub const ChannelTypeSubtitles: ChannelType = ChannelType(16i32);
pub const ChannelTypeSuperimpose: ChannelType = ChannelType(64i32);
pub const ChannelTypeText: ChannelType = ChannelType(8i32);
pub const ChannelTypeVideo: ChannelType = ChannelType(2i32);
pub const Component: windows_core::GUID = windows_core::GUID::from_u128(0x59dc47a8_116c_11d3_9d8e_00c04f72d980);
pub const ComponentType: windows_core::GUID = windows_core::GUID::from_u128(0x823535a0_0318_11d3_9d8e_00c04f72d980);
pub const ComponentTypes: windows_core::GUID = windows_core::GUID::from_u128(0xa1a2b1c4_0e3a_11d3_9d8e_00c04f72d980);
pub const Components: windows_core::GUID = windows_core::GUID::from_u128(0x809b6661_94c4_49e6_b6ec_3f0f862215aa);
pub const CreatePropBagOnRegKey: windows_core::GUID = windows_core::GUID::from_u128(0x8a674b49_1f63_11d3_b64c_00c04f79498e);
pub const DEF_MODE_PROFILE: CROSSBAR_DEFAULT_FLAGS = CROSSBAR_DEFAULT_FLAGS(1i32);
pub const DEF_MODE_STREAMS: CROSSBAR_DEFAULT_FLAGS = CROSSBAR_DEFAULT_FLAGS(2i32);
pub const DESC_LINKAGE_CA_REPLACEMENT: DESC_LINKAGE_TYPE = DESC_LINKAGE_TYPE(3i32);
pub const DESC_LINKAGE_COMPLETE_NET_BOUQUET_SI: DESC_LINKAGE_TYPE = DESC_LINKAGE_TYPE(4i32);
pub const DESC_LINKAGE_DATA: DESC_LINKAGE_TYPE = DESC_LINKAGE_TYPE(6i32);
pub const DESC_LINKAGE_EPG: DESC_LINKAGE_TYPE = DESC_LINKAGE_TYPE(2i32);
pub const DESC_LINKAGE_INFORMATION: DESC_LINKAGE_TYPE = DESC_LINKAGE_TYPE(1i32);
pub const DESC_LINKAGE_REPLACEMENT: DESC_LINKAGE_TYPE = DESC_LINKAGE_TYPE(5i32);
pub const DESC_LINKAGE_RESERVED0: DESC_LINKAGE_TYPE = DESC_LINKAGE_TYPE(0i32);
pub const DESC_LINKAGE_RESERVED1: DESC_LINKAGE_TYPE = DESC_LINKAGE_TYPE(7i32);
pub const DESC_LINKAGE_RESERVED2: DESC_LINKAGE_TYPE = DESC_LINKAGE_TYPE(255i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct DESC_LINKAGE_TYPE(pub i32);
pub const DESC_LINKAGE_USER: DESC_LINKAGE_TYPE = DESC_LINKAGE_TYPE(8i32);
pub const DIGITAL_CABLE_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0x143827ab_f77b_498d_81ca_5a007aec28bf);
pub const DIRECT_TV_SATELLITE_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0x93b66fb5_93d4_4323_921c_c1f52df61d3f);
pub const DISPID_CHTUNER_ACTR_MINOR_CHANNEL: DISPID_TUNER = DISPID_TUNER(201i32);
pub const DISPID_CHTUNER_ATVAC_CHANNEL: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_CHTUNER_ATVDC_CONTENT: DISPID_TUNER = DISPID_TUNER(102i32);
pub const DISPID_CHTUNER_ATVDC_SYSTEM: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_CHTUNER_CIDTR_CHANNELID: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_CHTUNER_CTR_CHANNEL: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_CHTUNER_DCTR_MAJOR_CHANNEL: DISPID_TUNER = DISPID_TUNER(301i32);
pub const DISPID_CHTUNER_DCTR_SRCID: DISPID_TUNER = DISPID_TUNER(302i32);
pub const DISPID_DVBTUNER_DVBC_ATTRIBUTESVALID: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_DVBTUNER_DVBC_COMPONENTTYPE: DISPID_TUNER = DISPID_TUNER(104i32);
pub const DISPID_DVBTUNER_DVBC_PID: DISPID_TUNER = DISPID_TUNER(102i32);
pub const DISPID_DVBTUNER_DVBC_TAG: DISPID_TUNER = DISPID_TUNER(103i32);
pub const DISPID_DVBTUNER_ONID: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_DVBTUNER_SID: DISPID_TUNER = DISPID_TUNER(103i32);
pub const DISPID_DVBTUNER_TSID: DISPID_TUNER = DISPID_TUNER(102i32);
pub const DISPID_MP2TUNERFACTORY_CREATETUNEREQUEST: DISPID_TUNER = DISPID_TUNER(1i32);
pub const DISPID_MP2TUNER_PROGNO: DISPID_TUNER = DISPID_TUNER(102i32);
pub const DISPID_MP2TUNER_TSID: DISPID_TUNER = DISPID_TUNER(101i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct DISPID_TUNER(pub i32);
pub const DISPID_TUNER_ATSCCT_FLAGS: DISPID_TUNER = DISPID_TUNER(300i32);
pub const DISPID_TUNER_CT_CATEGORY: DISPID_TUNER = DISPID_TUNER(1i32);
pub const DISPID_TUNER_CT_CLONE: DISPID_TUNER = DISPID_TUNER(9i32);
pub const DISPID_TUNER_CT_MEDIAFORMATTYPE: DISPID_TUNER = DISPID_TUNER(6i32);
pub const DISPID_TUNER_CT_MEDIAMAJORTYPE: DISPID_TUNER = DISPID_TUNER(2i32);
pub const DISPID_TUNER_CT_MEDIASUBTYPE: DISPID_TUNER = DISPID_TUNER(4i32);
pub const DISPID_TUNER_CT_MEDIATYPE: DISPID_TUNER = DISPID_TUNER(8i32);
pub const DISPID_TUNER_CT__MEDIAFORMATTYPE: DISPID_TUNER = DISPID_TUNER(7i32);
pub const DISPID_TUNER_CT__MEDIAMAJORTYPE: DISPID_TUNER = DISPID_TUNER(3i32);
pub const DISPID_TUNER_CT__MEDIASUBTYPE: DISPID_TUNER = DISPID_TUNER(5i32);
pub const DISPID_TUNER_C_ANALOG_AUDIO: DISPID_TUNER = DISPID_TUNER(201i32);
pub const DISPID_TUNER_C_CLONE: DISPID_TUNER = DISPID_TUNER(5i32);
pub const DISPID_TUNER_C_DESCRIPTION: DISPID_TUNER = DISPID_TUNER(4i32);
pub const DISPID_TUNER_C_LANGID: DISPID_TUNER = DISPID_TUNER(3i32);
pub const DISPID_TUNER_C_MP2_PCRPID: DISPID_TUNER = DISPID_TUNER(102i32);
pub const DISPID_TUNER_C_MP2_PID: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_TUNER_C_MP2_PROGNO: DISPID_TUNER = DISPID_TUNER(103i32);
pub const DISPID_TUNER_C_STATUS: DISPID_TUNER = DISPID_TUNER(2i32);
pub const DISPID_TUNER_C_TYPE: DISPID_TUNER = DISPID_TUNER(1i32);
pub const DISPID_TUNER_LCT_LANGID: DISPID_TUNER = DISPID_TUNER(100i32);
pub const DISPID_TUNER_L_ANALOG_STANDARD: DISPID_TUNER = DISPID_TUNER(601i32);
pub const DISPID_TUNER_L_ATSC_MP2_PROGNO: DISPID_TUNER = DISPID_TUNER(203i32);
pub const DISPID_TUNER_L_ATSC_PHYS_CHANNEL: DISPID_TUNER = DISPID_TUNER(201i32);
pub const DISPID_TUNER_L_ATSC_TSID: DISPID_TUNER = DISPID_TUNER(202i32);
pub const DISPID_TUNER_L_CARRFREQ: DISPID_TUNER = DISPID_TUNER(1i32);
pub const DISPID_TUNER_L_CLONE: DISPID_TUNER = DISPID_TUNER(8i32);
pub const DISPID_TUNER_L_DTV_O_MAJOR_CHANNEL: DISPID_TUNER = DISPID_TUNER(701i32);
pub const DISPID_TUNER_L_DVBS2_DISEQ_LNB_SOURCE: DISPID_TUNER = DISPID_TUNER(406i32);
pub const DISPID_TUNER_L_DVBS2_PILOT: DISPID_TUNER = DISPID_TUNER(412i32);
pub const DISPID_TUNER_L_DVBS2_ROLLOFF: DISPID_TUNER = DISPID_TUNER(411i32);
pub const DISPID_TUNER_L_DVBS_AZIMUTH: DISPID_TUNER = DISPID_TUNER(404i32);
pub const DISPID_TUNER_L_DVBS_ELEVATION: DISPID_TUNER = DISPID_TUNER(405i32);
pub const DISPID_TUNER_L_DVBS_ORBITAL: DISPID_TUNER = DISPID_TUNER(403i32);
pub const DISPID_TUNER_L_DVBS_POLARISATION: DISPID_TUNER = DISPID_TUNER(401i32);
pub const DISPID_TUNER_L_DVBS_WEST: DISPID_TUNER = DISPID_TUNER(402i32);
pub const DISPID_TUNER_L_DVBT2_PHYSICALLAYERPIPEID: DISPID_TUNER = DISPID_TUNER(351i32);
pub const DISPID_TUNER_L_DVBT_BANDWIDTH: DISPID_TUNER = DISPID_TUNER(301i32);
pub const DISPID_TUNER_L_DVBT_GUARDINTERVAL: DISPID_TUNER = DISPID_TUNER(304i32);
pub const DISPID_TUNER_L_DVBT_HALPHA: DISPID_TUNER = DISPID_TUNER(305i32);
pub const DISPID_TUNER_L_DVBT_INUSE: DISPID_TUNER = DISPID_TUNER(307i32);
pub const DISPID_TUNER_L_DVBT_LPINNERFECMETHOD: DISPID_TUNER = DISPID_TUNER(302i32);
pub const DISPID_TUNER_L_DVBT_LPINNERFECRATE: DISPID_TUNER = DISPID_TUNER(303i32);
pub const DISPID_TUNER_L_DVBT_TRANSMISSIONMODE: DISPID_TUNER = DISPID_TUNER(306i32);
pub const DISPID_TUNER_L_INNERFECMETHOD: DISPID_TUNER = DISPID_TUNER(2i32);
pub const DISPID_TUNER_L_INNERFECRATE: DISPID_TUNER = DISPID_TUNER(3i32);
pub const DISPID_TUNER_L_MOD: DISPID_TUNER = DISPID_TUNER(6i32);
pub const DISPID_TUNER_L_OUTERFECMETHOD: DISPID_TUNER = DISPID_TUNER(4i32);
pub const DISPID_TUNER_L_OUTERFECRATE: DISPID_TUNER = DISPID_TUNER(5i32);
pub const DISPID_TUNER_L_SYMRATE: DISPID_TUNER = DISPID_TUNER(7i32);
pub const DISPID_TUNER_MP2CT_TYPE: DISPID_TUNER = DISPID_TUNER(200i32);
pub const DISPID_TUNER_TR_CLONE: DISPID_TUNER = DISPID_TUNER(3i32);
pub const DISPID_TUNER_TR_COMPONENTS: DISPID_TUNER = DISPID_TUNER(2i32);
pub const DISPID_TUNER_TR_LOCATOR: DISPID_TUNER = DISPID_TUNER(4i32);
pub const DISPID_TUNER_TR_TUNINGSPACE: DISPID_TUNER = DISPID_TUNER(1i32);
pub const DISPID_TUNER_TS_AR_COUNTRYCODE: DISPID_TUNER = DISPID_TUNER(104i32);
pub const DISPID_TUNER_TS_AR_MAXFREQUENCY: DISPID_TUNER = DISPID_TUNER(102i32);
pub const DISPID_TUNER_TS_AR_MINFREQUENCY: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_TUNER_TS_AR_STEP: DISPID_TUNER = DISPID_TUNER(103i32);
pub const DISPID_TUNER_TS_ATSC_MAXMINORCHANNEL: DISPID_TUNER = DISPID_TUNER(202i32);
pub const DISPID_TUNER_TS_ATSC_MAXPHYSCHANNEL: DISPID_TUNER = DISPID_TUNER(204i32);
pub const DISPID_TUNER_TS_ATSC_MINMINORCHANNEL: DISPID_TUNER = DISPID_TUNER(201i32);
pub const DISPID_TUNER_TS_ATSC_MINPHYSCHANNEL: DISPID_TUNER = DISPID_TUNER(203i32);
pub const DISPID_TUNER_TS_ATV_COUNTRYCODE: DISPID_TUNER = DISPID_TUNER(104i32);
pub const DISPID_TUNER_TS_ATV_INPUTTYPE: DISPID_TUNER = DISPID_TUNER(103i32);
pub const DISPID_TUNER_TS_ATV_MAXCHANNEL: DISPID_TUNER = DISPID_TUNER(102i32);
pub const DISPID_TUNER_TS_ATV_MINCHANNEL: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_TUNER_TS_AUX_COUNTRYCODE: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_TUNER_TS_CLONE: DISPID_TUNER = DISPID_TUNER(12i32);
pub const DISPID_TUNER_TS_CLSID: DISPID_TUNER = DISPID_TUNER(3i32);
pub const DISPID_TUNER_TS_CREATETUNEREQUEST: DISPID_TUNER = DISPID_TUNER(6i32);
pub const DISPID_TUNER_TS_DC_MAXMAJORCHANNEL: DISPID_TUNER = DISPID_TUNER(302i32);
pub const DISPID_TUNER_TS_DC_MAXSOURCEID: DISPID_TUNER = DISPID_TUNER(304i32);
pub const DISPID_TUNER_TS_DC_MINMAJORCHANNEL: DISPID_TUNER = DISPID_TUNER(301i32);
pub const DISPID_TUNER_TS_DC_MINSOURCEID: DISPID_TUNER = DISPID_TUNER(303i32);
pub const DISPID_TUNER_TS_DEFAULTPREFERREDCOMPONENTTYPES: DISPID_TUNER = DISPID_TUNER(9i32);
pub const DISPID_TUNER_TS_DEFLOCATOR: DISPID_TUNER = DISPID_TUNER(11i32);
pub const DISPID_TUNER_TS_DVB2_NETWORK_ID: DISPID_TUNER = DISPID_TUNER(102i32);
pub const DISPID_TUNER_TS_DVBS2_HI_OSC_FREQ_OVERRIDE: DISPID_TUNER = DISPID_TUNER(408i32);
pub const DISPID_TUNER_TS_DVBS2_LNB_SWITCH_FREQ_OVERRIDE: DISPID_TUNER = DISPID_TUNER(409i32);
pub const DISPID_TUNER_TS_DVBS2_LOW_OSC_FREQ_OVERRIDE: DISPID_TUNER = DISPID_TUNER(407i32);
pub const DISPID_TUNER_TS_DVBS2_SPECTRAL_INVERSION_OVERRIDE: DISPID_TUNER = DISPID_TUNER(410i32);
pub const DISPID_TUNER_TS_DVBS_HI_OSC_FREQ: DISPID_TUNER = DISPID_TUNER(1002i32);
pub const DISPID_TUNER_TS_DVBS_INPUT_RANGE: DISPID_TUNER = DISPID_TUNER(1004i32);
pub const DISPID_TUNER_TS_DVBS_LNB_SWITCH_FREQ: DISPID_TUNER = DISPID_TUNER(1003i32);
pub const DISPID_TUNER_TS_DVBS_LOW_OSC_FREQ: DISPID_TUNER = DISPID_TUNER(1001i32);
pub const DISPID_TUNER_TS_DVBS_SPECTRAL_INVERSION: DISPID_TUNER = DISPID_TUNER(1005i32);
pub const DISPID_TUNER_TS_DVB_SYSTEMTYPE: DISPID_TUNER = DISPID_TUNER(101i32);
pub const DISPID_TUNER_TS_ENUMCATEGORYGUIDS: DISPID_TUNER = DISPID_TUNER(7i32);
pub const DISPID_TUNER_TS_ENUMDEVICEMONIKERS: DISPID_TUNER = DISPID_TUNER(8i32);
pub const DISPID_TUNER_TS_FREQMAP: DISPID_TUNER = DISPID_TUNER(10i32);
pub const DISPID_TUNER_TS_FRIENDLYNAME: DISPID_TUNER = DISPID_TUNER(2i32);
pub const DISPID_TUNER_TS_NETWORKTYPE: DISPID_TUNER = DISPID_TUNER(4i32);
pub const DISPID_TUNER_TS_UNIQUENAME: DISPID_TUNER = DISPID_TUNER(1i32);
pub const DISPID_TUNER_TS__NETWORKTYPE: DISPID_TUNER = DISPID_TUNER(5i32);
pub const DOWNRES_Always: DownResEventParam = DownResEventParam(0i32);
pub const DOWNRES_InWindowOnly: DownResEventParam = DownResEventParam(1i32);
pub const DOWNRES_Undefined: DownResEventParam = DownResEventParam(2i32);
pub const DSATTRIB_BadSampleInfo: windows_core::GUID = windows_core::GUID::from_u128(0xe4846dda_5838_42b4_b897_6f7e5faa2f2f);
pub const DSATTRIB_WMDRMProtectionInfo: windows_core::GUID = windows_core::GUID::from_u128(0x40749583_6b9d_4eec_b43c_67a1801e1a9b);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct DSHOW_STREAM_DESC {
pub VersionNo: u32,
pub StreamId: u32,
pub Default: windows_core::BOOL,
pub Creation: windows_core::BOOL,
pub Reserved: u32,
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct DSMCC_ELEMENT {
pub pid: u16,
pub bComponentTag: u8,
pub dwCarouselId: u32,
pub dwTransactionId: u32,
pub pNext: *mut DSMCC_ELEMENT,
}
impl Default for DSMCC_ELEMENT {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct DSMCC_FILTER_OPTIONS {
pub fSpecifyProtocol: windows_core::BOOL,
pub Protocol: u8,
pub fSpecifyType: windows_core::BOOL,
pub Type: u8,
pub fSpecifyMessageId: windows_core::BOOL,
pub MessageId: u16,
pub fSpecifyTransactionId: windows_core::BOOL,
pub fUseTrxIdMessageIdMask: windows_core::BOOL,
pub TransactionId: u32,
pub fSpecifyModuleVersion: windows_core::BOOL,
pub ModuleVersion: u8,
pub fSpecifyBlockNumber: windows_core::BOOL,
pub BlockNumber: u16,
pub fGetModuleCall: windows_core::BOOL,
pub NumberOfBlocksInModule: u16,
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct DSMCC_SECTION {
pub TableId: u8,
pub Header: DSMCC_SECTION_0,
pub TableIdExtension: u16,
pub Version: DSMCC_SECTION_1,
pub SectionNumber: u8,
pub LastSectionNumber: u8,
pub ProtocolDiscriminator: u8,
pub DsmccType: u8,
pub MessageId: u16,
pub TransactionId: u32,
pub Reserved: u8,
pub AdaptationLength: u8,
pub MessageLength: u16,
pub RemainingData: [u8; 1],
}
impl Default for DSMCC_SECTION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub union DSMCC_SECTION_0 {
pub S: MPEG_HEADER_BITS_MIDL,
pub W: u16,
}
impl Default for DSMCC_SECTION_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union DSMCC_SECTION_1 {
pub S: MPEG_HEADER_VERSION_BITS_MIDL,
pub B: u8,
}
impl Default for DSMCC_SECTION_1 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const DTFilter: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4f2_0049_4e2b_98fb_9537f6ce516d);
pub const DTV_CardStatus_Error: u32 = 2u32;
pub const DTV_CardStatus_FirmwareDownload: u32 = 3u32;
pub const DTV_CardStatus_Inserted: u32 = 0u32;
pub const DTV_CardStatus_Removed: u32 = 1u32;
pub const DTV_Entitlement_CanDecrypt: u32 = 0u32;
pub const DTV_Entitlement_NotEntitled: u32 = 1u32;
pub const DTV_Entitlement_TechnicalFailure: u32 = 2u32;
pub const DTV_MMIMessage_Close: u32 = 1u32;
pub const DTV_MMIMessage_Open: u32 = 0u32;
pub const DVBCLocator: windows_core::GUID = windows_core::GUID::from_u128(0xc531d9fd_9685_4028_8b68_6e1232079f1e);
pub const DVBSLocator: windows_core::GUID = windows_core::GUID::from_u128(0x1df7d126_4050_47f0_a7cf_4c4ca9241333);
pub const DVBSTuningSpace: windows_core::GUID = windows_core::GUID::from_u128(0xb64016f3_c9a2_4066_96f0_bd9563314726);
pub const DVBS_SCAN_TABLE_MAX_SIZE: u32 = 400u32;
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct DVBScramblingControlSpanningEvent {
pub ulPID: u32,
pub fScrambled: windows_core::BOOL,
}
pub const DVBTLocator: windows_core::GUID = windows_core::GUID::from_u128(0x9cd64701_bdf3_4d14_8e03_f12983d86664);
pub const DVBTLocator2: windows_core::GUID = windows_core::GUID::from_u128(0xefe3fa02_45d7_4920_be96_53fa7f35b0e6);
pub const DVBTuneRequest: windows_core::GUID = windows_core::GUID::from_u128(0x15d6504a_5494_499c_886c_973c9e53b9f1);
pub const DVBTuningSpace: windows_core::GUID = windows_core::GUID::from_u128(0xc6b14b32_76aa_4a86_a7ac_5c79aaf58da7);
pub const DVB_BAT_PID: u32 = 17u32;
pub const DVB_BAT_TID: u32 = 74u32;
pub const DVB_CABLE_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0xdc0c0fe7_0485_4266_b93f_68fbf80ed834);
pub const DVB_DIT_PID: u32 = 30u32;
pub const DVB_DIT_TID: u32 = 126u32;
pub const DVB_EIT_ACTUAL_TID: u32 = 78u32;
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct DVB_EIT_FILTER_OPTIONS {
pub fSpecifySegment: windows_core::BOOL,
pub bSegment: u8,
}
pub const DVB_EIT_OTHER_TID: u32 = 79u32;
pub const DVB_EIT_PID: u32 = 18u32;
pub const DVB_NIT_ACTUAL_TID: u32 = 64u32;
pub const DVB_NIT_OTHER_TID: u32 = 65u32;
pub const DVB_NIT_PID: u32 = 16u32;
pub const DVB_RST_PID: u32 = 19u32;
pub const DVB_RST_TID: u32 = 113u32;
pub const DVB_SATELLITE_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0xfa4b375a_45b4_4d45_8440_263957b11623);
pub const DVB_SDT_ACTUAL_TID: u32 = 66u32;
pub const DVB_SDT_OTHER_TID: u32 = 70u32;
pub const DVB_SDT_PID: u32 = 17u32;
pub const DVB_SIT_PID: u32 = 31u32;
pub const DVB_SIT_TID: u32 = 127u32;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct DVB_STRCONV_MODE(pub i32);
pub const DVB_ST_PID_16: u32 = 16u32;
pub const DVB_ST_PID_17: u32 = 17u32;
pub const DVB_ST_PID_18: u32 = 18u32;
pub const DVB_ST_PID_19: u32 = 19u32;
pub const DVB_ST_PID_20: u32 = 20u32;
pub const DVB_ST_TID: u32 = 114u32;
pub const DVB_TDT_PID: u32 = 20u32;
pub const DVB_TDT_TID: u32 = 112u32;
pub const DVB_TERRESTRIAL_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0x216c62df_6d7f_4e9a_8571_05f14edb766a);
pub const DVB_TOT_PID: u32 = 20u32;
pub const DVB_TOT_TID: u32 = 115u32;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct DVDFilterState(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct DVDMenuIDConstants(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct DVDSPExt(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct DVDTextStringType(pub i32);
#[repr(C)]
#[cfg(feature = "Win32_Media_MediaFoundation")]
#[derive(Clone, Debug, Default, PartialEq)]
pub struct DVR_STREAM_DESC {
pub Version: u32,
pub StreamId: u32,
pub Default: windows_core::BOOL,
pub Creation: windows_core::BOOL,
pub Reserved: u32,
pub guidSubMediaType: windows_core::GUID,
pub guidFormatType: windows_core::GUID,
pub MediaType: super::super::MediaFoundation::AM_MEDIA_TYPE,
}
pub const DigitalCableLocator: windows_core::GUID = windows_core::GUID::from_u128(0x03c06416_d127_407a_ab4c_fdd279abbe5d);
pub const DigitalCableTuneRequest: windows_core::GUID = windows_core::GUID::from_u128(0x26ec0b63_aa90_458a_8df4_5659f2c8a18a);
pub const DigitalCableTuningSpace: windows_core::GUID = windows_core::GUID::from_u128(0xd9bb4cee_b87a_47f1_ac92_b08d9c7813fc);
pub const DigitalLocator: windows_core::GUID = windows_core::GUID::from_u128(0x6e50cc0d_c19b_4bf6_810b_5bd60761f5cc);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct DisplaySizeList(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct DownResEventParam(pub i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct DualMonoInfo {
pub LangID1: u16,
pub LangID2: u16,
pub lISOLangCode1: i32,
pub lISOLangCode2: i32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct DvbParentalRatingDescriptor {
pub ulNumParams: u32,
pub pParams: [DvbParentalRatingParam; 1],
}
impl Default for DvbParentalRatingDescriptor {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct DvbParentalRatingParam {
pub szCountryCode: [i8; 4],
pub bRating: u8,
}
impl Default for DvbParentalRatingParam {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const ECHOSTAR_SATELLITE_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0xc4f6b31b_c6bf_4759_886f_a7386dca27a0);
pub const ENCDEC_CPEVENT: EncDecEvents = EncDecEvents(0i32);
pub const ENCDEC_RECORDING_STATUS: EncDecEvents = EncDecEvents(1i32);
pub const ESEventFactory: windows_core::GUID = windows_core::GUID::from_u128(0x8e8a07da_71f8_40c1_a929_5e3a868ac2c6);
pub const ESEventService: windows_core::GUID = windows_core::GUID::from_u128(0xc20447fc_ec60_475e_813f_d2b0a6decefe);
pub const ETFilter: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4f1_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_ARIBcontentSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x3a954083_93d0_463e_90b2_0742c496edf0);
pub const EVENTID_AudioDescriptorSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x107bd41c_a6da_4691_8369_11b2cdaa288e);
pub const EVENTID_AudioTypeSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x501cbfbe_b849_42ce_9be9_3db869fb82b3);
pub const EVENTID_BDAConditionalAccessTAG: windows_core::GUID = windows_core::GUID::from_u128(0xefc3a459_ae8b_4b4a_8fe9_79a0d097f3ea);
pub const EVENTID_BDAEventingServicePendingEvent: windows_core::GUID = windows_core::GUID::from_u128(0x5ca51711_5ddc_41a6_9430_e41b8b3bbc5b);
pub const EVENTID_BDA_CASBroadcastMMI: windows_core::GUID = windows_core::GUID::from_u128(0x676876f0_1132_404c_a7ca_e72069a9d54f);
pub const EVENTID_BDA_CASCloseMMI: windows_core::GUID = windows_core::GUID::from_u128(0x5d0f550f_de2e_479d_8345_ec0e9557e8a2);
pub const EVENTID_BDA_CASOpenMMI: windows_core::GUID = windows_core::GUID::from_u128(0x85dac915_e593_410d_8471_d6812105f28e);
pub const EVENTID_BDA_CASReleaseTuner: windows_core::GUID = windows_core::GUID::from_u128(0x20c1a16b_441f_49a5_bb5c_e9a04495c6c1);
pub const EVENTID_BDA_CASRequestTuner: windows_core::GUID = windows_core::GUID::from_u128(0xcf39a9d8_f5d3_4685_be57_ed81dba46b27);
pub const EVENTID_BDA_DiseqCResponseAvailable: windows_core::GUID = windows_core::GUID::from_u128(0xefa628f8_1f2c_4b67_9ea5_acf6fa9a1f36);
pub const EVENTID_BDA_EncoderSignalLock: windows_core::GUID = windows_core::GUID::from_u128(0x5ec90eb9_39fa_4cfc_b93f_00bb11077f5e);
pub const EVENTID_BDA_FdcStatus: windows_core::GUID = windows_core::GUID::from_u128(0x05f25366_d0eb_43d2_bc3c_682b863df142);
pub const EVENTID_BDA_FdcTableSection: windows_core::GUID = windows_core::GUID::from_u128(0x6a0cd757_4ce3_4e5b_9444_7187b87152c5);
pub const EVENTID_BDA_GPNVValueUpdate: windows_core::GUID = windows_core::GUID::from_u128(0xff75c68c_f416_4e7e_bf17_6d55c5df1575);
pub const EVENTID_BDA_GuideDataAvailable: windows_core::GUID = windows_core::GUID::from_u128(0x98db717a_478a_4cd4_92d0_95f66b89e5b1);
pub const EVENTID_BDA_GuideDataError: windows_core::GUID = windows_core::GUID::from_u128(0xac33c448_6f73_4fd7_b341_594c360d8d74);
pub const EVENTID_BDA_GuideServiceInformationUpdated: windows_core::GUID = windows_core::GUID::from_u128(0xa1c3ea2b_175f_4458_b735_507d22db23a6);
pub const EVENTID_BDA_IsdbCASResponse: windows_core::GUID = windows_core::GUID::from_u128(0xd4cb1966_41bc_4ced_9a20_fdceac78f70d);
pub const EVENTID_BDA_LbigsCloseConnectionHandle: windows_core::GUID = windows_core::GUID::from_u128(0xc2f08b99_65ef_4314_9671_e99d4cce0bae);
pub const EVENTID_BDA_LbigsOpenConnection: windows_core::GUID = windows_core::GUID::from_u128(0x356207b2_6f31_4eb0_a271_b3fa6bb7680f);
pub const EVENTID_BDA_LbigsSendData: windows_core::GUID = windows_core::GUID::from_u128(0x1123277b_f1c6_4154_8b0d_48e6157059aa);
pub const EVENTID_BDA_RatingPinReset: windows_core::GUID = windows_core::GUID::from_u128(0xc6e048c0_c574_4c26_bcda_2f4d35eb5e85);
pub const EVENTID_BDA_TransprtStreamSelectorInfo: windows_core::GUID = windows_core::GUID::from_u128(0xc40f9f85_09d0_489c_9e9c_0abbb56951b0);
pub const EVENTID_BDA_TunerNoSignal: windows_core::GUID = windows_core::GUID::from_u128(0xe29b382b_1edd_4930_bc46_682fd72d2dfb);
pub const EVENTID_BDA_TunerSignalLock: windows_core::GUID = windows_core::GUID::from_u128(0x1872e740_f573_429b_a00e_d9c1e408af09);
pub const EVENTID_BDA_UpdateDrmStatus: windows_core::GUID = windows_core::GUID::from_u128(0x65a6f681_1462_473b_88ce_cb731427bdb5);
pub const EVENTID_BDA_UpdateScanState: windows_core::GUID = windows_core::GUID::from_u128(0x55702b50_7b49_42b8_a82f_4afb691b0628);
pub const EVENTID_CADenialCountChanged: windows_core::GUID = windows_core::GUID::from_u128(0x2a65c528_2249_4070_ac16_00390cdfb2dd);
pub const EVENTID_CASFailureSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0xead831ae_5529_4d1f_afce_0d8cd1257d30);
pub const EVENTID_CSDescriptorSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0xefe779d9_97f0_4786_800d_95cf505ddc66);
pub const EVENTID_CandidatePostTuneData: windows_core::GUID = windows_core::GUID::from_u128(0x9f02d3d0_9f06_4369_9f1e_3ad6ca19807e);
pub const EVENTID_CardStatusChanged: windows_core::GUID = windows_core::GUID::from_u128(0xa265faea_f874_4b38_9ff7_c53d02969996);
pub const EVENTID_ChannelChangeSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x9067c5e5_4c5c_4205_86c8_7afe20fe1efa);
pub const EVENTID_ChannelInfoSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x41f36d80_4132_4cc2_b121_01a43219d81b);
pub const EVENTID_ChannelTypeSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x72ab1d51_87d2_489b_ba11_0e08dc210243);
pub const EVENTID_CtxADescriptorSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x3ab4a2e6_4247_4b34_896c_30afa5d21c24);
pub const EVENTID_DFNWithNoActualAVData: windows_core::GUID = windows_core::GUID::from_u128(0xf5689ffe_55f9_4bb3_96be_ae971c63bae0);
pub const EVENTID_DRMParingStatusChanged: windows_core::GUID = windows_core::GUID::from_u128(0x000906f5_f0d1_41d6_a7df_4028697669f6);
pub const EVENTID_DRMParingStepComplete: windows_core::GUID = windows_core::GUID::from_u128(0x5b2ebf78_b752_4420_b41e_a472dc95828e);
pub const EVENTID_DTFilterCOPPBlock: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4ea_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_DTFilterCOPPUnblock: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4e8_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_DTFilterDataFormatFailure: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4ed_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_DTFilterDataFormatOK: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4ec_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_DTFilterRatingChange: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4e2_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_DTFilterRatingsBlock: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4e3_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_DTFilterRatingsUnblock: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4e4_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_DTFilterXDSPacket: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4e5_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_DVBScramblingControlSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x4bd4e1c4_90a1_4109_8236_27f00e7dcc5b);
pub const EVENTID_DemultiplexerFilterDiscontinuity: windows_core::GUID = windows_core::GUID::from_u128(0x16155770_aed5_475c_bb98_95a33070df0c);
pub const EVENTID_DualMonoSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0xa9a29b56_a84b_488c_89d5_0d4e7657c8ce);
pub const EVENTID_DvbParentalRatingDescriptor: windows_core::GUID = windows_core::GUID::from_u128(0x2a67a58d_eca5_4eac_abcb_e734d3776d0a);
pub const EVENTID_EASMessageReceived: windows_core::GUID = windows_core::GUID::from_u128(0xd10df9d5_c261_4b85_9e8a_517b3299cab2);
pub const EVENTID_ETDTFilterLicenseFailure: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4ef_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_ETDTFilterLicenseOK: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4ee_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_ETFilterCopyNever: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4f0_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_ETFilterCopyOnce: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4eb_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_ETFilterEncryptionOff: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4e7_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_ETFilterEncryptionOn: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4e6_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_EmmMessageSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x6bf00268_4f7e_4294_aa87_e9e953e43f14);
pub const EVENTID_EncDecFilterError: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4e9_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_EncDecFilterEvent: windows_core::GUID = windows_core::GUID::from_u128(0x4a1b465b_0fb9_4159_afbd_e33006a0f9f4);
pub const EVENTID_EntitlementChanged: windows_core::GUID = windows_core::GUID::from_u128(0x9071ad5d_2359_4c95_8694_afa81d70bfd5);
pub const EVENTID_FormatNotSupportedEvent: windows_core::GUID = windows_core::GUID::from_u128(0x24b2280a_b2aa_4777_bf65_63f35e7b024a);
pub const EVENTID_LanguageSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0xe292666d_9c02_448d_aa8d_781a93fdc395);
pub const EVENTID_MMIMessage: windows_core::GUID = windows_core::GUID::from_u128(0x052c29af_09a4_4b93_890f_bd6a348968a4);
pub const EVENTID_NewSignalAcquired: windows_core::GUID = windows_core::GUID::from_u128(0xc87ec52d_cd18_404a_a076_c02a273d3de7);
pub const EVENTID_PBDAParentalControlEvent: windows_core::GUID = windows_core::GUID::from_u128(0xf947aa85_fb52_48e8_b9c5_e1e1f411a51a);
pub const EVENTID_PIDListSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x47fc8f65_e2bb_4634_9cef_fdbfe6261d5c);
pub const EVENTID_PSITable: windows_core::GUID = windows_core::GUID::from_u128(0x1b9c3703_d447_4e16_97bb_01799fc031ed);
pub const EVENTID_RRTSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0xf6cfc8f4_da93_4f2f_bff8_ba1ee6fca3a2);
pub const EVENTID_SBE2RecControlStarted: windows_core::GUID = windows_core::GUID::from_u128(0x8966a89e_f83e_4c0e_bc3b_bfa7649e04cb);
pub const EVENTID_SBE2RecControlStopped: windows_core::GUID = windows_core::GUID::from_u128(0x454b1ec8_0c9b_4caa_b1a1_1e7a2666f6c3);
pub const EVENTID_STBChannelNumber: windows_core::GUID = windows_core::GUID::from_u128(0x17c4d730_d0f0_413a_8c99_500469de35ad);
pub const EVENTID_ServiceTerminated: windows_core::GUID = windows_core::GUID::from_u128(0x0a1d591c_e0d2_4f8e_8960_2335bef45ccb);
pub const EVENTID_SignalAndServiceStatusSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x8068c5cb_3c04_492b_b47d_0308820dce51);
pub const EVENTID_SignalStatusChanged: windows_core::GUID = windows_core::GUID::from_u128(0x6d9cfaf2_702d_4b01_8dff_6892ad20d191);
pub const EVENTID_StreamIDSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0xcaf1ab68_e153_4d41_a6b3_a7c998db75ee);
pub const EVENTID_StreamTypeSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x82af2ebc_30a6_4264_a80b_ad2e1372ac60);
pub const EVENTID_SubtitleSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x5dcec048_d0b9_4163_872c_4f32223be88a);
pub const EVENTID_TeletextSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x9599d950_5f33_4617_af7c_1e54b510daa3);
pub const EVENTID_TuneFailureEvent: windows_core::GUID = windows_core::GUID::from_u128(0xd97287b2_2dfd_436a_9485_99d7d4ab5a69);
pub const EVENTID_TuneFailureSpanningEvent: windows_core::GUID = windows_core::GUID::from_u128(0x6f8aa455_5ee1_48ab_a27c_4c8d70b9aeba);
pub const EVENTID_TuningChanged: windows_core::GUID = windows_core::GUID::from_u128(0x9d7e6235_4b7d_425d_a6d1_d717c33b9c4c);
pub const EVENTID_TuningChanging: windows_core::GUID = windows_core::GUID::from_u128(0x83183c03_c09e_45c4_a719_807a94952bf9);
pub const EVENTID_XDSCodecDuplicateXDSRating: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4df_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_XDSCodecNewXDSPacket: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4e1_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTID_XDSCodecNewXDSRating: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4e0_0049_4e2b_98fb_9537f6ce516d);
pub const EVENTTYPE_CASDescrambleFailureEvent: windows_core::GUID = windows_core::GUID::from_u128(0xb2127d42_7be5_4f4b_9130_6679899f4f4b);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct EnTag_Mode(pub i32);
pub const EnTag_Once: EnTag_Mode = EnTag_Mode(1i32);
pub const EnTag_Remove: EnTag_Mode = EnTag_Mode(0i32);
pub const EnTag_Repeat: EnTag_Mode = EnTag_Mode(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct EnTvRat_CAE_TV(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct EnTvRat_CAF_TV(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct EnTvRat_GenericLevel(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct EnTvRat_MPAA(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct EnTvRat_System(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct EnTvRat_US_TV(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct EncDecEvents(pub i32);
pub const EvalRat: windows_core::GUID = windows_core::GUID::from_u128(0xc5c5c5f1_3abc_11d6_b25b_00c04fa0c026);
pub const FORMATNOTSUPPORTED_CLEAR: FormatNotSupportedEvents = FormatNotSupportedEvents(0i32);
pub const FORMATNOTSUPPORTED_NOTSUPPORTED: FormatNotSupportedEvents = FormatNotSupportedEvents(1i32);
pub const FORMATTYPE_CPFilters_Processed: windows_core::GUID = windows_core::GUID::from_u128(0x6739b36f_1d5f_4ac2_8192_28bb0e73d16a);
pub const FORMATTYPE_ETDTFilter_Tagged: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4d1_0049_4e2b_98fb_9537f6ce516d);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct FormatNotSupportedEvents(pub i32);
pub const FrameMode: PositionModeList = PositionModeList(0i32);
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IATSCChannelTuneRequest, IATSCChannelTuneRequest_Vtbl, 0x0369b4e1_45b6_11d3_b650_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IATSCChannelTuneRequest {
type Target = IChannelTuneRequest;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IATSCChannelTuneRequest, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuneRequest, IChannelTuneRequest);
#[cfg(feature = "Win32_System_Com")]
impl IATSCChannelTuneRequest {
pub unsafe fn MinorChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MinorChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMinorChannel(&self, minorchannel: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMinorChannel)(windows_core::Interface::as_raw(self), minorchannel).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IATSCChannelTuneRequest_Vtbl {
pub base__: IChannelTuneRequest_Vtbl,
pub MinorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMinorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IATSCChannelTuneRequest_Impl: IChannelTuneRequest_Impl {
fn MinorChannel(&self) -> windows_core::Result<i32>;
fn SetMinorChannel(&self, minorchannel: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IATSCChannelTuneRequest_Vtbl {
pub const fn new<Identity: IATSCChannelTuneRequest_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn MinorChannel<Identity: IATSCChannelTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, minorchannel: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSCChannelTuneRequest_Impl::MinorChannel(this) {
Ok(ok__) => {
minorchannel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMinorChannel<Identity: IATSCChannelTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, minorchannel: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSCChannelTuneRequest_Impl::SetMinorChannel(this, core::mem::transmute_copy(&minorchannel)).into()
}
}
Self {
base__: IChannelTuneRequest_Vtbl::new::<Identity, OFFSET>(),
MinorChannel: MinorChannel::<Identity, OFFSET>,
SetMinorChannel: SetMinorChannel::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IATSCChannelTuneRequest as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuneRequest as windows_core::Interface>::IID || iid == &<IChannelTuneRequest as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IATSCChannelTuneRequest {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IATSCComponentType, IATSCComponentType_Vtbl, 0xfc189e4d_7bd4_4125_b3b3_3a76a332cc96);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IATSCComponentType {
type Target = IMPEG2ComponentType;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IATSCComponentType, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IComponentType, ILanguageComponentType, IMPEG2ComponentType);
#[cfg(feature = "Win32_System_Com")]
impl IATSCComponentType {
pub unsafe fn Flags(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Flags)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetFlags(&self, flags: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetFlags)(windows_core::Interface::as_raw(self), flags).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IATSCComponentType_Vtbl {
pub base__: IMPEG2ComponentType_Vtbl,
pub Flags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetFlags: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IATSCComponentType_Impl: IMPEG2ComponentType_Impl {
fn Flags(&self) -> windows_core::Result<i32>;
fn SetFlags(&self, flags: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IATSCComponentType_Vtbl {
pub const fn new<Identity: IATSCComponentType_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Flags<Identity: IATSCComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, flags: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSCComponentType_Impl::Flags(this) {
Ok(ok__) => {
flags.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetFlags<Identity: IATSCComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, flags: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSCComponentType_Impl::SetFlags(this, core::mem::transmute_copy(&flags)).into()
}
}
Self { base__: IMPEG2ComponentType_Vtbl::new::<Identity, OFFSET>(), Flags: Flags::<Identity, OFFSET>, SetFlags: SetFlags::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IATSCComponentType as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IComponentType as windows_core::Interface>::IID || iid == &<ILanguageComponentType as windows_core::Interface>::IID || iid == &<IMPEG2ComponentType as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IATSCComponentType {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IATSCLocator, IATSCLocator_Vtbl, 0xbf8d986f_8c2b_4131_94d7_4d3d9fcc21ef);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IATSCLocator {
type Target = IDigitalLocator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IATSCLocator, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator, IDigitalLocator);
#[cfg(feature = "Win32_System_Com")]
impl IATSCLocator {
pub unsafe fn PhysicalChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PhysicalChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetPhysicalChannel(&self, physicalchannel: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetPhysicalChannel)(windows_core::Interface::as_raw(self), physicalchannel).ok() }
}
pub unsafe fn TSID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TSID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetTSID(&self, tsid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetTSID)(windows_core::Interface::as_raw(self), tsid).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IATSCLocator_Vtbl {
pub base__: IDigitalLocator_Vtbl,
pub PhysicalChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetPhysicalChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub TSID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetTSID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IATSCLocator_Impl: IDigitalLocator_Impl {
fn PhysicalChannel(&self) -> windows_core::Result<i32>;
fn SetPhysicalChannel(&self, physicalchannel: i32) -> windows_core::Result<()>;
fn TSID(&self) -> windows_core::Result<i32>;
fn SetTSID(&self, tsid: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IATSCLocator_Vtbl {
pub const fn new<Identity: IATSCLocator_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn PhysicalChannel<Identity: IATSCLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, physicalchannel: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSCLocator_Impl::PhysicalChannel(this) {
Ok(ok__) => {
physicalchannel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPhysicalChannel<Identity: IATSCLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, physicalchannel: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSCLocator_Impl::SetPhysicalChannel(this, core::mem::transmute_copy(&physicalchannel)).into()
}
}
unsafe extern "system" fn TSID<Identity: IATSCLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tsid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSCLocator_Impl::TSID(this) {
Ok(ok__) => {
tsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTSID<Identity: IATSCLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tsid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSCLocator_Impl::SetTSID(this, core::mem::transmute_copy(&tsid)).into()
}
}
Self {
base__: IDigitalLocator_Vtbl::new::<Identity, OFFSET>(),
PhysicalChannel: PhysicalChannel::<Identity, OFFSET>,
SetPhysicalChannel: SetPhysicalChannel::<Identity, OFFSET>,
TSID: TSID::<Identity, OFFSET>,
SetTSID: SetTSID::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IATSCLocator as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID || iid == &<IDigitalLocator as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IATSCLocator {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IATSCLocator2, IATSCLocator2_Vtbl, 0x612aa885_66cf_4090_ba0a_566f5312e4ca);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IATSCLocator2 {
type Target = IATSCLocator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IATSCLocator2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator, IDigitalLocator, IATSCLocator);
#[cfg(feature = "Win32_System_Com")]
impl IATSCLocator2 {
pub unsafe fn ProgramNumber(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ProgramNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetProgramNumber(&self, programnumber: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetProgramNumber)(windows_core::Interface::as_raw(self), programnumber).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IATSCLocator2_Vtbl {
pub base__: IATSCLocator_Vtbl,
pub ProgramNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetProgramNumber: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IATSCLocator2_Impl: IATSCLocator_Impl {
fn ProgramNumber(&self) -> windows_core::Result<i32>;
fn SetProgramNumber(&self, programnumber: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IATSCLocator2_Vtbl {
pub const fn new<Identity: IATSCLocator2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn ProgramNumber<Identity: IATSCLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, programnumber: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSCLocator2_Impl::ProgramNumber(this) {
Ok(ok__) => {
programnumber.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetProgramNumber<Identity: IATSCLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, programnumber: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSCLocator2_Impl::SetProgramNumber(this, core::mem::transmute_copy(&programnumber)).into()
}
}
Self {
base__: IATSCLocator_Vtbl::new::<Identity, OFFSET>(),
ProgramNumber: ProgramNumber::<Identity, OFFSET>,
SetProgramNumber: SetProgramNumber::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IATSCLocator2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID || iid == &<IDigitalLocator as windows_core::Interface>::IID || iid == &<IATSCLocator as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IATSCLocator2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IATSCTuningSpace, IATSCTuningSpace_Vtbl, 0x0369b4e2_45b6_11d3_b650_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IATSCTuningSpace {
type Target = IAnalogTVTuningSpace;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IATSCTuningSpace, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuningSpace, IAnalogTVTuningSpace);
#[cfg(feature = "Win32_System_Com")]
impl IATSCTuningSpace {
pub unsafe fn MinMinorChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MinMinorChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMinMinorChannel(&self, newminminorchannelval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMinMinorChannel)(windows_core::Interface::as_raw(self), newminminorchannelval).ok() }
}
pub unsafe fn MaxMinorChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MaxMinorChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMaxMinorChannel(&self, newmaxminorchannelval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMaxMinorChannel)(windows_core::Interface::as_raw(self), newmaxminorchannelval).ok() }
}
pub unsafe fn MinPhysicalChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MinPhysicalChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMinPhysicalChannel(&self, newminphysicalchannelval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMinPhysicalChannel)(windows_core::Interface::as_raw(self), newminphysicalchannelval).ok() }
}
pub unsafe fn MaxPhysicalChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MaxPhysicalChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMaxPhysicalChannel(&self, newmaxphysicalchannelval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMaxPhysicalChannel)(windows_core::Interface::as_raw(self), newmaxphysicalchannelval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IATSCTuningSpace_Vtbl {
pub base__: IAnalogTVTuningSpace_Vtbl,
pub MinMinorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMinMinorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub MaxMinorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMaxMinorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub MinPhysicalChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMinPhysicalChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub MaxPhysicalChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMaxPhysicalChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IATSCTuningSpace_Impl: IAnalogTVTuningSpace_Impl {
fn MinMinorChannel(&self) -> windows_core::Result<i32>;
fn SetMinMinorChannel(&self, newminminorchannelval: i32) -> windows_core::Result<()>;
fn MaxMinorChannel(&self) -> windows_core::Result<i32>;
fn SetMaxMinorChannel(&self, newmaxminorchannelval: i32) -> windows_core::Result<()>;
fn MinPhysicalChannel(&self) -> windows_core::Result<i32>;
fn SetMinPhysicalChannel(&self, newminphysicalchannelval: i32) -> windows_core::Result<()>;
fn MaxPhysicalChannel(&self) -> windows_core::Result<i32>;
fn SetMaxPhysicalChannel(&self, newmaxphysicalchannelval: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IATSCTuningSpace_Vtbl {
pub const fn new<Identity: IATSCTuningSpace_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn MinMinorChannel<Identity: IATSCTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, minminorchannelval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSCTuningSpace_Impl::MinMinorChannel(this) {
Ok(ok__) => {
minminorchannelval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMinMinorChannel<Identity: IATSCTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newminminorchannelval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSCTuningSpace_Impl::SetMinMinorChannel(this, core::mem::transmute_copy(&newminminorchannelval)).into()
}
}
unsafe extern "system" fn MaxMinorChannel<Identity: IATSCTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, maxminorchannelval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSCTuningSpace_Impl::MaxMinorChannel(this) {
Ok(ok__) => {
maxminorchannelval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMaxMinorChannel<Identity: IATSCTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newmaxminorchannelval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSCTuningSpace_Impl::SetMaxMinorChannel(this, core::mem::transmute_copy(&newmaxminorchannelval)).into()
}
}
unsafe extern "system" fn MinPhysicalChannel<Identity: IATSCTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, minphysicalchannelval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSCTuningSpace_Impl::MinPhysicalChannel(this) {
Ok(ok__) => {
minphysicalchannelval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMinPhysicalChannel<Identity: IATSCTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newminphysicalchannelval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSCTuningSpace_Impl::SetMinPhysicalChannel(this, core::mem::transmute_copy(&newminphysicalchannelval)).into()
}
}
unsafe extern "system" fn MaxPhysicalChannel<Identity: IATSCTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, maxphysicalchannelval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSCTuningSpace_Impl::MaxPhysicalChannel(this) {
Ok(ok__) => {
maxphysicalchannelval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMaxPhysicalChannel<Identity: IATSCTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newmaxphysicalchannelval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSCTuningSpace_Impl::SetMaxPhysicalChannel(this, core::mem::transmute_copy(&newmaxphysicalchannelval)).into()
}
}
Self {
base__: IAnalogTVTuningSpace_Vtbl::new::<Identity, OFFSET>(),
MinMinorChannel: MinMinorChannel::<Identity, OFFSET>,
SetMinMinorChannel: SetMinMinorChannel::<Identity, OFFSET>,
MaxMinorChannel: MaxMinorChannel::<Identity, OFFSET>,
SetMaxMinorChannel: SetMaxMinorChannel::<Identity, OFFSET>,
MinPhysicalChannel: MinPhysicalChannel::<Identity, OFFSET>,
SetMinPhysicalChannel: SetMinPhysicalChannel::<Identity, OFFSET>,
MaxPhysicalChannel: MaxPhysicalChannel::<Identity, OFFSET>,
SetMaxPhysicalChannel: SetMaxPhysicalChannel::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IATSCTuningSpace as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuningSpace as windows_core::Interface>::IID || iid == &<IAnalogTVTuningSpace as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IATSCTuningSpace {}
windows_core::imp::define_interface!(IATSC_EIT, IATSC_EIT_Vtbl, 0xd7c212d7_76a2_4b4b_aa56_846879a80096);
windows_core::imp::interface_hierarchy!(IATSC_EIT, windows_core::IUnknown);
impl IATSC_EIT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSourceId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSourceId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetProtocolVersion(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProtocolVersion)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordEventId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordEventId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordStartTime(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_DATE_AND_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordStartTime)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordEtmLocation(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordEtmLocation)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDuration(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDuration)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTitleText(&self, dwrecordindex: u32, pdwlength: *mut u32, pptext: *mut *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordTitleText)(windows_core::Interface::as_raw(self), dwrecordindex, pdwlength as _, pptext as _).ok() }
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IATSC_EIT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSourceId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetProtocolVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordEventId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordStartTime: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT,
pub GetRecordEtmLocation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordDuration: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut MPEG_TIME) -> windows_core::HRESULT,
pub GetRecordTitleText: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32, *mut *mut u8) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IATSC_EIT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetSourceId(&self) -> windows_core::Result<u16>;
fn GetProtocolVersion(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordEventId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordStartTime(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_DATE_AND_TIME>;
fn GetRecordEtmLocation(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordDuration(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_TIME>;
fn GetRecordTitleText(&self, dwrecordindex: u32, pdwlength: *mut u32, pptext: *mut *mut u8) -> windows_core::Result<()>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
}
impl IATSC_EIT_Vtbl {
pub const fn new<Identity: IATSC_EIT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_EIT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_EIT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSourceId<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_EIT_Impl::GetSourceId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetProtocolVersion<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_EIT_Impl::GetProtocolVersion(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_EIT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordEventId<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_EIT_Impl::GetRecordEventId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordStartTime<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pmdtval: *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_EIT_Impl::GetRecordStartTime(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pmdtval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordEtmLocation<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_EIT_Impl::GetRecordEtmLocation(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDuration<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pmdval: *mut MPEG_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_EIT_Impl::GetRecordDuration(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pmdval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTitleText<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwlength: *mut u32, pptext: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_EIT_Impl::GetRecordTitleText(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&pdwlength), core::mem::transmute_copy(&pptext)).into()
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_EIT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_EIT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IATSC_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_EIT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetSourceId: GetSourceId::<Identity, OFFSET>,
GetProtocolVersion: GetProtocolVersion::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordEventId: GetRecordEventId::<Identity, OFFSET>,
GetRecordStartTime: GetRecordStartTime::<Identity, OFFSET>,
GetRecordEtmLocation: GetRecordEtmLocation::<Identity, OFFSET>,
GetRecordDuration: GetRecordDuration::<Identity, OFFSET>,
GetRecordTitleText: GetRecordTitleText::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IATSC_EIT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IATSC_EIT {}
windows_core::imp::define_interface!(IATSC_ETT, IATSC_ETT_Vtbl, 0x5a142cc9_b8cf_4a86_a040_e9cadf3ef3e7);
windows_core::imp::interface_hierarchy!(IATSC_ETT, windows_core::IUnknown);
impl IATSC_ETT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetProtocolVersion(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProtocolVersion)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetEtmId(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEtmId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetExtendedMessageText(&self, pdwlength: *mut u32, pptext: *mut *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetExtendedMessageText)(windows_core::Interface::as_raw(self), pdwlength as _, pptext as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IATSC_ETT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetProtocolVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetEtmId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExtendedMessageText: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut *mut u8) -> windows_core::HRESULT,
}
pub trait IATSC_ETT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetProtocolVersion(&self) -> windows_core::Result<u8>;
fn GetEtmId(&self) -> windows_core::Result<u32>;
fn GetExtendedMessageText(&self, pdwlength: *mut u32, pptext: *mut *mut u8) -> windows_core::Result<()>;
}
impl IATSC_ETT_Vtbl {
pub const fn new<Identity: IATSC_ETT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IATSC_ETT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_ETT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IATSC_ETT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_ETT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetProtocolVersion<Identity: IATSC_ETT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_ETT_Impl::GetProtocolVersion(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEtmId<Identity: IATSC_ETT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_ETT_Impl::GetEtmId(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetExtendedMessageText<Identity: IATSC_ETT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwlength: *mut u32, pptext: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_ETT_Impl::GetExtendedMessageText(this, core::mem::transmute_copy(&pdwlength), core::mem::transmute_copy(&pptext)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetProtocolVersion: GetProtocolVersion::<Identity, OFFSET>,
GetEtmId: GetEtmId::<Identity, OFFSET>,
GetExtendedMessageText: GetExtendedMessageText::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IATSC_ETT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IATSC_ETT {}
windows_core::imp::define_interface!(IATSC_MGT, IATSC_MGT_Vtbl, 0x8877dabd_c137_4073_97e3_779407a5d87a);
windows_core::imp::interface_hierarchy!(IATSC_MGT, windows_core::IUnknown);
impl IATSC_MGT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetProtocolVersion(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProtocolVersion)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordType(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordType)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTypePid(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordTypePid)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordVersionNumber(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordVersionNumber)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetCountOfTableDescriptors(&self, pdwval: *const u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), pdwval).ok() }
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IATSC_MGT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetProtocolVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordType: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordTypePid: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *const u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IATSC_MGT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetProtocolVersion(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordType(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordTypePid(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordVersionNumber(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetCountOfTableDescriptors(&self, pdwval: *const u32) -> windows_core::Result<()>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
}
impl IATSC_MGT_Vtbl {
pub const fn new<Identity: IATSC_MGT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_MGT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_MGT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetProtocolVersion<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_MGT_Impl::GetProtocolVersion(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_MGT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordType<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_MGT_Impl::GetRecordType(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTypePid<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, ppidval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_MGT_Impl::GetRecordTypePid(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
ppidval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordVersionNumber<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_MGT_Impl::GetRecordVersionNumber(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_MGT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_MGT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_MGT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *const u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_MGT_Impl::GetCountOfTableDescriptors(this, core::mem::transmute_copy(&pdwval)).into()
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_MGT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: IATSC_MGT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_MGT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetProtocolVersion: GetProtocolVersion::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordType: GetRecordType::<Identity, OFFSET>,
GetRecordTypePid: GetRecordTypePid::<Identity, OFFSET>,
GetRecordVersionNumber: GetRecordVersionNumber::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IATSC_MGT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IATSC_MGT {}
windows_core::imp::define_interface!(IATSC_STT, IATSC_STT_Vtbl, 0x6bf42423_217d_4d6f_81e1_3a7b360ec896);
windows_core::imp::interface_hierarchy!(IATSC_STT, windows_core::IUnknown);
impl IATSC_STT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetProtocolVersion(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProtocolVersion)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSystemTime(&self) -> windows_core::Result<MPEG_DATE_AND_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSystemTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetGpsUtcOffset(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetGpsUtcOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDaylightSavings(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDaylightSavings)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IATSC_STT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetProtocolVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSystemTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT,
pub GetGpsUtcOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetDaylightSavings: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IATSC_STT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetProtocolVersion(&self) -> windows_core::Result<u8>;
fn GetSystemTime(&self) -> windows_core::Result<MPEG_DATE_AND_TIME>;
fn GetGpsUtcOffset(&self) -> windows_core::Result<u8>;
fn GetDaylightSavings(&self) -> windows_core::Result<u16>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
}
impl IATSC_STT_Vtbl {
pub const fn new<Identity: IATSC_STT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IATSC_STT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_STT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetProtocolVersion<Identity: IATSC_STT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_STT_Impl::GetProtocolVersion(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSystemTime<Identity: IATSC_STT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pmdtsystemtime: *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_STT_Impl::GetSystemTime(this) {
Ok(ok__) => {
pmdtsystemtime.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetGpsUtcOffset<Identity: IATSC_STT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_STT_Impl::GetGpsUtcOffset(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDaylightSavings<Identity: IATSC_STT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_STT_Impl::GetDaylightSavings(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: IATSC_STT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_STT_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: IATSC_STT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_STT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: IATSC_STT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_STT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetProtocolVersion: GetProtocolVersion::<Identity, OFFSET>,
GetSystemTime: GetSystemTime::<Identity, OFFSET>,
GetGpsUtcOffset: GetGpsUtcOffset::<Identity, OFFSET>,
GetDaylightSavings: GetDaylightSavings::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IATSC_STT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IATSC_STT {}
windows_core::imp::define_interface!(IATSC_VCT, IATSC_VCT_Vtbl, 0x26879a18_32f9_46c6_91f0_fb6479270e8c);
windows_core::imp::interface_hierarchy!(IATSC_VCT, windows_core::IUnknown);
impl IATSC_VCT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTransportStreamId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTransportStreamId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetProtocolVersion(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProtocolVersion)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordName(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordName)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordMajorChannelNumber(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordMajorChannelNumber)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordMinorChannelNumber(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordMinorChannelNumber)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordModulationMode(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordModulationMode)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCarrierFrequency(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCarrierFrequency)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTransportStreamId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordTransportStreamId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordProgramNumber(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordProgramNumber)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordEtmLocation(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordEtmLocation)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordIsAccessControlledBitSet(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordIsAccessControlledBitSet)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordIsHiddenBitSet(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordIsHiddenBitSet)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordIsPathSelectBitSet(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordIsPathSelectBitSet)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordIsOutOfBandBitSet(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordIsOutOfBandBitSet)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordIsHideGuideBitSet(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordIsHideGuideBitSet)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordServiceType(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceType)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordSourceId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordSourceId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetCountOfTableDescriptors(&self, pdwval: *const u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), pdwval).ok() }
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IATSC_VCT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTransportStreamId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetProtocolVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordName: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut windows_core::PWSTR) -> windows_core::HRESULT,
pub GetRecordMajorChannelNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordMinorChannelNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordModulationMode: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordCarrierFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordTransportStreamId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordProgramNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordEtmLocation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordIsAccessControlledBitSet: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetRecordIsHiddenBitSet: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetRecordIsPathSelectBitSet: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetRecordIsOutOfBandBitSet: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetRecordIsHideGuideBitSet: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetRecordServiceType: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordSourceId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *const u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IATSC_VCT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetTransportStreamId(&self) -> windows_core::Result<u16>;
fn GetProtocolVersion(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordName(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::PWSTR>;
fn GetRecordMajorChannelNumber(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordMinorChannelNumber(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordModulationMode(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordCarrierFrequency(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordTransportStreamId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordProgramNumber(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordEtmLocation(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordIsAccessControlledBitSet(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL>;
fn GetRecordIsHiddenBitSet(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL>;
fn GetRecordIsPathSelectBitSet(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL>;
fn GetRecordIsOutOfBandBitSet(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL>;
fn GetRecordIsHideGuideBitSet(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL>;
fn GetRecordServiceType(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordSourceId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetCountOfTableDescriptors(&self, pdwval: *const u32) -> windows_core::Result<()>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
}
impl IATSC_VCT_Vtbl {
pub const fn new<Identity: IATSC_VCT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_VCT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTransportStreamId<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetTransportStreamId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetProtocolVersion<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetProtocolVersion(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordName<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwsname: *mut windows_core::PWSTR) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordName(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwsname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordMajorChannelNumber<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordMajorChannelNumber(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordMinorChannelNumber<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordMinorChannelNumber(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordModulationMode<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordModulationMode(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCarrierFrequency<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordCarrierFrequency(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTransportStreamId<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordTransportStreamId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordProgramNumber<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordProgramNumber(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordEtmLocation<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordEtmLocation(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordIsAccessControlledBitSet<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordIsAccessControlledBitSet(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordIsHiddenBitSet<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordIsHiddenBitSet(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordIsPathSelectBitSet<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordIsPathSelectBitSet(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordIsOutOfBandBitSet<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordIsOutOfBandBitSet(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordIsHideGuideBitSet<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordIsHideGuideBitSet(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceType<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordServiceType(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordSourceId<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordSourceId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_VCT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *const u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_VCT_Impl::GetCountOfTableDescriptors(this, core::mem::transmute_copy(&pdwval)).into()
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IATSC_VCT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: IATSC_VCT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IATSC_VCT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetTransportStreamId: GetTransportStreamId::<Identity, OFFSET>,
GetProtocolVersion: GetProtocolVersion::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordName: GetRecordName::<Identity, OFFSET>,
GetRecordMajorChannelNumber: GetRecordMajorChannelNumber::<Identity, OFFSET>,
GetRecordMinorChannelNumber: GetRecordMinorChannelNumber::<Identity, OFFSET>,
GetRecordModulationMode: GetRecordModulationMode::<Identity, OFFSET>,
GetRecordCarrierFrequency: GetRecordCarrierFrequency::<Identity, OFFSET>,
GetRecordTransportStreamId: GetRecordTransportStreamId::<Identity, OFFSET>,
GetRecordProgramNumber: GetRecordProgramNumber::<Identity, OFFSET>,
GetRecordEtmLocation: GetRecordEtmLocation::<Identity, OFFSET>,
GetRecordIsAccessControlledBitSet: GetRecordIsAccessControlledBitSet::<Identity, OFFSET>,
GetRecordIsHiddenBitSet: GetRecordIsHiddenBitSet::<Identity, OFFSET>,
GetRecordIsPathSelectBitSet: GetRecordIsPathSelectBitSet::<Identity, OFFSET>,
GetRecordIsOutOfBandBitSet: GetRecordIsOutOfBandBitSet::<Identity, OFFSET>,
GetRecordIsHideGuideBitSet: GetRecordIsHideGuideBitSet::<Identity, OFFSET>,
GetRecordServiceType: GetRecordServiceType::<Identity, OFFSET>,
GetRecordSourceId: GetRecordSourceId::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IATSC_VCT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IATSC_VCT {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IAnalogAudioComponentType, IAnalogAudioComponentType_Vtbl, 0x2cfeb2a8_1787_4a24_a941_c6eaec39c842);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IAnalogAudioComponentType {
type Target = IComponentType;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IAnalogAudioComponentType, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IComponentType);
#[cfg(feature = "Win32_System_Com")]
impl IAnalogAudioComponentType {
pub unsafe fn AnalogAudioMode(&self) -> windows_core::Result<super::TVAudioMode> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AnalogAudioMode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetAnalogAudioMode(&self, mode: super::TVAudioMode) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetAnalogAudioMode)(windows_core::Interface::as_raw(self), mode).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IAnalogAudioComponentType_Vtbl {
pub base__: IComponentType_Vtbl,
pub AnalogAudioMode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::TVAudioMode) -> windows_core::HRESULT,
pub SetAnalogAudioMode: unsafe extern "system" fn(*mut core::ffi::c_void, super::TVAudioMode) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAnalogAudioComponentType_Impl: IComponentType_Impl {
fn AnalogAudioMode(&self) -> windows_core::Result<super::TVAudioMode>;
fn SetAnalogAudioMode(&self, mode: super::TVAudioMode) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAnalogAudioComponentType_Vtbl {
pub const fn new<Identity: IAnalogAudioComponentType_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn AnalogAudioMode<Identity: IAnalogAudioComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mode: *mut super::TVAudioMode) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAnalogAudioComponentType_Impl::AnalogAudioMode(this) {
Ok(ok__) => {
mode.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAnalogAudioMode<Identity: IAnalogAudioComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mode: super::TVAudioMode) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAnalogAudioComponentType_Impl::SetAnalogAudioMode(this, core::mem::transmute_copy(&mode)).into()
}
}
Self {
base__: IComponentType_Vtbl::new::<Identity, OFFSET>(),
AnalogAudioMode: AnalogAudioMode::<Identity, OFFSET>,
SetAnalogAudioMode: SetAnalogAudioMode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAnalogAudioComponentType as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IComponentType as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IAnalogAudioComponentType {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IAnalogLocator, IAnalogLocator_Vtbl, 0x34d1f26b_e339_430d_abce_738cb48984dc);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IAnalogLocator {
type Target = ILocator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IAnalogLocator, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator);
#[cfg(feature = "Win32_System_Com")]
impl IAnalogLocator {
pub unsafe fn VideoStandard(&self) -> windows_core::Result<super::AnalogVideoStandard> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VideoStandard)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetVideoStandard(&self, avs: super::AnalogVideoStandard) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetVideoStandard)(windows_core::Interface::as_raw(self), avs).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IAnalogLocator_Vtbl {
pub base__: ILocator_Vtbl,
pub VideoStandard: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::AnalogVideoStandard) -> windows_core::HRESULT,
pub SetVideoStandard: unsafe extern "system" fn(*mut core::ffi::c_void, super::AnalogVideoStandard) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAnalogLocator_Impl: ILocator_Impl {
fn VideoStandard(&self) -> windows_core::Result<super::AnalogVideoStandard>;
fn SetVideoStandard(&self, avs: super::AnalogVideoStandard) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAnalogLocator_Vtbl {
pub const fn new<Identity: IAnalogLocator_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn VideoStandard<Identity: IAnalogLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, avs: *mut super::AnalogVideoStandard) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAnalogLocator_Impl::VideoStandard(this) {
Ok(ok__) => {
avs.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetVideoStandard<Identity: IAnalogLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, avs: super::AnalogVideoStandard) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAnalogLocator_Impl::SetVideoStandard(this, core::mem::transmute_copy(&avs)).into()
}
}
Self {
base__: ILocator_Vtbl::new::<Identity, OFFSET>(),
VideoStandard: VideoStandard::<Identity, OFFSET>,
SetVideoStandard: SetVideoStandard::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAnalogLocator as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IAnalogLocator {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IAnalogRadioTuningSpace, IAnalogRadioTuningSpace_Vtbl, 0x2a6e293b_2595_11d3_b64c_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IAnalogRadioTuningSpace {
type Target = ITuningSpace;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IAnalogRadioTuningSpace, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuningSpace);
#[cfg(feature = "Win32_System_Com")]
impl IAnalogRadioTuningSpace {
pub unsafe fn MinFrequency(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MinFrequency)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMinFrequency(&self, newminfrequencyval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMinFrequency)(windows_core::Interface::as_raw(self), newminfrequencyval).ok() }
}
pub unsafe fn MaxFrequency(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MaxFrequency)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMaxFrequency(&self, newmaxfrequencyval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMaxFrequency)(windows_core::Interface::as_raw(self), newmaxfrequencyval).ok() }
}
pub unsafe fn Step(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Step)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetStep(&self, newstepval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetStep)(windows_core::Interface::as_raw(self), newstepval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IAnalogRadioTuningSpace_Vtbl {
pub base__: ITuningSpace_Vtbl,
pub MinFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMinFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub MaxFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMaxFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub Step: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetStep: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAnalogRadioTuningSpace_Impl: ITuningSpace_Impl {
fn MinFrequency(&self) -> windows_core::Result<i32>;
fn SetMinFrequency(&self, newminfrequencyval: i32) -> windows_core::Result<()>;
fn MaxFrequency(&self) -> windows_core::Result<i32>;
fn SetMaxFrequency(&self, newmaxfrequencyval: i32) -> windows_core::Result<()>;
fn Step(&self) -> windows_core::Result<i32>;
fn SetStep(&self, newstepval: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAnalogRadioTuningSpace_Vtbl {
pub const fn new<Identity: IAnalogRadioTuningSpace_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn MinFrequency<Identity: IAnalogRadioTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, minfrequencyval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAnalogRadioTuningSpace_Impl::MinFrequency(this) {
Ok(ok__) => {
minfrequencyval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMinFrequency<Identity: IAnalogRadioTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newminfrequencyval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAnalogRadioTuningSpace_Impl::SetMinFrequency(this, core::mem::transmute_copy(&newminfrequencyval)).into()
}
}
unsafe extern "system" fn MaxFrequency<Identity: IAnalogRadioTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, maxfrequencyval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAnalogRadioTuningSpace_Impl::MaxFrequency(this) {
Ok(ok__) => {
maxfrequencyval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMaxFrequency<Identity: IAnalogRadioTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newmaxfrequencyval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAnalogRadioTuningSpace_Impl::SetMaxFrequency(this, core::mem::transmute_copy(&newmaxfrequencyval)).into()
}
}
unsafe extern "system" fn Step<Identity: IAnalogRadioTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, stepval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAnalogRadioTuningSpace_Impl::Step(this) {
Ok(ok__) => {
stepval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetStep<Identity: IAnalogRadioTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newstepval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAnalogRadioTuningSpace_Impl::SetStep(this, core::mem::transmute_copy(&newstepval)).into()
}
}
Self {
base__: ITuningSpace_Vtbl::new::<Identity, OFFSET>(),
MinFrequency: MinFrequency::<Identity, OFFSET>,
SetMinFrequency: SetMinFrequency::<Identity, OFFSET>,
MaxFrequency: MaxFrequency::<Identity, OFFSET>,
SetMaxFrequency: SetMaxFrequency::<Identity, OFFSET>,
Step: Step::<Identity, OFFSET>,
SetStep: SetStep::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAnalogRadioTuningSpace as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuningSpace as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IAnalogRadioTuningSpace {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IAnalogRadioTuningSpace2, IAnalogRadioTuningSpace2_Vtbl, 0x39dd45da_2da8_46ba_8a8a_87e2b73d983a);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IAnalogRadioTuningSpace2 {
type Target = IAnalogRadioTuningSpace;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IAnalogRadioTuningSpace2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuningSpace, IAnalogRadioTuningSpace);
#[cfg(feature = "Win32_System_Com")]
impl IAnalogRadioTuningSpace2 {
pub unsafe fn CountryCode(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CountryCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCountryCode(&self, newcountrycodeval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCountryCode)(windows_core::Interface::as_raw(self), newcountrycodeval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IAnalogRadioTuningSpace2_Vtbl {
pub base__: IAnalogRadioTuningSpace_Vtbl,
pub CountryCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetCountryCode: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAnalogRadioTuningSpace2_Impl: IAnalogRadioTuningSpace_Impl {
fn CountryCode(&self) -> windows_core::Result<i32>;
fn SetCountryCode(&self, newcountrycodeval: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAnalogRadioTuningSpace2_Vtbl {
pub const fn new<Identity: IAnalogRadioTuningSpace2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CountryCode<Identity: IAnalogRadioTuningSpace2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, countrycodeval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAnalogRadioTuningSpace2_Impl::CountryCode(this) {
Ok(ok__) => {
countrycodeval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCountryCode<Identity: IAnalogRadioTuningSpace2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newcountrycodeval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAnalogRadioTuningSpace2_Impl::SetCountryCode(this, core::mem::transmute_copy(&newcountrycodeval)).into()
}
}
Self {
base__: IAnalogRadioTuningSpace_Vtbl::new::<Identity, OFFSET>(),
CountryCode: CountryCode::<Identity, OFFSET>,
SetCountryCode: SetCountryCode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAnalogRadioTuningSpace2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuningSpace as windows_core::Interface>::IID || iid == &<IAnalogRadioTuningSpace as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IAnalogRadioTuningSpace2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IAnalogTVTuningSpace, IAnalogTVTuningSpace_Vtbl, 0x2a6e293c_2595_11d3_b64c_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IAnalogTVTuningSpace {
type Target = ITuningSpace;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IAnalogTVTuningSpace, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuningSpace);
#[cfg(feature = "Win32_System_Com")]
impl IAnalogTVTuningSpace {
pub unsafe fn MinChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MinChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMinChannel(&self, newminchannelval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMinChannel)(windows_core::Interface::as_raw(self), newminchannelval).ok() }
}
pub unsafe fn MaxChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MaxChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMaxChannel(&self, newmaxchannelval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMaxChannel)(windows_core::Interface::as_raw(self), newmaxchannelval).ok() }
}
pub unsafe fn InputType(&self) -> windows_core::Result<super::TunerInputType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).InputType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetInputType(&self, newinputtypeval: super::TunerInputType) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetInputType)(windows_core::Interface::as_raw(self), newinputtypeval).ok() }
}
pub unsafe fn CountryCode(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CountryCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCountryCode(&self, newcountrycodeval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCountryCode)(windows_core::Interface::as_raw(self), newcountrycodeval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IAnalogTVTuningSpace_Vtbl {
pub base__: ITuningSpace_Vtbl,
pub MinChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMinChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub MaxChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMaxChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub InputType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::TunerInputType) -> windows_core::HRESULT,
pub SetInputType: unsafe extern "system" fn(*mut core::ffi::c_void, super::TunerInputType) -> windows_core::HRESULT,
pub CountryCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetCountryCode: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAnalogTVTuningSpace_Impl: ITuningSpace_Impl {
fn MinChannel(&self) -> windows_core::Result<i32>;
fn SetMinChannel(&self, newminchannelval: i32) -> windows_core::Result<()>;
fn MaxChannel(&self) -> windows_core::Result<i32>;
fn SetMaxChannel(&self, newmaxchannelval: i32) -> windows_core::Result<()>;
fn InputType(&self) -> windows_core::Result<super::TunerInputType>;
fn SetInputType(&self, newinputtypeval: super::TunerInputType) -> windows_core::Result<()>;
fn CountryCode(&self) -> windows_core::Result<i32>;
fn SetCountryCode(&self, newcountrycodeval: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAnalogTVTuningSpace_Vtbl {
pub const fn new<Identity: IAnalogTVTuningSpace_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn MinChannel<Identity: IAnalogTVTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, minchannelval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAnalogTVTuningSpace_Impl::MinChannel(this) {
Ok(ok__) => {
minchannelval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMinChannel<Identity: IAnalogTVTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newminchannelval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAnalogTVTuningSpace_Impl::SetMinChannel(this, core::mem::transmute_copy(&newminchannelval)).into()
}
}
unsafe extern "system" fn MaxChannel<Identity: IAnalogTVTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, maxchannelval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAnalogTVTuningSpace_Impl::MaxChannel(this) {
Ok(ok__) => {
maxchannelval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMaxChannel<Identity: IAnalogTVTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newmaxchannelval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAnalogTVTuningSpace_Impl::SetMaxChannel(this, core::mem::transmute_copy(&newmaxchannelval)).into()
}
}
unsafe extern "system" fn InputType<Identity: IAnalogTVTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, inputtypeval: *mut super::TunerInputType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAnalogTVTuningSpace_Impl::InputType(this) {
Ok(ok__) => {
inputtypeval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetInputType<Identity: IAnalogTVTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newinputtypeval: super::TunerInputType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAnalogTVTuningSpace_Impl::SetInputType(this, core::mem::transmute_copy(&newinputtypeval)).into()
}
}
unsafe extern "system" fn CountryCode<Identity: IAnalogTVTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, countrycodeval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAnalogTVTuningSpace_Impl::CountryCode(this) {
Ok(ok__) => {
countrycodeval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCountryCode<Identity: IAnalogTVTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newcountrycodeval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAnalogTVTuningSpace_Impl::SetCountryCode(this, core::mem::transmute_copy(&newcountrycodeval)).into()
}
}
Self {
base__: ITuningSpace_Vtbl::new::<Identity, OFFSET>(),
MinChannel: MinChannel::<Identity, OFFSET>,
SetMinChannel: SetMinChannel::<Identity, OFFSET>,
MaxChannel: MaxChannel::<Identity, OFFSET>,
SetMaxChannel: SetMaxChannel::<Identity, OFFSET>,
InputType: InputType::<Identity, OFFSET>,
SetInputType: SetInputType::<Identity, OFFSET>,
CountryCode: CountryCode::<Identity, OFFSET>,
SetCountryCode: SetCountryCode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAnalogTVTuningSpace as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuningSpace as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IAnalogTVTuningSpace {}
windows_core::imp::define_interface!(IAtscContentAdvisoryDescriptor, IAtscContentAdvisoryDescriptor_Vtbl, 0xff76e60c_0283_43ea_ba32_b422238547ee);
windows_core::imp::interface_hierarchy!(IAtscContentAdvisoryDescriptor, windows_core::IUnknown);
impl IAtscContentAdvisoryDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRatingRegionCount(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRatingRegionCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordRatingRegion(&self, bindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordRatingRegion)(windows_core::Interface::as_raw(self), bindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordRatedDimensions(&self, bindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordRatedDimensions)(windows_core::Interface::as_raw(self), bindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordRatingDimension(&self, bindexouter: u8, bindexinner: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordRatingDimension)(windows_core::Interface::as_raw(self), bindexouter, bindexinner, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordRatingValue(&self, bindexouter: u8, bindexinner: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordRatingValue)(windows_core::Interface::as_raw(self), bindexouter, bindexinner, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordRatingDescriptionText(&self, bindex: u8, pblength: *mut u8, pptext: *mut *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordRatingDescriptionText)(windows_core::Interface::as_raw(self), bindex, pblength as _, pptext as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAtscContentAdvisoryDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRatingRegionCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordRatingRegion: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordRatedDimensions: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordRatingDimension: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordRatingValue: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordRatingDescriptionText: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8, *mut *mut u8) -> windows_core::HRESULT,
}
pub trait IAtscContentAdvisoryDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetRatingRegionCount(&self) -> windows_core::Result<u8>;
fn GetRecordRatingRegion(&self, bindex: u8) -> windows_core::Result<u8>;
fn GetRecordRatedDimensions(&self, bindex: u8) -> windows_core::Result<u8>;
fn GetRecordRatingDimension(&self, bindexouter: u8, bindexinner: u8) -> windows_core::Result<u8>;
fn GetRecordRatingValue(&self, bindexouter: u8, bindexinner: u8) -> windows_core::Result<u8>;
fn GetRecordRatingDescriptionText(&self, bindex: u8, pblength: *mut u8, pptext: *mut *mut u8) -> windows_core::Result<()>;
}
impl IAtscContentAdvisoryDescriptor_Vtbl {
pub const fn new<Identity: IAtscContentAdvisoryDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IAtscContentAdvisoryDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscContentAdvisoryDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IAtscContentAdvisoryDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscContentAdvisoryDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRatingRegionCount<Identity: IAtscContentAdvisoryDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscContentAdvisoryDescriptor_Impl::GetRatingRegionCount(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordRatingRegion<Identity: IAtscContentAdvisoryDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscContentAdvisoryDescriptor_Impl::GetRecordRatingRegion(this, core::mem::transmute_copy(&bindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordRatedDimensions<Identity: IAtscContentAdvisoryDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscContentAdvisoryDescriptor_Impl::GetRecordRatedDimensions(this, core::mem::transmute_copy(&bindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordRatingDimension<Identity: IAtscContentAdvisoryDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindexouter: u8, bindexinner: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscContentAdvisoryDescriptor_Impl::GetRecordRatingDimension(this, core::mem::transmute_copy(&bindexouter), core::mem::transmute_copy(&bindexinner)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordRatingValue<Identity: IAtscContentAdvisoryDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindexouter: u8, bindexinner: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscContentAdvisoryDescriptor_Impl::GetRecordRatingValue(this, core::mem::transmute_copy(&bindexouter), core::mem::transmute_copy(&bindexinner)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordRatingDescriptionText<Identity: IAtscContentAdvisoryDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pblength: *mut u8, pptext: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAtscContentAdvisoryDescriptor_Impl::GetRecordRatingDescriptionText(this, core::mem::transmute_copy(&bindex), core::mem::transmute_copy(&pblength), core::mem::transmute_copy(&pptext)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetRatingRegionCount: GetRatingRegionCount::<Identity, OFFSET>,
GetRecordRatingRegion: GetRecordRatingRegion::<Identity, OFFSET>,
GetRecordRatedDimensions: GetRecordRatedDimensions::<Identity, OFFSET>,
GetRecordRatingDimension: GetRecordRatingDimension::<Identity, OFFSET>,
GetRecordRatingValue: GetRecordRatingValue::<Identity, OFFSET>,
GetRecordRatingDescriptionText: GetRecordRatingDescriptionText::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAtscContentAdvisoryDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IAtscContentAdvisoryDescriptor {}
windows_core::imp::define_interface!(IAtscPsipParser, IAtscPsipParser_Vtbl, 0xb2c98995_5eb2_4fb1_b406_f3e8e2026a9a);
windows_core::imp::interface_hierarchy!(IAtscPsipParser, windows_core::IUnknown);
impl IAtscPsipParser {
pub unsafe fn Initialize<P0>(&self, punkmpeg2data: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), punkmpeg2data.param().abi()).ok() }
}
pub unsafe fn GetPAT(&self) -> windows_core::Result<IPAT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPAT)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetCAT(&self, dwtimeout: u32) -> windows_core::Result<ICAT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCAT)(windows_core::Interface::as_raw(self), dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetPMT(&self, pid: u16, pwprogramnumber: *const u16) -> windows_core::Result<IPMT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPMT)(windows_core::Interface::as_raw(self), pid, pwprogramnumber, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTSDT(&self) -> windows_core::Result<ITSDT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTSDT)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetMGT(&self) -> windows_core::Result<IATSC_MGT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetMGT)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetVCT(&self, tableid: u8, fgetnexttable: bool) -> windows_core::Result<IATSC_VCT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVCT)(windows_core::Interface::as_raw(self), tableid, fgetnexttable.into(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetEIT(&self, pid: u16, pwsourceid: *const u16, dwtimeout: u32) -> windows_core::Result<IATSC_EIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEIT)(windows_core::Interface::as_raw(self), pid, pwsourceid, dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetETT(&self, pid: u16, wsourceid: *const u16, pweventid: *const u16) -> windows_core::Result<IATSC_ETT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetETT)(windows_core::Interface::as_raw(self), pid, wsourceid, pweventid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetSTT(&self) -> windows_core::Result<IATSC_STT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSTT)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetEAS(&self, pid: u16) -> windows_core::Result<ISCTE_EAS> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEAS)(windows_core::Interface::as_raw(self), pid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAtscPsipParser_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetPAT: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCAT: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetPMT: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTSDT: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetMGT: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVCT: unsafe extern "system" fn(*mut core::ffi::c_void, u8, windows_core::BOOL, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetEIT: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *const u16, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetETT: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *const u16, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetSTT: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetEAS: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IAtscPsipParser_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, punkmpeg2data: windows_core::Ref<windows_core::IUnknown>) -> windows_core::Result<()>;
fn GetPAT(&self) -> windows_core::Result<IPAT>;
fn GetCAT(&self, dwtimeout: u32) -> windows_core::Result<ICAT>;
fn GetPMT(&self, pid: u16, pwprogramnumber: *const u16) -> windows_core::Result<IPMT>;
fn GetTSDT(&self) -> windows_core::Result<ITSDT>;
fn GetMGT(&self) -> windows_core::Result<IATSC_MGT>;
fn GetVCT(&self, tableid: u8, fgetnexttable: windows_core::BOOL) -> windows_core::Result<IATSC_VCT>;
fn GetEIT(&self, pid: u16, pwsourceid: *const u16, dwtimeout: u32) -> windows_core::Result<IATSC_EIT>;
fn GetETT(&self, pid: u16, wsourceid: *const u16, pweventid: *const u16) -> windows_core::Result<IATSC_ETT>;
fn GetSTT(&self) -> windows_core::Result<IATSC_STT>;
fn GetEAS(&self, pid: u16) -> windows_core::Result<ISCTE_EAS>;
}
impl IAtscPsipParser_Vtbl {
pub const fn new<Identity: IAtscPsipParser_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, punkmpeg2data: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAtscPsipParser_Impl::Initialize(this, core::mem::transmute_copy(&punkmpeg2data)).into()
}
}
unsafe extern "system" fn GetPAT<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pppat: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscPsipParser_Impl::GetPAT(this) {
Ok(ok__) => {
pppat.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCAT<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwtimeout: u32, ppcat: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscPsipParser_Impl::GetCAT(this, core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
ppcat.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPMT<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: u16, pwprogramnumber: *const u16, pppmt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscPsipParser_Impl::GetPMT(this, core::mem::transmute_copy(&pid), core::mem::transmute_copy(&pwprogramnumber)) {
Ok(ok__) => {
pppmt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTSDT<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pptsdt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscPsipParser_Impl::GetTSDT(this) {
Ok(ok__) => {
pptsdt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetMGT<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppmgt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscPsipParser_Impl::GetMGT(this) {
Ok(ok__) => {
ppmgt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetVCT<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, fgetnexttable: windows_core::BOOL, ppvct: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscPsipParser_Impl::GetVCT(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&fgetnexttable)) {
Ok(ok__) => {
ppvct.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEIT<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: u16, pwsourceid: *const u16, dwtimeout: u32, ppeit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscPsipParser_Impl::GetEIT(this, core::mem::transmute_copy(&pid), core::mem::transmute_copy(&pwsourceid), core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
ppeit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetETT<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: u16, wsourceid: *const u16, pweventid: *const u16, ppett: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscPsipParser_Impl::GetETT(this, core::mem::transmute_copy(&pid), core::mem::transmute_copy(&wsourceid), core::mem::transmute_copy(&pweventid)) {
Ok(ok__) => {
ppett.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSTT<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppstt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscPsipParser_Impl::GetSTT(this) {
Ok(ok__) => {
ppstt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEAS<Identity: IAtscPsipParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: u16, ppeas: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAtscPsipParser_Impl::GetEAS(this, core::mem::transmute_copy(&pid)) {
Ok(ok__) => {
ppeas.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetPAT: GetPAT::<Identity, OFFSET>,
GetCAT: GetCAT::<Identity, OFFSET>,
GetPMT: GetPMT::<Identity, OFFSET>,
GetTSDT: GetTSDT::<Identity, OFFSET>,
GetMGT: GetMGT::<Identity, OFFSET>,
GetVCT: GetVCT::<Identity, OFFSET>,
GetEIT: GetEIT::<Identity, OFFSET>,
GetETT: GetETT::<Identity, OFFSET>,
GetSTT: GetSTT::<Identity, OFFSET>,
GetEAS: GetEAS::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAtscPsipParser as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IAtscPsipParser {}
windows_core::imp::define_interface!(IAttributeGet, IAttributeGet_Vtbl, 0x52dbd1ec_e48f_4528_9232_f442a68f0ae1);
windows_core::imp::interface_hierarchy!(IAttributeGet, windows_core::IUnknown);
impl IAttributeGet {
pub unsafe fn GetCount(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetAttribIndexed(&self, lindex: i32, pguidattribute: *mut windows_core::GUID, pbattribute: *mut u8, pdwattributelength: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetAttribIndexed)(windows_core::Interface::as_raw(self), lindex, pguidattribute as _, pbattribute as _, pdwattributelength as _).ok() }
}
pub unsafe fn GetAttrib(&self, guidattribute: windows_core::GUID, pbattribute: *mut u8, pdwattributelength: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetAttrib)(windows_core::Interface::as_raw(self), core::mem::transmute(guidattribute), pbattribute as _, pdwattributelength as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAttributeGet_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub GetAttribIndexed: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut windows_core::GUID, *mut u8, *mut u32) -> windows_core::HRESULT,
pub GetAttrib: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::GUID, *mut u8, *mut u32) -> windows_core::HRESULT,
}
pub trait IAttributeGet_Impl: windows_core::IUnknownImpl {
fn GetCount(&self) -> windows_core::Result<i32>;
fn GetAttribIndexed(&self, lindex: i32, pguidattribute: *mut windows_core::GUID, pbattribute: *mut u8, pdwattributelength: *mut u32) -> windows_core::Result<()>;
fn GetAttrib(&self, guidattribute: &windows_core::GUID, pbattribute: *mut u8, pdwattributelength: *mut u32) -> windows_core::Result<()>;
}
impl IAttributeGet_Vtbl {
pub const fn new<Identity: IAttributeGet_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetCount<Identity: IAttributeGet_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, plcount: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAttributeGet_Impl::GetCount(this) {
Ok(ok__) => {
plcount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetAttribIndexed<Identity: IAttributeGet_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lindex: i32, pguidattribute: *mut windows_core::GUID, pbattribute: *mut u8, pdwattributelength: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAttributeGet_Impl::GetAttribIndexed(this, core::mem::transmute_copy(&lindex), core::mem::transmute_copy(&pguidattribute), core::mem::transmute_copy(&pbattribute), core::mem::transmute_copy(&pdwattributelength)).into()
}
}
unsafe extern "system" fn GetAttrib<Identity: IAttributeGet_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guidattribute: windows_core::GUID, pbattribute: *mut u8, pdwattributelength: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAttributeGet_Impl::GetAttrib(this, core::mem::transmute(&guidattribute), core::mem::transmute_copy(&pbattribute), core::mem::transmute_copy(&pdwattributelength)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCount: GetCount::<Identity, OFFSET>,
GetAttribIndexed: GetAttribIndexed::<Identity, OFFSET>,
GetAttrib: GetAttrib::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAttributeGet as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IAttributeGet {}
windows_core::imp::define_interface!(IAttributeSet, IAttributeSet_Vtbl, 0x583ec3cc_4960_4857_982b_41a33ea0a006);
windows_core::imp::interface_hierarchy!(IAttributeSet, windows_core::IUnknown);
impl IAttributeSet {
pub unsafe fn SetAttrib(&self, guidattribute: windows_core::GUID, pbattribute: *const u8, dwattributelength: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetAttrib)(windows_core::Interface::as_raw(self), core::mem::transmute(guidattribute), pbattribute, dwattributelength).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAttributeSet_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub SetAttrib: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::GUID, *const u8, u32) -> windows_core::HRESULT,
}
pub trait IAttributeSet_Impl: windows_core::IUnknownImpl {
fn SetAttrib(&self, guidattribute: &windows_core::GUID, pbattribute: *const u8, dwattributelength: u32) -> windows_core::Result<()>;
}
impl IAttributeSet_Vtbl {
pub const fn new<Identity: IAttributeSet_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetAttrib<Identity: IAttributeSet_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guidattribute: windows_core::GUID, pbattribute: *const u8, dwattributelength: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAttributeSet_Impl::SetAttrib(this, core::mem::transmute(&guidattribute), core::mem::transmute_copy(&pbattribute), core::mem::transmute_copy(&dwattributelength)).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetAttrib: SetAttrib::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAttributeSet as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IAttributeSet {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IAuxInTuningSpace, IAuxInTuningSpace_Vtbl, 0xe48244b8_7e17_4f76_a763_5090ff1e2f30);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IAuxInTuningSpace {
type Target = ITuningSpace;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IAuxInTuningSpace, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuningSpace);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IAuxInTuningSpace_Vtbl {
pub base__: ITuningSpace_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAuxInTuningSpace_Impl: ITuningSpace_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAuxInTuningSpace_Vtbl {
pub const fn new<Identity: IAuxInTuningSpace_Impl, const OFFSET: isize>() -> Self {
Self { base__: ITuningSpace_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAuxInTuningSpace as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuningSpace as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IAuxInTuningSpace {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IAuxInTuningSpace2, IAuxInTuningSpace2_Vtbl, 0xb10931ed_8bfe_4ab0_9dce_e469c29a9729);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IAuxInTuningSpace2 {
type Target = IAuxInTuningSpace;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IAuxInTuningSpace2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuningSpace, IAuxInTuningSpace);
#[cfg(feature = "Win32_System_Com")]
impl IAuxInTuningSpace2 {
pub unsafe fn CountryCode(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CountryCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCountryCode(&self, newcountrycodeval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCountryCode)(windows_core::Interface::as_raw(self), newcountrycodeval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IAuxInTuningSpace2_Vtbl {
pub base__: IAuxInTuningSpace_Vtbl,
pub CountryCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetCountryCode: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAuxInTuningSpace2_Impl: IAuxInTuningSpace_Impl {
fn CountryCode(&self) -> windows_core::Result<i32>;
fn SetCountryCode(&self, newcountrycodeval: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAuxInTuningSpace2_Vtbl {
pub const fn new<Identity: IAuxInTuningSpace2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CountryCode<Identity: IAuxInTuningSpace2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, countrycodeval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IAuxInTuningSpace2_Impl::CountryCode(this) {
Ok(ok__) => {
countrycodeval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCountryCode<Identity: IAuxInTuningSpace2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newcountrycodeval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IAuxInTuningSpace2_Impl::SetCountryCode(this, core::mem::transmute_copy(&newcountrycodeval)).into()
}
}
Self {
base__: IAuxInTuningSpace_Vtbl::new::<Identity, OFFSET>(),
CountryCode: CountryCode::<Identity, OFFSET>,
SetCountryCode: SetCountryCode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IAuxInTuningSpace2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuningSpace as windows_core::Interface>::IID || iid == &<IAuxInTuningSpace as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IAuxInTuningSpace2 {}
windows_core::imp::define_interface!(IBDAComparable, IBDAComparable_Vtbl, 0xb34505e0_2f0e_497b_80bc_d43f3b24ed7f);
windows_core::imp::interface_hierarchy!(IBDAComparable, windows_core::IUnknown);
impl IBDAComparable {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn CompareExact<P0>(&self, compareto: P0) -> windows_core::Result<i32>
where
P0: windows_core::Param<super::super::super::System::Com::IDispatch>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CompareExact)(windows_core::Interface::as_raw(self), compareto.param().abi(), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn CompareEquivalent<P0>(&self, compareto: P0, dwflags: u32) -> windows_core::Result<i32>
where
P0: windows_core::Param<super::super::super::System::Com::IDispatch>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CompareEquivalent)(windows_core::Interface::as_raw(self), compareto.param().abi(), dwflags, &mut result__).map(|| result__)
}
}
pub unsafe fn HashExact(&self) -> windows_core::Result<i64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HashExact)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn HashExactIncremental(&self, partialresult: i64) -> windows_core::Result<i64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HashExactIncremental)(windows_core::Interface::as_raw(self), partialresult, &mut result__).map(|| result__)
}
}
pub unsafe fn HashEquivalent(&self, dwflags: u32) -> windows_core::Result<i64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HashEquivalent)(windows_core::Interface::as_raw(self), dwflags, &mut result__).map(|| result__)
}
}
pub unsafe fn HashEquivalentIncremental(&self, partialresult: i64, dwflags: u32) -> windows_core::Result<i64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HashEquivalentIncremental)(windows_core::Interface::as_raw(self), partialresult, dwflags, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IBDAComparable_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub CompareExact: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
CompareExact: usize,
#[cfg(feature = "Win32_System_Com")]
pub CompareEquivalent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32, *mut i32) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
CompareEquivalent: usize,
pub HashExact: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i64) -> windows_core::HRESULT,
pub HashExactIncremental: unsafe extern "system" fn(*mut core::ffi::c_void, i64, *mut i64) -> windows_core::HRESULT,
pub HashEquivalent: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut i64) -> windows_core::HRESULT,
pub HashEquivalentIncremental: unsafe extern "system" fn(*mut core::ffi::c_void, i64, u32, *mut i64) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IBDAComparable_Impl: windows_core::IUnknownImpl {
fn CompareExact(&self, compareto: windows_core::Ref<super::super::super::System::Com::IDispatch>) -> windows_core::Result<i32>;
fn CompareEquivalent(&self, compareto: windows_core::Ref<super::super::super::System::Com::IDispatch>, dwflags: u32) -> windows_core::Result<i32>;
fn HashExact(&self) -> windows_core::Result<i64>;
fn HashExactIncremental(&self, partialresult: i64) -> windows_core::Result<i64>;
fn HashEquivalent(&self, dwflags: u32) -> windows_core::Result<i64>;
fn HashEquivalentIncremental(&self, partialresult: i64, dwflags: u32) -> windows_core::Result<i64>;
}
#[cfg(feature = "Win32_System_Com")]
impl IBDAComparable_Vtbl {
pub const fn new<Identity: IBDAComparable_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CompareExact<Identity: IBDAComparable_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, compareto: *mut core::ffi::c_void, result: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IBDAComparable_Impl::CompareExact(this, core::mem::transmute_copy(&compareto)) {
Ok(ok__) => {
result.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CompareEquivalent<Identity: IBDAComparable_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, compareto: *mut core::ffi::c_void, dwflags: u32, result: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IBDAComparable_Impl::CompareEquivalent(this, core::mem::transmute_copy(&compareto), core::mem::transmute_copy(&dwflags)) {
Ok(ok__) => {
result.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn HashExact<Identity: IBDAComparable_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, result: *mut i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IBDAComparable_Impl::HashExact(this) {
Ok(ok__) => {
result.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn HashExactIncremental<Identity: IBDAComparable_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, partialresult: i64, result: *mut i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IBDAComparable_Impl::HashExactIncremental(this, core::mem::transmute_copy(&partialresult)) {
Ok(ok__) => {
result.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn HashEquivalent<Identity: IBDAComparable_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwflags: u32, result: *mut i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IBDAComparable_Impl::HashEquivalent(this, core::mem::transmute_copy(&dwflags)) {
Ok(ok__) => {
result.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn HashEquivalentIncremental<Identity: IBDAComparable_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, partialresult: i64, dwflags: u32, result: *mut i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IBDAComparable_Impl::HashEquivalentIncremental(this, core::mem::transmute_copy(&partialresult), core::mem::transmute_copy(&dwflags)) {
Ok(ok__) => {
result.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CompareExact: CompareExact::<Identity, OFFSET>,
CompareEquivalent: CompareEquivalent::<Identity, OFFSET>,
HashExact: HashExact::<Identity, OFFSET>,
HashExactIncremental: HashExactIncremental::<Identity, OFFSET>,
HashEquivalent: HashEquivalent::<Identity, OFFSET>,
HashEquivalentIncremental: HashEquivalentIncremental::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IBDAComparable as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IBDAComparable {}
windows_core::imp::define_interface!(IBDACreateTuneRequestEx, IBDACreateTuneRequestEx_Vtbl, 0xc0a4a1d4_2b3c_491a_ba22_499fbadd4d12);
windows_core::imp::interface_hierarchy!(IBDACreateTuneRequestEx, windows_core::IUnknown);
impl IBDACreateTuneRequestEx {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn CreateTuneRequestEx(&self, tunerequestiid: *const windows_core::GUID) -> windows_core::Result<ITuneRequest> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateTuneRequestEx)(windows_core::Interface::as_raw(self), tunerequestiid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IBDACreateTuneRequestEx_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub CreateTuneRequestEx: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
CreateTuneRequestEx: usize,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IBDACreateTuneRequestEx_Impl: windows_core::IUnknownImpl {
fn CreateTuneRequestEx(&self, tunerequestiid: *const windows_core::GUID) -> windows_core::Result<ITuneRequest>;
}
#[cfg(feature = "Win32_System_Com")]
impl IBDACreateTuneRequestEx_Vtbl {
pub const fn new<Identity: IBDACreateTuneRequestEx_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CreateTuneRequestEx<Identity: IBDACreateTuneRequestEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tunerequestiid: *const windows_core::GUID, tunerequest: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IBDACreateTuneRequestEx_Impl::CreateTuneRequestEx(this, core::mem::transmute_copy(&tunerequestiid)) {
Ok(ok__) => {
tunerequest.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CreateTuneRequestEx: CreateTuneRequestEx::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IBDACreateTuneRequestEx as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IBDACreateTuneRequestEx {}
windows_core::imp::define_interface!(IBDA_TIF_REGISTRATION, IBDA_TIF_REGISTRATION_Vtbl, 0xdfef4a68_ee61_415f_9ccb_cd95f2f98a3a);
windows_core::imp::interface_hierarchy!(IBDA_TIF_REGISTRATION, windows_core::IUnknown);
impl IBDA_TIF_REGISTRATION {
pub unsafe fn RegisterTIFEx<P0>(&self, ptifinputpin: P0, ppvregistrationcontext: *mut u32, ppmpeg2datacontrol: *mut Option<windows_core::IUnknown>) -> windows_core::Result<()>
where
P0: windows_core::Param<super::IPin>,
{
unsafe { (windows_core::Interface::vtable(self).RegisterTIFEx)(windows_core::Interface::as_raw(self), ptifinputpin.param().abi(), ppvregistrationcontext as _, core::mem::transmute(ppmpeg2datacontrol)).ok() }
}
pub unsafe fn UnregisterTIF(&self, pvregistrationcontext: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).UnregisterTIF)(windows_core::Interface::as_raw(self), pvregistrationcontext).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IBDA_TIF_REGISTRATION_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub RegisterTIFEx: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub UnregisterTIF: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
}
pub trait IBDA_TIF_REGISTRATION_Impl: windows_core::IUnknownImpl {
fn RegisterTIFEx(&self, ptifinputpin: windows_core::Ref<super::IPin>, ppvregistrationcontext: *mut u32, ppmpeg2datacontrol: windows_core::OutRef<windows_core::IUnknown>) -> windows_core::Result<()>;
fn UnregisterTIF(&self, pvregistrationcontext: u32) -> windows_core::Result<()>;
}
impl IBDA_TIF_REGISTRATION_Vtbl {
pub const fn new<Identity: IBDA_TIF_REGISTRATION_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn RegisterTIFEx<Identity: IBDA_TIF_REGISTRATION_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ptifinputpin: *mut core::ffi::c_void, ppvregistrationcontext: *mut u32, ppmpeg2datacontrol: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IBDA_TIF_REGISTRATION_Impl::RegisterTIFEx(this, core::mem::transmute_copy(&ptifinputpin), core::mem::transmute_copy(&ppvregistrationcontext), core::mem::transmute_copy(&ppmpeg2datacontrol)).into()
}
}
unsafe extern "system" fn UnregisterTIF<Identity: IBDA_TIF_REGISTRATION_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pvregistrationcontext: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IBDA_TIF_REGISTRATION_Impl::UnregisterTIF(this, core::mem::transmute_copy(&pvregistrationcontext)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
RegisterTIFEx: RegisterTIFEx::<Identity, OFFSET>,
UnregisterTIF: UnregisterTIF::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IBDA_TIF_REGISTRATION as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IBDA_TIF_REGISTRATION {}
windows_core::imp::define_interface!(ICAT, ICAT_Vtbl, 0x7c6995fb_2a31_4bd7_953e_b1ad7fb7d31c);
windows_core::imp::interface_hierarchy!(ICAT, windows_core::IUnknown);
impl ICAT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForNextTable)(windows_core::Interface::as_raw(self), hnexttableavailable).ok() }
}
pub unsafe fn GetNextTable(&self, dwtimeout: u32) -> windows_core::Result<ICAT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextTable)(windows_core::Interface::as_raw(self), dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForWhenCurrent)(windows_core::Interface::as_raw(self), hnexttableiscurrent).ok() }
}
pub unsafe fn ConvertNextToCurrent(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ConvertNextToCurrent)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICAT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub GetNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForWhenCurrent: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub ConvertNextToCurrent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait ICAT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn GetNextTable(&self, dwtimeout: u32) -> windows_core::Result<ICAT>;
fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn ConvertNextToCurrent(&self) -> windows_core::Result<()>;
}
impl ICAT_Vtbl {
pub const fn new<Identity: ICAT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: ICAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICAT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: ICAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICAT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: ICAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICAT_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: ICAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICAT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: ICAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICAT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn RegisterForNextTable<Identity: ICAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICAT_Impl::RegisterForNextTable(this, core::mem::transmute_copy(&hnexttableavailable)).into()
}
}
unsafe extern "system" fn GetNextTable<Identity: ICAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwtimeout: u32, ppcat: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICAT_Impl::GetNextTable(this, core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
ppcat.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegisterForWhenCurrent<Identity: ICAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICAT_Impl::RegisterForWhenCurrent(this, core::mem::transmute_copy(&hnexttableiscurrent)).into()
}
}
unsafe extern "system" fn ConvertNextToCurrent<Identity: ICAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICAT_Impl::ConvertNextToCurrent(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
RegisterForNextTable: RegisterForNextTable::<Identity, OFFSET>,
GetNextTable: GetNextTable::<Identity, OFFSET>,
RegisterForWhenCurrent: RegisterForWhenCurrent::<Identity, OFFSET>,
ConvertNextToCurrent: ConvertNextToCurrent::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICAT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICAT {}
windows_core::imp::define_interface!(ICaptionServiceDescriptor, ICaptionServiceDescriptor_Vtbl, 0x40834007_6834_46f0_bd45_d5f6a6be258c);
windows_core::imp::interface_hierarchy!(ICaptionServiceDescriptor, windows_core::IUnknown);
impl ICaptionServiceDescriptor {
pub unsafe fn GetNumberOfServices(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberOfServices)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLanguageCode(&self, bindex: u8, langcode: &mut [u8; 3]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLanguageCode)(windows_core::Interface::as_raw(self), bindex, core::mem::transmute(langcode.as_ptr())).ok() }
}
pub unsafe fn GetCaptionServiceNumber(&self, bindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCaptionServiceNumber)(windows_core::Interface::as_raw(self), bindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetCCType(&self, bindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCCType)(windows_core::Interface::as_raw(self), bindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetEasyReader(&self, bindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEasyReader)(windows_core::Interface::as_raw(self), bindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetWideAspectRatio(&self, bindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetWideAspectRatio)(windows_core::Interface::as_raw(self), bindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICaptionServiceDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetNumberOfServices: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLanguageCode: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetCaptionServiceNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetCCType: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetEasyReader: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetWideAspectRatio: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
}
pub trait ICaptionServiceDescriptor_Impl: windows_core::IUnknownImpl {
fn GetNumberOfServices(&self) -> windows_core::Result<u8>;
fn GetLanguageCode(&self, bindex: u8, langcode: *mut u8) -> windows_core::Result<()>;
fn GetCaptionServiceNumber(&self, bindex: u8) -> windows_core::Result<u8>;
fn GetCCType(&self, bindex: u8) -> windows_core::Result<u8>;
fn GetEasyReader(&self, bindex: u8) -> windows_core::Result<u8>;
fn GetWideAspectRatio(&self, bindex: u8) -> windows_core::Result<u8>;
}
impl ICaptionServiceDescriptor_Vtbl {
pub const fn new<Identity: ICaptionServiceDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetNumberOfServices<Identity: ICaptionServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICaptionServiceDescriptor_Impl::GetNumberOfServices(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLanguageCode<Identity: ICaptionServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, langcode: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICaptionServiceDescriptor_Impl::GetLanguageCode(this, core::mem::transmute_copy(&bindex), core::mem::transmute_copy(&langcode)).into()
}
}
unsafe extern "system" fn GetCaptionServiceNumber<Identity: ICaptionServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICaptionServiceDescriptor_Impl::GetCaptionServiceNumber(this, core::mem::transmute_copy(&bindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCCType<Identity: ICaptionServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICaptionServiceDescriptor_Impl::GetCCType(this, core::mem::transmute_copy(&bindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEasyReader<Identity: ICaptionServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICaptionServiceDescriptor_Impl::GetEasyReader(this, core::mem::transmute_copy(&bindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetWideAspectRatio<Identity: ICaptionServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ICaptionServiceDescriptor_Impl::GetWideAspectRatio(this, core::mem::transmute_copy(&bindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNumberOfServices: GetNumberOfServices::<Identity, OFFSET>,
GetLanguageCode: GetLanguageCode::<Identity, OFFSET>,
GetCaptionServiceNumber: GetCaptionServiceNumber::<Identity, OFFSET>,
GetCCType: GetCCType::<Identity, OFFSET>,
GetEasyReader: GetEasyReader::<Identity, OFFSET>,
GetWideAspectRatio: GetWideAspectRatio::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICaptionServiceDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ICaptionServiceDescriptor {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IChannelIDTuneRequest, IChannelIDTuneRequest_Vtbl, 0x156eff60_86f4_4e28_89fc_109799fd57ee);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IChannelIDTuneRequest {
type Target = ITuneRequest;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IChannelIDTuneRequest, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuneRequest);
#[cfg(feature = "Win32_System_Com")]
impl IChannelIDTuneRequest {
pub unsafe fn ChannelID(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ChannelID)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetChannelID(&self, channelid: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetChannelID)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(channelid)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IChannelIDTuneRequest_Vtbl {
pub base__: ITuneRequest_Vtbl,
pub ChannelID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetChannelID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IChannelIDTuneRequest_Impl: ITuneRequest_Impl {
fn ChannelID(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetChannelID(&self, channelid: &windows_core::BSTR) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IChannelIDTuneRequest_Vtbl {
pub const fn new<Identity: IChannelIDTuneRequest_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn ChannelID<Identity: IChannelIDTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, channelid: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IChannelIDTuneRequest_Impl::ChannelID(this) {
Ok(ok__) => {
channelid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetChannelID<Identity: IChannelIDTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, channelid: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IChannelIDTuneRequest_Impl::SetChannelID(this, core::mem::transmute(&channelid)).into()
}
}
Self { base__: ITuneRequest_Vtbl::new::<Identity, OFFSET>(), ChannelID: ChannelID::<Identity, OFFSET>, SetChannelID: SetChannelID::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IChannelIDTuneRequest as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuneRequest as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IChannelIDTuneRequest {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IChannelTuneRequest, IChannelTuneRequest_Vtbl, 0x0369b4e0_45b6_11d3_b650_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IChannelTuneRequest {
type Target = ITuneRequest;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IChannelTuneRequest, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuneRequest);
#[cfg(feature = "Win32_System_Com")]
impl IChannelTuneRequest {
pub unsafe fn Channel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Channel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetChannel(&self, channel: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetChannel)(windows_core::Interface::as_raw(self), channel).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IChannelTuneRequest_Vtbl {
pub base__: ITuneRequest_Vtbl,
pub Channel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IChannelTuneRequest_Impl: ITuneRequest_Impl {
fn Channel(&self) -> windows_core::Result<i32>;
fn SetChannel(&self, channel: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IChannelTuneRequest_Vtbl {
pub const fn new<Identity: IChannelTuneRequest_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Channel<Identity: IChannelTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, channel: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IChannelTuneRequest_Impl::Channel(this) {
Ok(ok__) => {
channel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetChannel<Identity: IChannelTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, channel: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IChannelTuneRequest_Impl::SetChannel(this, core::mem::transmute_copy(&channel)).into()
}
}
Self { base__: ITuneRequest_Vtbl::new::<Identity, OFFSET>(), Channel: Channel::<Identity, OFFSET>, SetChannel: SetChannel::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IChannelTuneRequest as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuneRequest as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IChannelTuneRequest {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IComponent, IComponent_Vtbl, 0x1a5576fc_0e19_11d3_9d8e_00c04f72d980);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IComponent {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IComponent, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IComponent {
pub unsafe fn Type(&self) -> windows_core::Result<IComponentType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Type)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetType<P0>(&self, ct: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IComponentType>,
{
unsafe { (windows_core::Interface::vtable(self).SetType)(windows_core::Interface::as_raw(self), ct.param().abi()).ok() }
}
pub unsafe fn DescLangID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DescLangID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetDescLangID(&self, langid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDescLangID)(windows_core::Interface::as_raw(self), langid).ok() }
}
pub unsafe fn Status(&self) -> windows_core::Result<super::ComponentStatus> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Status)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetStatus(&self, status: super::ComponentStatus) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetStatus)(windows_core::Interface::as_raw(self), status).ok() }
}
pub unsafe fn Description(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Description)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetDescription(&self, description: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDescription)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(description)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IComponent> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IComponent_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Type: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub DescLangID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetDescLangID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub Status: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::ComponentStatus) -> windows_core::HRESULT,
pub SetStatus: unsafe extern "system" fn(*mut core::ffi::c_void, super::ComponentStatus) -> windows_core::HRESULT,
pub Description: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetDescription: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IComponent_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Type(&self) -> windows_core::Result<IComponentType>;
fn SetType(&self, ct: windows_core::Ref<IComponentType>) -> windows_core::Result<()>;
fn DescLangID(&self) -> windows_core::Result<i32>;
fn SetDescLangID(&self, langid: i32) -> windows_core::Result<()>;
fn Status(&self) -> windows_core::Result<super::ComponentStatus>;
fn SetStatus(&self, status: super::ComponentStatus) -> windows_core::Result<()>;
fn Description(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetDescription(&self, description: &windows_core::BSTR) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IComponent>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IComponent_Vtbl {
pub const fn new<Identity: IComponent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Type<Identity: IComponent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ct: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponent_Impl::Type(this) {
Ok(ok__) => {
ct.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetType<Identity: IComponent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ct: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponent_Impl::SetType(this, core::mem::transmute_copy(&ct)).into()
}
}
unsafe extern "system" fn DescLangID<Identity: IComponent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, langid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponent_Impl::DescLangID(this) {
Ok(ok__) => {
langid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDescLangID<Identity: IComponent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, langid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponent_Impl::SetDescLangID(this, core::mem::transmute_copy(&langid)).into()
}
}
unsafe extern "system" fn Status<Identity: IComponent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, status: *mut super::ComponentStatus) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponent_Impl::Status(this) {
Ok(ok__) => {
status.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetStatus<Identity: IComponent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, status: super::ComponentStatus) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponent_Impl::SetStatus(this, core::mem::transmute_copy(&status)).into()
}
}
unsafe extern "system" fn Description<Identity: IComponent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, description: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponent_Impl::Description(this) {
Ok(ok__) => {
description.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDescription<Identity: IComponent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, description: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponent_Impl::SetDescription(this, core::mem::transmute(&description)).into()
}
}
unsafe extern "system" fn Clone<Identity: IComponent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newcomponent: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponent_Impl::Clone(this) {
Ok(ok__) => {
newcomponent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Type: Type::<Identity, OFFSET>,
SetType: SetType::<Identity, OFFSET>,
DescLangID: DescLangID::<Identity, OFFSET>,
SetDescLangID: SetDescLangID::<Identity, OFFSET>,
Status: Status::<Identity, OFFSET>,
SetStatus: SetStatus::<Identity, OFFSET>,
Description: Description::<Identity, OFFSET>,
SetDescription: SetDescription::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IComponent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IComponent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IComponentType, IComponentType_Vtbl, 0x6a340dc0_0311_11d3_9d8e_00c04f72d980);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IComponentType {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IComponentType, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IComponentType {
pub unsafe fn Category(&self) -> windows_core::Result<super::ComponentCategory> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Category)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCategory(&self, category: super::ComponentCategory) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCategory)(windows_core::Interface::as_raw(self), category).ok() }
}
pub unsafe fn MediaMajorType(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MediaMajorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetMediaMajorType(&self, mediamajortype: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMediaMajorType)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(mediamajortype)).ok() }
}
pub unsafe fn _MediaMajorType(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._MediaMajorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Set_MediaMajorType(&self, mediamajortypeguid: *const windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_MediaMajorType)(windows_core::Interface::as_raw(self), mediamajortypeguid).ok() }
}
pub unsafe fn MediaSubType(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MediaSubType)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetMediaSubType(&self, mediasubtype: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMediaSubType)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(mediasubtype)).ok() }
}
pub unsafe fn _MediaSubType(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._MediaSubType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Set_MediaSubType(&self, mediasubtypeguid: *const windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_MediaSubType)(windows_core::Interface::as_raw(self), mediasubtypeguid).ok() }
}
pub unsafe fn MediaFormatType(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MediaFormatType)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetMediaFormatType(&self, mediaformattype: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMediaFormatType)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(mediaformattype)).ok() }
}
pub unsafe fn _MediaFormatType(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._MediaFormatType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Set_MediaFormatType(&self, mediaformattypeguid: *const windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_MediaFormatType)(windows_core::Interface::as_raw(self), mediaformattypeguid).ok() }
}
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub unsafe fn MediaType(&self) -> windows_core::Result<super::super::MediaFoundation::AM_MEDIA_TYPE> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MediaType)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub unsafe fn SetMediaType(&self, mediatype: *const super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMediaType)(windows_core::Interface::as_raw(self), core::mem::transmute(mediatype)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IComponentType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IComponentType_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Category: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::ComponentCategory) -> windows_core::HRESULT,
pub SetCategory: unsafe extern "system" fn(*mut core::ffi::c_void, super::ComponentCategory) -> windows_core::HRESULT,
pub MediaMajorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetMediaMajorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub _MediaMajorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub Set_MediaMajorType: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID) -> windows_core::HRESULT,
pub MediaSubType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetMediaSubType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub _MediaSubType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub Set_MediaSubType: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID) -> windows_core::HRESULT,
pub MediaFormatType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetMediaFormatType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub _MediaFormatType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub Set_MediaFormatType: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID) -> windows_core::HRESULT,
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub MediaType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_Media_MediaFoundation"))]
MediaType: usize,
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub SetMediaType: unsafe extern "system" fn(*mut core::ffi::c_void, *const super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_Media_MediaFoundation"))]
SetMediaType: usize,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IComponentType_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Category(&self) -> windows_core::Result<super::ComponentCategory>;
fn SetCategory(&self, category: super::ComponentCategory) -> windows_core::Result<()>;
fn MediaMajorType(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetMediaMajorType(&self, mediamajortype: &windows_core::BSTR) -> windows_core::Result<()>;
fn _MediaMajorType(&self) -> windows_core::Result<windows_core::GUID>;
fn Set_MediaMajorType(&self, mediamajortypeguid: *const windows_core::GUID) -> windows_core::Result<()>;
fn MediaSubType(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetMediaSubType(&self, mediasubtype: &windows_core::BSTR) -> windows_core::Result<()>;
fn _MediaSubType(&self) -> windows_core::Result<windows_core::GUID>;
fn Set_MediaSubType(&self, mediasubtypeguid: *const windows_core::GUID) -> windows_core::Result<()>;
fn MediaFormatType(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetMediaFormatType(&self, mediaformattype: &windows_core::BSTR) -> windows_core::Result<()>;
fn _MediaFormatType(&self) -> windows_core::Result<windows_core::GUID>;
fn Set_MediaFormatType(&self, mediaformattypeguid: *const windows_core::GUID) -> windows_core::Result<()>;
fn MediaType(&self) -> windows_core::Result<super::super::MediaFoundation::AM_MEDIA_TYPE>;
fn SetMediaType(&self, mediatype: *const super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IComponentType>;
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IComponentType_Vtbl {
pub const fn new<Identity: IComponentType_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Category<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, category: *mut super::ComponentCategory) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentType_Impl::Category(this) {
Ok(ok__) => {
category.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCategory<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, category: super::ComponentCategory) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentType_Impl::SetCategory(this, core::mem::transmute_copy(&category)).into()
}
}
unsafe extern "system" fn MediaMajorType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediamajortype: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentType_Impl::MediaMajorType(this) {
Ok(ok__) => {
mediamajortype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMediaMajorType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediamajortype: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentType_Impl::SetMediaMajorType(this, core::mem::transmute(&mediamajortype)).into()
}
}
unsafe extern "system" fn _MediaMajorType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediamajortypeguid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentType_Impl::_MediaMajorType(this) {
Ok(ok__) => {
mediamajortypeguid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Set_MediaMajorType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediamajortypeguid: *const windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentType_Impl::Set_MediaMajorType(this, core::mem::transmute_copy(&mediamajortypeguid)).into()
}
}
unsafe extern "system" fn MediaSubType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediasubtype: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentType_Impl::MediaSubType(this) {
Ok(ok__) => {
mediasubtype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMediaSubType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediasubtype: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentType_Impl::SetMediaSubType(this, core::mem::transmute(&mediasubtype)).into()
}
}
unsafe extern "system" fn _MediaSubType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediasubtypeguid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentType_Impl::_MediaSubType(this) {
Ok(ok__) => {
mediasubtypeguid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Set_MediaSubType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediasubtypeguid: *const windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentType_Impl::Set_MediaSubType(this, core::mem::transmute_copy(&mediasubtypeguid)).into()
}
}
unsafe extern "system" fn MediaFormatType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediaformattype: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentType_Impl::MediaFormatType(this) {
Ok(ok__) => {
mediaformattype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMediaFormatType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediaformattype: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentType_Impl::SetMediaFormatType(this, core::mem::transmute(&mediaformattype)).into()
}
}
unsafe extern "system" fn _MediaFormatType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediaformattypeguid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentType_Impl::_MediaFormatType(this) {
Ok(ok__) => {
mediaformattypeguid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Set_MediaFormatType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediaformattypeguid: *const windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentType_Impl::Set_MediaFormatType(this, core::mem::transmute_copy(&mediaformattypeguid)).into()
}
}
unsafe extern "system" fn MediaType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediatype: *mut super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentType_Impl::MediaType(this) {
Ok(ok__) => {
mediatype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMediaType<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mediatype: *const super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentType_Impl::SetMediaType(this, core::mem::transmute_copy(&mediatype)).into()
}
}
unsafe extern "system" fn Clone<Identity: IComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newct: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentType_Impl::Clone(this) {
Ok(ok__) => {
newct.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Category: Category::<Identity, OFFSET>,
SetCategory: SetCategory::<Identity, OFFSET>,
MediaMajorType: MediaMajorType::<Identity, OFFSET>,
SetMediaMajorType: SetMediaMajorType::<Identity, OFFSET>,
_MediaMajorType: _MediaMajorType::<Identity, OFFSET>,
Set_MediaMajorType: Set_MediaMajorType::<Identity, OFFSET>,
MediaSubType: MediaSubType::<Identity, OFFSET>,
SetMediaSubType: SetMediaSubType::<Identity, OFFSET>,
_MediaSubType: _MediaSubType::<Identity, OFFSET>,
Set_MediaSubType: Set_MediaSubType::<Identity, OFFSET>,
MediaFormatType: MediaFormatType::<Identity, OFFSET>,
SetMediaFormatType: SetMediaFormatType::<Identity, OFFSET>,
_MediaFormatType: _MediaFormatType::<Identity, OFFSET>,
Set_MediaFormatType: Set_MediaFormatType::<Identity, OFFSET>,
MediaType: MediaType::<Identity, OFFSET>,
SetMediaType: SetMediaType::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IComponentType as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IComponentType {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IComponentTypes, IComponentTypes_Vtbl, 0x0dc13d4a_0313_11d3_9d8e_00c04f72d980);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IComponentTypes {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IComponentTypes, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IComponentTypes {
pub unsafe fn Count(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NewEnum)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn EnumComponentTypes(&self) -> windows_core::Result<IEnumComponentTypes> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumComponentTypes)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn get_Item(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IComponentType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(index), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn put_Item<P1>(&self, index: &super::super::super::System::Variant::VARIANT, componenttype: P1) -> windows_core::Result<()>
where
P1: windows_core::Param<IComponentType>,
{
unsafe { (windows_core::Interface::vtable(self).put_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(index), componenttype.param().abi()).ok() }
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Add<P0>(&self, componenttype: P0) -> windows_core::Result<super::super::super::System::Variant::VARIANT>
where
P0: windows_core::Param<IComponentType>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Add)(windows_core::Interface::as_raw(self), componenttype.param().abi(), &mut result__).map(|| core::mem::transmute(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Remove(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Remove)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(index)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IComponentTypes> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IComponentTypes_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub _NewEnum: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
_NewEnum: usize,
pub EnumComponentTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub get_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
get_Item: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub put_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
put_Item: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Add: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Add: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Remove: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Remove: usize,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IComponentTypes_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> windows_core::Result<i32>;
fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn EnumComponentTypes(&self) -> windows_core::Result<IEnumComponentTypes>;
fn get_Item(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IComponentType>;
fn put_Item(&self, index: &super::super::super::System::Variant::VARIANT, componenttype: windows_core::Ref<IComponentType>) -> windows_core::Result<()>;
fn Add(&self, componenttype: windows_core::Ref<IComponentType>) -> windows_core::Result<super::super::super::System::Variant::VARIANT>;
fn Remove(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IComponentTypes>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IComponentTypes_Vtbl {
pub const fn new<Identity: IComponentTypes_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<Identity: IComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, count: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentTypes_Impl::Count(this) {
Ok(ok__) => {
count.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _NewEnum<Identity: IComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppnewenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentTypes_Impl::_NewEnum(this) {
Ok(ok__) => {
ppnewenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn EnumComponentTypes<Identity: IComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppnewenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentTypes_Impl::EnumComponentTypes(this) {
Ok(ok__) => {
ppnewenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_Item<Identity: IComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: super::super::super::System::Variant::VARIANT, componenttype: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentTypes_Impl::get_Item(this, core::mem::transmute(&index)) {
Ok(ok__) => {
componenttype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn put_Item<Identity: IComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: super::super::super::System::Variant::VARIANT, componenttype: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentTypes_Impl::put_Item(this, core::mem::transmute(&index), core::mem::transmute_copy(&componenttype)).into()
}
}
unsafe extern "system" fn Add<Identity: IComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, componenttype: *mut core::ffi::c_void, newindex: *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentTypes_Impl::Add(this, core::mem::transmute_copy(&componenttype)) {
Ok(ok__) => {
newindex.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Remove<Identity: IComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentTypes_Impl::Remove(this, core::mem::transmute(&index)).into()
}
}
unsafe extern "system" fn Clone<Identity: IComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newlist: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentTypes_Impl::Clone(this) {
Ok(ok__) => {
newlist.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
_NewEnum: _NewEnum::<Identity, OFFSET>,
EnumComponentTypes: EnumComponentTypes::<Identity, OFFSET>,
get_Item: get_Item::<Identity, OFFSET>,
put_Item: put_Item::<Identity, OFFSET>,
Add: Add::<Identity, OFFSET>,
Remove: Remove::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IComponentTypes as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IComponentTypes {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IComponents, IComponents_Vtbl, 0x39a48091_fffe_4182_a161_3ff802640e26);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IComponents {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IComponents, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IComponents {
pub unsafe fn Count(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NewEnum)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn EnumComponents(&self) -> windows_core::Result<IEnumComponents> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumComponents)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn get_Item(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IComponent> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(index), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Add<P0>(&self, component: P0) -> windows_core::Result<super::super::super::System::Variant::VARIANT>
where
P0: windows_core::Param<IComponent>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Add)(windows_core::Interface::as_raw(self), component.param().abi(), &mut result__).map(|| core::mem::transmute(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Remove(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Remove)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(index)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IComponents> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn put_Item<P1>(&self, index: &super::super::super::System::Variant::VARIANT, ppcomponent: P1) -> windows_core::Result<()>
where
P1: windows_core::Param<IComponent>,
{
unsafe { (windows_core::Interface::vtable(self).put_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(index), ppcomponent.param().abi()).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IComponents_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub _NewEnum: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
_NewEnum: usize,
pub EnumComponents: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub get_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
get_Item: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Add: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Add: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Remove: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Remove: usize,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub put_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
put_Item: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IComponents_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> windows_core::Result<i32>;
fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn EnumComponents(&self) -> windows_core::Result<IEnumComponents>;
fn get_Item(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IComponent>;
fn Add(&self, component: windows_core::Ref<IComponent>) -> windows_core::Result<super::super::super::System::Variant::VARIANT>;
fn Remove(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IComponents>;
fn put_Item(&self, index: &super::super::super::System::Variant::VARIANT, ppcomponent: windows_core::Ref<IComponent>) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IComponents_Vtbl {
pub const fn new<Identity: IComponents_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<Identity: IComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, count: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponents_Impl::Count(this) {
Ok(ok__) => {
count.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _NewEnum<Identity: IComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppnewenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponents_Impl::_NewEnum(this) {
Ok(ok__) => {
ppnewenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn EnumComponents<Identity: IComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppnewenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponents_Impl::EnumComponents(this) {
Ok(ok__) => {
ppnewenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_Item<Identity: IComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: super::super::super::System::Variant::VARIANT, ppcomponent: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponents_Impl::get_Item(this, core::mem::transmute(&index)) {
Ok(ok__) => {
ppcomponent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Add<Identity: IComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, component: *mut core::ffi::c_void, newindex: *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponents_Impl::Add(this, core::mem::transmute_copy(&component)) {
Ok(ok__) => {
newindex.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Remove<Identity: IComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponents_Impl::Remove(this, core::mem::transmute(&index)).into()
}
}
unsafe extern "system" fn Clone<Identity: IComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newlist: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponents_Impl::Clone(this) {
Ok(ok__) => {
newlist.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn put_Item<Identity: IComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: super::super::super::System::Variant::VARIANT, ppcomponent: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponents_Impl::put_Item(this, core::mem::transmute(&index), core::mem::transmute_copy(&ppcomponent)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
_NewEnum: _NewEnum::<Identity, OFFSET>,
EnumComponents: EnumComponents::<Identity, OFFSET>,
get_Item: get_Item::<Identity, OFFSET>,
Add: Add::<Identity, OFFSET>,
Remove: Remove::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
put_Item: put_Item::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IComponents as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IComponents {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IComponentsOld, IComponentsOld_Vtbl, 0xfcd01846_0e19_11d3_9d8e_00c04f72d980);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IComponentsOld {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IComponentsOld, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IComponentsOld {
pub unsafe fn Count(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NewEnum)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn EnumComponents(&self) -> windows_core::Result<IEnumComponents> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumComponents)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn get_Item(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IComponent> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(index), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Add<P0>(&self, component: P0) -> windows_core::Result<super::super::super::System::Variant::VARIANT>
where
P0: windows_core::Param<IComponent>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Add)(windows_core::Interface::as_raw(self), component.param().abi(), &mut result__).map(|| core::mem::transmute(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Remove(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Remove)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(index)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IComponents> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IComponentsOld_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub _NewEnum: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
_NewEnum: usize,
pub EnumComponents: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub get_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
get_Item: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Add: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Add: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Remove: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Remove: usize,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IComponentsOld_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> windows_core::Result<i32>;
fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn EnumComponents(&self) -> windows_core::Result<IEnumComponents>;
fn get_Item(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IComponent>;
fn Add(&self, component: windows_core::Ref<IComponent>) -> windows_core::Result<super::super::super::System::Variant::VARIANT>;
fn Remove(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IComponents>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IComponentsOld_Vtbl {
pub const fn new<Identity: IComponentsOld_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<Identity: IComponentsOld_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, count: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentsOld_Impl::Count(this) {
Ok(ok__) => {
count.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _NewEnum<Identity: IComponentsOld_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppnewenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentsOld_Impl::_NewEnum(this) {
Ok(ok__) => {
ppnewenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn EnumComponents<Identity: IComponentsOld_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppnewenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentsOld_Impl::EnumComponents(this) {
Ok(ok__) => {
ppnewenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_Item<Identity: IComponentsOld_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: super::super::super::System::Variant::VARIANT, ppcomponent: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentsOld_Impl::get_Item(this, core::mem::transmute(&index)) {
Ok(ok__) => {
ppcomponent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Add<Identity: IComponentsOld_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, component: *mut core::ffi::c_void, newindex: *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentsOld_Impl::Add(this, core::mem::transmute_copy(&component)) {
Ok(ok__) => {
newindex.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Remove<Identity: IComponentsOld_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IComponentsOld_Impl::Remove(this, core::mem::transmute(&index)).into()
}
}
unsafe extern "system" fn Clone<Identity: IComponentsOld_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newlist: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IComponentsOld_Impl::Clone(this) {
Ok(ok__) => {
newlist.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
_NewEnum: _NewEnum::<Identity, OFFSET>,
EnumComponents: EnumComponents::<Identity, OFFSET>,
get_Item: get_Item::<Identity, OFFSET>,
Add: Add::<Identity, OFFSET>,
Remove: Remove::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IComponentsOld as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IComponentsOld {}
windows_core::imp::define_interface!(ICreatePropBagOnRegKey, ICreatePropBagOnRegKey_Vtbl, 0x8a674b48_1f63_11d3_b64c_00c04f79498e);
windows_core::imp::interface_hierarchy!(ICreatePropBagOnRegKey, windows_core::IUnknown);
impl ICreatePropBagOnRegKey {
#[cfg(feature = "Win32_System_Registry")]
pub unsafe fn Create<P1>(&self, hkey: super::super::super::System::Registry::HKEY, subkey: P1, uloptions: u32, samdesired: u32, iid: *const windows_core::GUID, ppbag: *mut *mut core::ffi::c_void) -> windows_core::Result<()>
where
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).Create)(windows_core::Interface::as_raw(self), hkey, subkey.param().abi(), uloptions, samdesired, iid, ppbag as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ICreatePropBagOnRegKey_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Registry")]
pub Create: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Registry::HKEY, windows_core::PCWSTR, u32, u32, *const windows_core::GUID, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Registry"))]
Create: usize,
}
#[cfg(feature = "Win32_System_Registry")]
pub trait ICreatePropBagOnRegKey_Impl: windows_core::IUnknownImpl {
fn Create(&self, hkey: super::super::super::System::Registry::HKEY, subkey: &windows_core::PCWSTR, uloptions: u32, samdesired: u32, iid: *const windows_core::GUID, ppbag: *mut *mut core::ffi::c_void) -> windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Registry")]
impl ICreatePropBagOnRegKey_Vtbl {
pub const fn new<Identity: ICreatePropBagOnRegKey_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Create<Identity: ICreatePropBagOnRegKey_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hkey: super::super::super::System::Registry::HKEY, subkey: windows_core::PCWSTR, uloptions: u32, samdesired: u32, iid: *const windows_core::GUID, ppbag: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ICreatePropBagOnRegKey_Impl::Create(this, core::mem::transmute_copy(&hkey), core::mem::transmute(&subkey), core::mem::transmute_copy(&uloptions), core::mem::transmute_copy(&samdesired), core::mem::transmute_copy(&iid), core::mem::transmute_copy(&ppbag)).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Create: Create::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ICreatePropBagOnRegKey as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Registry")]
impl windows_core::RuntimeName for ICreatePropBagOnRegKey {}
windows_core::imp::define_interface!(IDTFilter, IDTFilter_Vtbl, 0xc4c4c4b2_0049_4e2b_98fb_9537f6ce516d);
windows_core::imp::interface_hierarchy!(IDTFilter, windows_core::IUnknown);
impl IDTFilter {
pub unsafe fn EvalRatObjOK(&self) -> windows_core::Result<windows_core::HRESULT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EvalRatObjOK)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCurrRating(&self, pensystem: *mut EnTvRat_System, penrating: *mut EnTvRat_GenericLevel, plbfenattr: *mut i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetCurrRating)(windows_core::Interface::as_raw(self), pensystem as _, penrating as _, plbfenattr as _).ok() }
}
pub unsafe fn get_BlockedRatingAttributes(&self, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_BlockedRatingAttributes)(windows_core::Interface::as_raw(self), ensystem, enlevel, &mut result__).map(|| result__)
}
}
pub unsafe fn put_BlockedRatingAttributes(&self, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel, lbfattrs: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).put_BlockedRatingAttributes)(windows_core::Interface::as_raw(self), ensystem, enlevel, lbfattrs).ok() }
}
pub unsafe fn BlockUnRated(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).BlockUnRated)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetBlockUnRated(&self, fblockunratedshows: bool) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBlockUnRated)(windows_core::Interface::as_raw(self), fblockunratedshows.into()).ok() }
}
pub unsafe fn BlockUnRatedDelay(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).BlockUnRatedDelay)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetBlockUnRatedDelay(&self, msecsdelaybeforeblock: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBlockUnRatedDelay)(windows_core::Interface::as_raw(self), msecsdelaybeforeblock).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDTFilter_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub EvalRatObjOK: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::HRESULT) -> windows_core::HRESULT,
pub GetCurrRating: unsafe extern "system" fn(*mut core::ffi::c_void, *mut EnTvRat_System, *mut EnTvRat_GenericLevel, *mut i32) -> windows_core::HRESULT,
pub get_BlockedRatingAttributes: unsafe extern "system" fn(*mut core::ffi::c_void, EnTvRat_System, EnTvRat_GenericLevel, *mut i32) -> windows_core::HRESULT,
pub put_BlockedRatingAttributes: unsafe extern "system" fn(*mut core::ffi::c_void, EnTvRat_System, EnTvRat_GenericLevel, i32) -> windows_core::HRESULT,
pub BlockUnRated: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub SetBlockUnRated: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::BOOL) -> windows_core::HRESULT,
pub BlockUnRatedDelay: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetBlockUnRatedDelay: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
pub trait IDTFilter_Impl: windows_core::IUnknownImpl {
fn EvalRatObjOK(&self) -> windows_core::Result<windows_core::HRESULT>;
fn GetCurrRating(&self, pensystem: *mut EnTvRat_System, penrating: *mut EnTvRat_GenericLevel, plbfenattr: *mut i32) -> windows_core::Result<()>;
fn get_BlockedRatingAttributes(&self, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel) -> windows_core::Result<i32>;
fn put_BlockedRatingAttributes(&self, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel, lbfattrs: i32) -> windows_core::Result<()>;
fn BlockUnRated(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetBlockUnRated(&self, fblockunratedshows: windows_core::BOOL) -> windows_core::Result<()>;
fn BlockUnRatedDelay(&self) -> windows_core::Result<i32>;
fn SetBlockUnRatedDelay(&self, msecsdelaybeforeblock: i32) -> windows_core::Result<()>;
}
impl IDTFilter_Vtbl {
pub const fn new<Identity: IDTFilter_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn EvalRatObjOK<Identity: IDTFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, phrcocreateretval: *mut windows_core::HRESULT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDTFilter_Impl::EvalRatObjOK(this) {
Ok(ok__) => {
phrcocreateretval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCurrRating<Identity: IDTFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pensystem: *mut EnTvRat_System, penrating: *mut EnTvRat_GenericLevel, plbfenattr: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDTFilter_Impl::GetCurrRating(this, core::mem::transmute_copy(&pensystem), core::mem::transmute_copy(&penrating), core::mem::transmute_copy(&plbfenattr)).into()
}
}
unsafe extern "system" fn get_BlockedRatingAttributes<Identity: IDTFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel, plbfenattr: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDTFilter_Impl::get_BlockedRatingAttributes(this, core::mem::transmute_copy(&ensystem), core::mem::transmute_copy(&enlevel)) {
Ok(ok__) => {
plbfenattr.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn put_BlockedRatingAttributes<Identity: IDTFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel, lbfattrs: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDTFilter_Impl::put_BlockedRatingAttributes(this, core::mem::transmute_copy(&ensystem), core::mem::transmute_copy(&enlevel), core::mem::transmute_copy(&lbfattrs)).into()
}
}
unsafe extern "system" fn BlockUnRated<Identity: IDTFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfblockunratedshows: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDTFilter_Impl::BlockUnRated(this) {
Ok(ok__) => {
pfblockunratedshows.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBlockUnRated<Identity: IDTFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fblockunratedshows: windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDTFilter_Impl::SetBlockUnRated(this, core::mem::transmute_copy(&fblockunratedshows)).into()
}
}
unsafe extern "system" fn BlockUnRatedDelay<Identity: IDTFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pmsecsdelaybeforeblock: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDTFilter_Impl::BlockUnRatedDelay(this) {
Ok(ok__) => {
pmsecsdelaybeforeblock.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBlockUnRatedDelay<Identity: IDTFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, msecsdelaybeforeblock: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDTFilter_Impl::SetBlockUnRatedDelay(this, core::mem::transmute_copy(&msecsdelaybeforeblock)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
EvalRatObjOK: EvalRatObjOK::<Identity, OFFSET>,
GetCurrRating: GetCurrRating::<Identity, OFFSET>,
get_BlockedRatingAttributes: get_BlockedRatingAttributes::<Identity, OFFSET>,
put_BlockedRatingAttributes: put_BlockedRatingAttributes::<Identity, OFFSET>,
BlockUnRated: BlockUnRated::<Identity, OFFSET>,
SetBlockUnRated: SetBlockUnRated::<Identity, OFFSET>,
BlockUnRatedDelay: BlockUnRatedDelay::<Identity, OFFSET>,
SetBlockUnRatedDelay: SetBlockUnRatedDelay::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDTFilter as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDTFilter {}
windows_core::imp::define_interface!(IDTFilter2, IDTFilter2_Vtbl, 0xc4c4c4b4_0049_4e2b_98fb_9537f6ce516d);
impl core::ops::Deref for IDTFilter2 {
type Target = IDTFilter;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDTFilter2, windows_core::IUnknown, IDTFilter);
impl IDTFilter2 {
pub unsafe fn ChallengeUrl(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ChallengeUrl)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetCurrLicenseExpDate(&self, prottype: *const ProtType) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrLicenseExpDate)(windows_core::Interface::as_raw(self), prottype, &mut result__).map(|| result__)
}
}
pub unsafe fn GetLastErrorCode(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLastErrorCode)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDTFilter2_Vtbl {
pub base__: IDTFilter_Vtbl,
pub ChallengeUrl: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCurrLicenseExpDate: unsafe extern "system" fn(*mut core::ffi::c_void, *const ProtType, *mut i32) -> windows_core::HRESULT,
pub GetLastErrorCode: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDTFilter2_Impl: IDTFilter_Impl {
fn ChallengeUrl(&self) -> windows_core::Result<windows_core::BSTR>;
fn GetCurrLicenseExpDate(&self, prottype: *const ProtType) -> windows_core::Result<i32>;
fn GetLastErrorCode(&self) -> windows_core::Result<()>;
}
impl IDTFilter2_Vtbl {
pub const fn new<Identity: IDTFilter2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn ChallengeUrl<Identity: IDTFilter2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbstrchallengeurl: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDTFilter2_Impl::ChallengeUrl(this) {
Ok(ok__) => {
pbstrchallengeurl.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCurrLicenseExpDate<Identity: IDTFilter2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prottype: *const ProtType, lpdatetime: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDTFilter2_Impl::GetCurrLicenseExpDate(this, core::mem::transmute_copy(&prottype)) {
Ok(ok__) => {
lpdatetime.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLastErrorCode<Identity: IDTFilter2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDTFilter2_Impl::GetLastErrorCode(this).into()
}
}
Self {
base__: IDTFilter_Vtbl::new::<Identity, OFFSET>(),
ChallengeUrl: ChallengeUrl::<Identity, OFFSET>,
GetCurrLicenseExpDate: GetCurrLicenseExpDate::<Identity, OFFSET>,
GetLastErrorCode: GetLastErrorCode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDTFilter2 as windows_core::Interface>::IID || iid == &<IDTFilter as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDTFilter2 {}
windows_core::imp::define_interface!(IDTFilter3, IDTFilter3_Vtbl, 0x513998cc_e929_4cdf_9fbd_bad1e0314866);
impl core::ops::Deref for IDTFilter3 {
type Target = IDTFilter2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDTFilter3, windows_core::IUnknown, IDTFilter, IDTFilter2);
impl IDTFilter3 {
pub unsafe fn GetProtectionType(&self) -> windows_core::Result<ProtType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProtectionType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn LicenseHasExpirationDate(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LicenseHasExpirationDate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetRights(&self, bstrrights: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetRights)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(bstrrights)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDTFilter3_Vtbl {
pub base__: IDTFilter2_Vtbl,
pub GetProtectionType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut ProtType) -> windows_core::HRESULT,
pub LicenseHasExpirationDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub SetRights: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDTFilter3_Impl: IDTFilter2_Impl {
fn GetProtectionType(&self) -> windows_core::Result<ProtType>;
fn LicenseHasExpirationDate(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetRights(&self, bstrrights: &windows_core::BSTR) -> windows_core::Result<()>;
}
impl IDTFilter3_Vtbl {
pub const fn new<Identity: IDTFilter3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetProtectionType<Identity: IDTFilter3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pprotectiontype: *mut ProtType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDTFilter3_Impl::GetProtectionType(this) {
Ok(ok__) => {
pprotectiontype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn LicenseHasExpirationDate<Identity: IDTFilter3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pflicensehasexpirationdate: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDTFilter3_Impl::LicenseHasExpirationDate(this) {
Ok(ok__) => {
pflicensehasexpirationdate.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetRights<Identity: IDTFilter3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bstrrights: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDTFilter3_Impl::SetRights(this, core::mem::transmute(&bstrrights)).into()
}
}
Self {
base__: IDTFilter2_Vtbl::new::<Identity, OFFSET>(),
GetProtectionType: GetProtectionType::<Identity, OFFSET>,
LicenseHasExpirationDate: LicenseHasExpirationDate::<Identity, OFFSET>,
SetRights: SetRights::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDTFilter3 as windows_core::Interface>::IID || iid == &<IDTFilter as windows_core::Interface>::IID || iid == &<IDTFilter2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDTFilter3 {}
windows_core::imp::define_interface!(IDTFilterConfig, IDTFilterConfig_Vtbl, 0xc4c4c4d2_0049_4e2b_98fb_9537f6ce516d);
windows_core::imp::interface_hierarchy!(IDTFilterConfig, windows_core::IUnknown);
impl IDTFilterConfig {
pub unsafe fn GetSecureChannelObject(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSecureChannelObject)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDTFilterConfig_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetSecureChannelObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDTFilterConfig_Impl: windows_core::IUnknownImpl {
fn GetSecureChannelObject(&self) -> windows_core::Result<windows_core::IUnknown>;
}
impl IDTFilterConfig_Vtbl {
pub const fn new<Identity: IDTFilterConfig_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetSecureChannelObject<Identity: IDTFilterConfig_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunkdrmsecurechannel: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDTFilterConfig_Impl::GetSecureChannelObject(this) {
Ok(ok__) => {
ppunkdrmsecurechannel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetSecureChannelObject: GetSecureChannelObject::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDTFilterConfig as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDTFilterConfig {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDTFilterEvents, IDTFilterEvents_Vtbl, 0xc4c4c4c2_0049_4e2b_98fb_9537f6ce516d);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDTFilterEvents {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDTFilterEvents, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDTFilterEvents_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDTFilterEvents_Impl: super::super::super::System::Com::IDispatch_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDTFilterEvents_Vtbl {
pub const fn new<Identity: IDTFilterEvents_Impl, const OFFSET: isize>() -> Self {
Self { base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDTFilterEvents as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDTFilterEvents {}
windows_core::imp::define_interface!(IDTFilterLicenseRenewal, IDTFilterLicenseRenewal_Vtbl, 0x8a78b317_e405_4a43_994a_620d8f5ce25e);
windows_core::imp::interface_hierarchy!(IDTFilterLicenseRenewal, windows_core::IUnknown);
impl IDTFilterLicenseRenewal {
pub unsafe fn GetLicenseRenewalData(&self, ppwszfilename: *mut windows_core::PWSTR, ppwszexpiredkid: *mut windows_core::PWSTR, ppwsztunerid: *mut windows_core::PWSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLicenseRenewalData)(windows_core::Interface::as_raw(self), ppwszfilename as _, ppwszexpiredkid as _, ppwsztunerid as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDTFilterLicenseRenewal_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetLicenseRenewalData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::PWSTR, *mut windows_core::PWSTR, *mut windows_core::PWSTR) -> windows_core::HRESULT,
}
pub trait IDTFilterLicenseRenewal_Impl: windows_core::IUnknownImpl {
fn GetLicenseRenewalData(&self, ppwszfilename: *mut windows_core::PWSTR, ppwszexpiredkid: *mut windows_core::PWSTR, ppwsztunerid: *mut windows_core::PWSTR) -> windows_core::Result<()>;
}
impl IDTFilterLicenseRenewal_Vtbl {
pub const fn new<Identity: IDTFilterLicenseRenewal_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetLicenseRenewalData<Identity: IDTFilterLicenseRenewal_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppwszfilename: *mut windows_core::PWSTR, ppwszexpiredkid: *mut windows_core::PWSTR, ppwsztunerid: *mut windows_core::PWSTR) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDTFilterLicenseRenewal_Impl::GetLicenseRenewalData(this, core::mem::transmute_copy(&ppwszfilename), core::mem::transmute_copy(&ppwszexpiredkid), core::mem::transmute_copy(&ppwsztunerid)).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetLicenseRenewalData: GetLicenseRenewalData::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDTFilterLicenseRenewal as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDTFilterLicenseRenewal {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDVBCLocator, IDVBCLocator_Vtbl, 0x6e42f36e_1dd2_43c4_9f78_69d25ae39034);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDVBCLocator {
type Target = IDigitalLocator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDVBCLocator, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator, IDigitalLocator);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDVBCLocator_Vtbl {
pub base__: IDigitalLocator_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDVBCLocator_Impl: IDigitalLocator_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDVBCLocator_Vtbl {
pub const fn new<Identity: IDVBCLocator_Impl, const OFFSET: isize>() -> Self {
Self { base__: IDigitalLocator_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVBCLocator as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID || iid == &<IDigitalLocator as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDVBCLocator {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDVBSLocator, IDVBSLocator_Vtbl, 0x3d7c353c_0d04_45f1_a742_f97cc1188dc8);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDVBSLocator {
type Target = IDigitalLocator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDVBSLocator, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator, IDigitalLocator);
#[cfg(feature = "Win32_System_Com")]
impl IDVBSLocator {
pub unsafe fn SignalPolarisation(&self) -> windows_core::Result<super::Polarisation> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SignalPolarisation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSignalPolarisation(&self, polarisationval: super::Polarisation) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSignalPolarisation)(windows_core::Interface::as_raw(self), polarisationval).ok() }
}
pub unsafe fn WestPosition(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).WestPosition)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetWestPosition(&self, westlongitude: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetWestPosition)(windows_core::Interface::as_raw(self), westlongitude).ok() }
}
pub unsafe fn OrbitalPosition(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OrbitalPosition)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetOrbitalPosition(&self, longitude: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetOrbitalPosition)(windows_core::Interface::as_raw(self), longitude).ok() }
}
pub unsafe fn Azimuth(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Azimuth)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetAzimuth(&self, azimuth: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetAzimuth)(windows_core::Interface::as_raw(self), azimuth).ok() }
}
pub unsafe fn Elevation(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Elevation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetElevation(&self, elevation: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetElevation)(windows_core::Interface::as_raw(self), elevation).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDVBSLocator_Vtbl {
pub base__: IDigitalLocator_Vtbl,
pub SignalPolarisation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::Polarisation) -> windows_core::HRESULT,
pub SetSignalPolarisation: unsafe extern "system" fn(*mut core::ffi::c_void, super::Polarisation) -> windows_core::HRESULT,
pub WestPosition: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetWestPosition: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub OrbitalPosition: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetOrbitalPosition: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub Azimuth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetAzimuth: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub Elevation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetElevation: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDVBSLocator_Impl: IDigitalLocator_Impl {
fn SignalPolarisation(&self) -> windows_core::Result<super::Polarisation>;
fn SetSignalPolarisation(&self, polarisationval: super::Polarisation) -> windows_core::Result<()>;
fn WestPosition(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetWestPosition(&self, westlongitude: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn OrbitalPosition(&self) -> windows_core::Result<i32>;
fn SetOrbitalPosition(&self, longitude: i32) -> windows_core::Result<()>;
fn Azimuth(&self) -> windows_core::Result<i32>;
fn SetAzimuth(&self, azimuth: i32) -> windows_core::Result<()>;
fn Elevation(&self) -> windows_core::Result<i32>;
fn SetElevation(&self, elevation: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDVBSLocator_Vtbl {
pub const fn new<Identity: IDVBSLocator_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SignalPolarisation<Identity: IDVBSLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, polarisationval: *mut super::Polarisation) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator_Impl::SignalPolarisation(this) {
Ok(ok__) => {
polarisationval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSignalPolarisation<Identity: IDVBSLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, polarisationval: super::Polarisation) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator_Impl::SetSignalPolarisation(this, core::mem::transmute_copy(&polarisationval)).into()
}
}
unsafe extern "system" fn WestPosition<Identity: IDVBSLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, westlongitude: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator_Impl::WestPosition(this) {
Ok(ok__) => {
westlongitude.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetWestPosition<Identity: IDVBSLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, westlongitude: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator_Impl::SetWestPosition(this, core::mem::transmute_copy(&westlongitude)).into()
}
}
unsafe extern "system" fn OrbitalPosition<Identity: IDVBSLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, longitude: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator_Impl::OrbitalPosition(this) {
Ok(ok__) => {
longitude.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetOrbitalPosition<Identity: IDVBSLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, longitude: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator_Impl::SetOrbitalPosition(this, core::mem::transmute_copy(&longitude)).into()
}
}
unsafe extern "system" fn Azimuth<Identity: IDVBSLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, azimuth: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator_Impl::Azimuth(this) {
Ok(ok__) => {
azimuth.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAzimuth<Identity: IDVBSLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, azimuth: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator_Impl::SetAzimuth(this, core::mem::transmute_copy(&azimuth)).into()
}
}
unsafe extern "system" fn Elevation<Identity: IDVBSLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, elevation: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator_Impl::Elevation(this) {
Ok(ok__) => {
elevation.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetElevation<Identity: IDVBSLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, elevation: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator_Impl::SetElevation(this, core::mem::transmute_copy(&elevation)).into()
}
}
Self {
base__: IDigitalLocator_Vtbl::new::<Identity, OFFSET>(),
SignalPolarisation: SignalPolarisation::<Identity, OFFSET>,
SetSignalPolarisation: SetSignalPolarisation::<Identity, OFFSET>,
WestPosition: WestPosition::<Identity, OFFSET>,
SetWestPosition: SetWestPosition::<Identity, OFFSET>,
OrbitalPosition: OrbitalPosition::<Identity, OFFSET>,
SetOrbitalPosition: SetOrbitalPosition::<Identity, OFFSET>,
Azimuth: Azimuth::<Identity, OFFSET>,
SetAzimuth: SetAzimuth::<Identity, OFFSET>,
Elevation: Elevation::<Identity, OFFSET>,
SetElevation: SetElevation::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVBSLocator as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID || iid == &<IDigitalLocator as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDVBSLocator {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDVBSLocator2, IDVBSLocator2_Vtbl, 0x6044634a_1733_4f99_b982_5fb12afce4f0);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDVBSLocator2 {
type Target = IDVBSLocator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDVBSLocator2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator, IDigitalLocator, IDVBSLocator);
#[cfg(feature = "Win32_System_Com")]
impl IDVBSLocator2 {
pub unsafe fn DiseqLNBSource(&self) -> windows_core::Result<super::LNB_Source> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DiseqLNBSource)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetDiseqLNBSource(&self, diseqlnbsourceval: super::LNB_Source) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDiseqLNBSource)(windows_core::Interface::as_raw(self), diseqlnbsourceval).ok() }
}
pub unsafe fn LocalOscillatorOverrideLow(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LocalOscillatorOverrideLow)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetLocalOscillatorOverrideLow(&self, localoscillatoroverridelowval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetLocalOscillatorOverrideLow)(windows_core::Interface::as_raw(self), localoscillatoroverridelowval).ok() }
}
pub unsafe fn LocalOscillatorOverrideHigh(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LocalOscillatorOverrideHigh)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetLocalOscillatorOverrideHigh(&self, localoscillatoroverridehighval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetLocalOscillatorOverrideHigh)(windows_core::Interface::as_raw(self), localoscillatoroverridehighval).ok() }
}
pub unsafe fn LocalLNBSwitchOverride(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LocalLNBSwitchOverride)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetLocalLNBSwitchOverride(&self, locallnbswitchoverrideval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetLocalLNBSwitchOverride)(windows_core::Interface::as_raw(self), locallnbswitchoverrideval).ok() }
}
pub unsafe fn LocalSpectralInversionOverride(&self) -> windows_core::Result<super::SpectralInversion> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LocalSpectralInversionOverride)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetLocalSpectralInversionOverride(&self, localspectralinversionoverrideval: super::SpectralInversion) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetLocalSpectralInversionOverride)(windows_core::Interface::as_raw(self), localspectralinversionoverrideval).ok() }
}
pub unsafe fn SignalRollOff(&self) -> windows_core::Result<super::RollOff> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SignalRollOff)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSignalRollOff(&self, rolloffval: super::RollOff) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSignalRollOff)(windows_core::Interface::as_raw(self), rolloffval).ok() }
}
pub unsafe fn SignalPilot(&self) -> windows_core::Result<super::Pilot> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SignalPilot)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSignalPilot(&self, pilotval: super::Pilot) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSignalPilot)(windows_core::Interface::as_raw(self), pilotval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDVBSLocator2_Vtbl {
pub base__: IDVBSLocator_Vtbl,
pub DiseqLNBSource: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::LNB_Source) -> windows_core::HRESULT,
pub SetDiseqLNBSource: unsafe extern "system" fn(*mut core::ffi::c_void, super::LNB_Source) -> windows_core::HRESULT,
pub LocalOscillatorOverrideLow: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetLocalOscillatorOverrideLow: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub LocalOscillatorOverrideHigh: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetLocalOscillatorOverrideHigh: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub LocalLNBSwitchOverride: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetLocalLNBSwitchOverride: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub LocalSpectralInversionOverride: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::SpectralInversion) -> windows_core::HRESULT,
pub SetLocalSpectralInversionOverride: unsafe extern "system" fn(*mut core::ffi::c_void, super::SpectralInversion) -> windows_core::HRESULT,
pub SignalRollOff: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::RollOff) -> windows_core::HRESULT,
pub SetSignalRollOff: unsafe extern "system" fn(*mut core::ffi::c_void, super::RollOff) -> windows_core::HRESULT,
pub SignalPilot: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::Pilot) -> windows_core::HRESULT,
pub SetSignalPilot: unsafe extern "system" fn(*mut core::ffi::c_void, super::Pilot) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDVBSLocator2_Impl: IDVBSLocator_Impl {
fn DiseqLNBSource(&self) -> windows_core::Result<super::LNB_Source>;
fn SetDiseqLNBSource(&self, diseqlnbsourceval: super::LNB_Source) -> windows_core::Result<()>;
fn LocalOscillatorOverrideLow(&self) -> windows_core::Result<i32>;
fn SetLocalOscillatorOverrideLow(&self, localoscillatoroverridelowval: i32) -> windows_core::Result<()>;
fn LocalOscillatorOverrideHigh(&self) -> windows_core::Result<i32>;
fn SetLocalOscillatorOverrideHigh(&self, localoscillatoroverridehighval: i32) -> windows_core::Result<()>;
fn LocalLNBSwitchOverride(&self) -> windows_core::Result<i32>;
fn SetLocalLNBSwitchOverride(&self, locallnbswitchoverrideval: i32) -> windows_core::Result<()>;
fn LocalSpectralInversionOverride(&self) -> windows_core::Result<super::SpectralInversion>;
fn SetLocalSpectralInversionOverride(&self, localspectralinversionoverrideval: super::SpectralInversion) -> windows_core::Result<()>;
fn SignalRollOff(&self) -> windows_core::Result<super::RollOff>;
fn SetSignalRollOff(&self, rolloffval: super::RollOff) -> windows_core::Result<()>;
fn SignalPilot(&self) -> windows_core::Result<super::Pilot>;
fn SetSignalPilot(&self, pilotval: super::Pilot) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDVBSLocator2_Vtbl {
pub const fn new<Identity: IDVBSLocator2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn DiseqLNBSource<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, diseqlnbsourceval: *mut super::LNB_Source) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator2_Impl::DiseqLNBSource(this) {
Ok(ok__) => {
diseqlnbsourceval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDiseqLNBSource<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, diseqlnbsourceval: super::LNB_Source) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator2_Impl::SetDiseqLNBSource(this, core::mem::transmute_copy(&diseqlnbsourceval)).into()
}
}
unsafe extern "system" fn LocalOscillatorOverrideLow<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, localoscillatoroverridelowval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator2_Impl::LocalOscillatorOverrideLow(this) {
Ok(ok__) => {
localoscillatoroverridelowval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLocalOscillatorOverrideLow<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, localoscillatoroverridelowval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator2_Impl::SetLocalOscillatorOverrideLow(this, core::mem::transmute_copy(&localoscillatoroverridelowval)).into()
}
}
unsafe extern "system" fn LocalOscillatorOverrideHigh<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, localoscillatoroverridehighval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator2_Impl::LocalOscillatorOverrideHigh(this) {
Ok(ok__) => {
localoscillatoroverridehighval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLocalOscillatorOverrideHigh<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, localoscillatoroverridehighval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator2_Impl::SetLocalOscillatorOverrideHigh(this, core::mem::transmute_copy(&localoscillatoroverridehighval)).into()
}
}
unsafe extern "system" fn LocalLNBSwitchOverride<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, locallnbswitchoverrideval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator2_Impl::LocalLNBSwitchOverride(this) {
Ok(ok__) => {
locallnbswitchoverrideval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLocalLNBSwitchOverride<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, locallnbswitchoverrideval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator2_Impl::SetLocalLNBSwitchOverride(this, core::mem::transmute_copy(&locallnbswitchoverrideval)).into()
}
}
unsafe extern "system" fn LocalSpectralInversionOverride<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, localspectralinversionoverrideval: *mut super::SpectralInversion) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator2_Impl::LocalSpectralInversionOverride(this) {
Ok(ok__) => {
localspectralinversionoverrideval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLocalSpectralInversionOverride<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, localspectralinversionoverrideval: super::SpectralInversion) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator2_Impl::SetLocalSpectralInversionOverride(this, core::mem::transmute_copy(&localspectralinversionoverrideval)).into()
}
}
unsafe extern "system" fn SignalRollOff<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rolloffval: *mut super::RollOff) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator2_Impl::SignalRollOff(this) {
Ok(ok__) => {
rolloffval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSignalRollOff<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rolloffval: super::RollOff) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator2_Impl::SetSignalRollOff(this, core::mem::transmute_copy(&rolloffval)).into()
}
}
unsafe extern "system" fn SignalPilot<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pilotval: *mut super::Pilot) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSLocator2_Impl::SignalPilot(this) {
Ok(ok__) => {
pilotval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSignalPilot<Identity: IDVBSLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pilotval: super::Pilot) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSLocator2_Impl::SetSignalPilot(this, core::mem::transmute_copy(&pilotval)).into()
}
}
Self {
base__: IDVBSLocator_Vtbl::new::<Identity, OFFSET>(),
DiseqLNBSource: DiseqLNBSource::<Identity, OFFSET>,
SetDiseqLNBSource: SetDiseqLNBSource::<Identity, OFFSET>,
LocalOscillatorOverrideLow: LocalOscillatorOverrideLow::<Identity, OFFSET>,
SetLocalOscillatorOverrideLow: SetLocalOscillatorOverrideLow::<Identity, OFFSET>,
LocalOscillatorOverrideHigh: LocalOscillatorOverrideHigh::<Identity, OFFSET>,
SetLocalOscillatorOverrideHigh: SetLocalOscillatorOverrideHigh::<Identity, OFFSET>,
LocalLNBSwitchOverride: LocalLNBSwitchOverride::<Identity, OFFSET>,
SetLocalLNBSwitchOverride: SetLocalLNBSwitchOverride::<Identity, OFFSET>,
LocalSpectralInversionOverride: LocalSpectralInversionOverride::<Identity, OFFSET>,
SetLocalSpectralInversionOverride: SetLocalSpectralInversionOverride::<Identity, OFFSET>,
SignalRollOff: SignalRollOff::<Identity, OFFSET>,
SetSignalRollOff: SetSignalRollOff::<Identity, OFFSET>,
SignalPilot: SignalPilot::<Identity, OFFSET>,
SetSignalPilot: SetSignalPilot::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVBSLocator2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID || iid == &<IDigitalLocator as windows_core::Interface>::IID || iid == &<IDVBSLocator as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDVBSLocator2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDVBSTuningSpace, IDVBSTuningSpace_Vtbl, 0xcdf7be60_d954_42fd_a972_78971958e470);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDVBSTuningSpace {
type Target = IDVBTuningSpace2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDVBSTuningSpace, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuningSpace, IDVBTuningSpace, IDVBTuningSpace2);
#[cfg(feature = "Win32_System_Com")]
impl IDVBSTuningSpace {
pub unsafe fn LowOscillator(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LowOscillator)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetLowOscillator(&self, lowoscillator: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetLowOscillator)(windows_core::Interface::as_raw(self), lowoscillator).ok() }
}
pub unsafe fn HighOscillator(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HighOscillator)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetHighOscillator(&self, highoscillator: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetHighOscillator)(windows_core::Interface::as_raw(self), highoscillator).ok() }
}
pub unsafe fn LNBSwitch(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LNBSwitch)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetLNBSwitch(&self, lnbswitch: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetLNBSwitch)(windows_core::Interface::as_raw(self), lnbswitch).ok() }
}
pub unsafe fn InputRange(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).InputRange)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetInputRange(&self, inputrange: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetInputRange)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(inputrange)).ok() }
}
pub unsafe fn SpectralInversion(&self) -> windows_core::Result<super::SpectralInversion> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SpectralInversion)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSpectralInversion(&self, spectralinversionval: super::SpectralInversion) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSpectralInversion)(windows_core::Interface::as_raw(self), spectralinversionval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDVBSTuningSpace_Vtbl {
pub base__: IDVBTuningSpace2_Vtbl,
pub LowOscillator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetLowOscillator: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub HighOscillator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetHighOscillator: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub LNBSwitch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetLNBSwitch: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub InputRange: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInputRange: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SpectralInversion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::SpectralInversion) -> windows_core::HRESULT,
pub SetSpectralInversion: unsafe extern "system" fn(*mut core::ffi::c_void, super::SpectralInversion) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDVBSTuningSpace_Impl: IDVBTuningSpace2_Impl {
fn LowOscillator(&self) -> windows_core::Result<i32>;
fn SetLowOscillator(&self, lowoscillator: i32) -> windows_core::Result<()>;
fn HighOscillator(&self) -> windows_core::Result<i32>;
fn SetHighOscillator(&self, highoscillator: i32) -> windows_core::Result<()>;
fn LNBSwitch(&self) -> windows_core::Result<i32>;
fn SetLNBSwitch(&self, lnbswitch: i32) -> windows_core::Result<()>;
fn InputRange(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetInputRange(&self, inputrange: &windows_core::BSTR) -> windows_core::Result<()>;
fn SpectralInversion(&self) -> windows_core::Result<super::SpectralInversion>;
fn SetSpectralInversion(&self, spectralinversionval: super::SpectralInversion) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDVBSTuningSpace_Vtbl {
pub const fn new<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn LowOscillator<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lowoscillator: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSTuningSpace_Impl::LowOscillator(this) {
Ok(ok__) => {
lowoscillator.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLowOscillator<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lowoscillator: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSTuningSpace_Impl::SetLowOscillator(this, core::mem::transmute_copy(&lowoscillator)).into()
}
}
unsafe extern "system" fn HighOscillator<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, highoscillator: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSTuningSpace_Impl::HighOscillator(this) {
Ok(ok__) => {
highoscillator.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetHighOscillator<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, highoscillator: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSTuningSpace_Impl::SetHighOscillator(this, core::mem::transmute_copy(&highoscillator)).into()
}
}
unsafe extern "system" fn LNBSwitch<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lnbswitch: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSTuningSpace_Impl::LNBSwitch(this) {
Ok(ok__) => {
lnbswitch.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLNBSwitch<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lnbswitch: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSTuningSpace_Impl::SetLNBSwitch(this, core::mem::transmute_copy(&lnbswitch)).into()
}
}
unsafe extern "system" fn InputRange<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, inputrange: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSTuningSpace_Impl::InputRange(this) {
Ok(ok__) => {
inputrange.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetInputRange<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, inputrange: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSTuningSpace_Impl::SetInputRange(this, core::mem::transmute(&inputrange)).into()
}
}
unsafe extern "system" fn SpectralInversion<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, spectralinversionval: *mut super::SpectralInversion) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBSTuningSpace_Impl::SpectralInversion(this) {
Ok(ok__) => {
spectralinversionval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSpectralInversion<Identity: IDVBSTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, spectralinversionval: super::SpectralInversion) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBSTuningSpace_Impl::SetSpectralInversion(this, core::mem::transmute_copy(&spectralinversionval)).into()
}
}
Self {
base__: IDVBTuningSpace2_Vtbl::new::<Identity, OFFSET>(),
LowOscillator: LowOscillator::<Identity, OFFSET>,
SetLowOscillator: SetLowOscillator::<Identity, OFFSET>,
HighOscillator: HighOscillator::<Identity, OFFSET>,
SetHighOscillator: SetHighOscillator::<Identity, OFFSET>,
LNBSwitch: LNBSwitch::<Identity, OFFSET>,
SetLNBSwitch: SetLNBSwitch::<Identity, OFFSET>,
InputRange: InputRange::<Identity, OFFSET>,
SetInputRange: SetInputRange::<Identity, OFFSET>,
SpectralInversion: SpectralInversion::<Identity, OFFSET>,
SetSpectralInversion: SetSpectralInversion::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVBSTuningSpace as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuningSpace as windows_core::Interface>::IID || iid == &<IDVBTuningSpace as windows_core::Interface>::IID || iid == &<IDVBTuningSpace2 as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDVBSTuningSpace {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDVBTLocator, IDVBTLocator_Vtbl, 0x8664da16_dda2_42ac_926a_c18f9127c302);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDVBTLocator {
type Target = IDigitalLocator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDVBTLocator, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator, IDigitalLocator);
#[cfg(feature = "Win32_System_Com")]
impl IDVBTLocator {
pub unsafe fn Bandwidth(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Bandwidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetBandwidth(&self, bandwidthval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBandwidth)(windows_core::Interface::as_raw(self), bandwidthval).ok() }
}
pub unsafe fn LPInnerFEC(&self) -> windows_core::Result<super::FECMethod> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LPInnerFEC)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetLPInnerFEC(&self, fec: super::FECMethod) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetLPInnerFEC)(windows_core::Interface::as_raw(self), fec).ok() }
}
pub unsafe fn LPInnerFECRate(&self) -> windows_core::Result<super::BinaryConvolutionCodeRate> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LPInnerFECRate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetLPInnerFECRate(&self, fec: super::BinaryConvolutionCodeRate) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetLPInnerFECRate)(windows_core::Interface::as_raw(self), fec).ok() }
}
pub unsafe fn HAlpha(&self) -> windows_core::Result<super::HierarchyAlpha> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HAlpha)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetHAlpha(&self, alpha: super::HierarchyAlpha) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetHAlpha)(windows_core::Interface::as_raw(self), alpha).ok() }
}
pub unsafe fn Guard(&self) -> windows_core::Result<super::GuardInterval> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Guard)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetGuard(&self, gi: super::GuardInterval) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetGuard)(windows_core::Interface::as_raw(self), gi).ok() }
}
pub unsafe fn Mode(&self) -> windows_core::Result<super::TransmissionMode> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Mode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMode(&self, mode: super::TransmissionMode) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMode)(windows_core::Interface::as_raw(self), mode).ok() }
}
pub unsafe fn OtherFrequencyInUse(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OtherFrequencyInUse)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetOtherFrequencyInUse(&self, otherfrequencyinuseval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetOtherFrequencyInUse)(windows_core::Interface::as_raw(self), otherfrequencyinuseval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDVBTLocator_Vtbl {
pub base__: IDigitalLocator_Vtbl,
pub Bandwidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetBandwidth: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub LPInnerFEC: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::FECMethod) -> windows_core::HRESULT,
pub SetLPInnerFEC: unsafe extern "system" fn(*mut core::ffi::c_void, super::FECMethod) -> windows_core::HRESULT,
pub LPInnerFECRate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::BinaryConvolutionCodeRate) -> windows_core::HRESULT,
pub SetLPInnerFECRate: unsafe extern "system" fn(*mut core::ffi::c_void, super::BinaryConvolutionCodeRate) -> windows_core::HRESULT,
pub HAlpha: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::HierarchyAlpha) -> windows_core::HRESULT,
pub SetHAlpha: unsafe extern "system" fn(*mut core::ffi::c_void, super::HierarchyAlpha) -> windows_core::HRESULT,
pub Guard: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::GuardInterval) -> windows_core::HRESULT,
pub SetGuard: unsafe extern "system" fn(*mut core::ffi::c_void, super::GuardInterval) -> windows_core::HRESULT,
pub Mode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::TransmissionMode) -> windows_core::HRESULT,
pub SetMode: unsafe extern "system" fn(*mut core::ffi::c_void, super::TransmissionMode) -> windows_core::HRESULT,
pub OtherFrequencyInUse: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetOtherFrequencyInUse: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDVBTLocator_Impl: IDigitalLocator_Impl {
fn Bandwidth(&self) -> windows_core::Result<i32>;
fn SetBandwidth(&self, bandwidthval: i32) -> windows_core::Result<()>;
fn LPInnerFEC(&self) -> windows_core::Result<super::FECMethod>;
fn SetLPInnerFEC(&self, fec: super::FECMethod) -> windows_core::Result<()>;
fn LPInnerFECRate(&self) -> windows_core::Result<super::BinaryConvolutionCodeRate>;
fn SetLPInnerFECRate(&self, fec: super::BinaryConvolutionCodeRate) -> windows_core::Result<()>;
fn HAlpha(&self) -> windows_core::Result<super::HierarchyAlpha>;
fn SetHAlpha(&self, alpha: super::HierarchyAlpha) -> windows_core::Result<()>;
fn Guard(&self) -> windows_core::Result<super::GuardInterval>;
fn SetGuard(&self, gi: super::GuardInterval) -> windows_core::Result<()>;
fn Mode(&self) -> windows_core::Result<super::TransmissionMode>;
fn SetMode(&self, mode: super::TransmissionMode) -> windows_core::Result<()>;
fn OtherFrequencyInUse(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetOtherFrequencyInUse(&self, otherfrequencyinuseval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDVBTLocator_Vtbl {
pub const fn new<Identity: IDVBTLocator_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Bandwidth<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bandwidthval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTLocator_Impl::Bandwidth(this) {
Ok(ok__) => {
bandwidthval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBandwidth<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bandwidthval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTLocator_Impl::SetBandwidth(this, core::mem::transmute_copy(&bandwidthval)).into()
}
}
unsafe extern "system" fn LPInnerFEC<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: *mut super::FECMethod) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTLocator_Impl::LPInnerFEC(this) {
Ok(ok__) => {
fec.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLPInnerFEC<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: super::FECMethod) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTLocator_Impl::SetLPInnerFEC(this, core::mem::transmute_copy(&fec)).into()
}
}
unsafe extern "system" fn LPInnerFECRate<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: *mut super::BinaryConvolutionCodeRate) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTLocator_Impl::LPInnerFECRate(this) {
Ok(ok__) => {
fec.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLPInnerFECRate<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: super::BinaryConvolutionCodeRate) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTLocator_Impl::SetLPInnerFECRate(this, core::mem::transmute_copy(&fec)).into()
}
}
unsafe extern "system" fn HAlpha<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, alpha: *mut super::HierarchyAlpha) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTLocator_Impl::HAlpha(this) {
Ok(ok__) => {
alpha.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetHAlpha<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, alpha: super::HierarchyAlpha) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTLocator_Impl::SetHAlpha(this, core::mem::transmute_copy(&alpha)).into()
}
}
unsafe extern "system" fn Guard<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, gi: *mut super::GuardInterval) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTLocator_Impl::Guard(this) {
Ok(ok__) => {
gi.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetGuard<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, gi: super::GuardInterval) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTLocator_Impl::SetGuard(this, core::mem::transmute_copy(&gi)).into()
}
}
unsafe extern "system" fn Mode<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mode: *mut super::TransmissionMode) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTLocator_Impl::Mode(this) {
Ok(ok__) => {
mode.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMode<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mode: super::TransmissionMode) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTLocator_Impl::SetMode(this, core::mem::transmute_copy(&mode)).into()
}
}
unsafe extern "system" fn OtherFrequencyInUse<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, otherfrequencyinuseval: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTLocator_Impl::OtherFrequencyInUse(this) {
Ok(ok__) => {
otherfrequencyinuseval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetOtherFrequencyInUse<Identity: IDVBTLocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, otherfrequencyinuseval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTLocator_Impl::SetOtherFrequencyInUse(this, core::mem::transmute_copy(&otherfrequencyinuseval)).into()
}
}
Self {
base__: IDigitalLocator_Vtbl::new::<Identity, OFFSET>(),
Bandwidth: Bandwidth::<Identity, OFFSET>,
SetBandwidth: SetBandwidth::<Identity, OFFSET>,
LPInnerFEC: LPInnerFEC::<Identity, OFFSET>,
SetLPInnerFEC: SetLPInnerFEC::<Identity, OFFSET>,
LPInnerFECRate: LPInnerFECRate::<Identity, OFFSET>,
SetLPInnerFECRate: SetLPInnerFECRate::<Identity, OFFSET>,
HAlpha: HAlpha::<Identity, OFFSET>,
SetHAlpha: SetHAlpha::<Identity, OFFSET>,
Guard: Guard::<Identity, OFFSET>,
SetGuard: SetGuard::<Identity, OFFSET>,
Mode: Mode::<Identity, OFFSET>,
SetMode: SetMode::<Identity, OFFSET>,
OtherFrequencyInUse: OtherFrequencyInUse::<Identity, OFFSET>,
SetOtherFrequencyInUse: SetOtherFrequencyInUse::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVBTLocator as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID || iid == &<IDigitalLocator as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDVBTLocator {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDVBTLocator2, IDVBTLocator2_Vtbl, 0x448a2edf_ae95_4b43_a3cc_747843c453d4);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDVBTLocator2 {
type Target = IDVBTLocator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDVBTLocator2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator, IDigitalLocator, IDVBTLocator);
#[cfg(feature = "Win32_System_Com")]
impl IDVBTLocator2 {
pub unsafe fn PhysicalLayerPipeId(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PhysicalLayerPipeId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetPhysicalLayerPipeId(&self, physicallayerpipeidval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetPhysicalLayerPipeId)(windows_core::Interface::as_raw(self), physicallayerpipeidval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDVBTLocator2_Vtbl {
pub base__: IDVBTLocator_Vtbl,
pub PhysicalLayerPipeId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetPhysicalLayerPipeId: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDVBTLocator2_Impl: IDVBTLocator_Impl {
fn PhysicalLayerPipeId(&self) -> windows_core::Result<i32>;
fn SetPhysicalLayerPipeId(&self, physicallayerpipeidval: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDVBTLocator2_Vtbl {
pub const fn new<Identity: IDVBTLocator2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn PhysicalLayerPipeId<Identity: IDVBTLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, physicallayerpipeidval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTLocator2_Impl::PhysicalLayerPipeId(this) {
Ok(ok__) => {
physicallayerpipeidval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPhysicalLayerPipeId<Identity: IDVBTLocator2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, physicallayerpipeidval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTLocator2_Impl::SetPhysicalLayerPipeId(this, core::mem::transmute_copy(&physicallayerpipeidval)).into()
}
}
Self {
base__: IDVBTLocator_Vtbl::new::<Identity, OFFSET>(),
PhysicalLayerPipeId: PhysicalLayerPipeId::<Identity, OFFSET>,
SetPhysicalLayerPipeId: SetPhysicalLayerPipeId::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVBTLocator2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID || iid == &<IDigitalLocator as windows_core::Interface>::IID || iid == &<IDVBTLocator as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDVBTLocator2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDVBTuneRequest, IDVBTuneRequest_Vtbl, 0x0d6f567e_a636_42bb_83ba_ce4c1704afa2);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDVBTuneRequest {
type Target = ITuneRequest;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDVBTuneRequest, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuneRequest);
#[cfg(feature = "Win32_System_Com")]
impl IDVBTuneRequest {
pub unsafe fn ONID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ONID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetONID(&self, onid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetONID)(windows_core::Interface::as_raw(self), onid).ok() }
}
pub unsafe fn TSID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TSID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetTSID(&self, tsid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetTSID)(windows_core::Interface::as_raw(self), tsid).ok() }
}
pub unsafe fn SID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSID(&self, sid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSID)(windows_core::Interface::as_raw(self), sid).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDVBTuneRequest_Vtbl {
pub base__: ITuneRequest_Vtbl,
pub ONID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetONID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub TSID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetTSID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub SID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetSID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDVBTuneRequest_Impl: ITuneRequest_Impl {
fn ONID(&self) -> windows_core::Result<i32>;
fn SetONID(&self, onid: i32) -> windows_core::Result<()>;
fn TSID(&self) -> windows_core::Result<i32>;
fn SetTSID(&self, tsid: i32) -> windows_core::Result<()>;
fn SID(&self) -> windows_core::Result<i32>;
fn SetSID(&self, sid: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDVBTuneRequest_Vtbl {
pub const fn new<Identity: IDVBTuneRequest_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn ONID<Identity: IDVBTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, onid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTuneRequest_Impl::ONID(this) {
Ok(ok__) => {
onid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetONID<Identity: IDVBTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, onid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTuneRequest_Impl::SetONID(this, core::mem::transmute_copy(&onid)).into()
}
}
unsafe extern "system" fn TSID<Identity: IDVBTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tsid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTuneRequest_Impl::TSID(this) {
Ok(ok__) => {
tsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTSID<Identity: IDVBTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tsid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTuneRequest_Impl::SetTSID(this, core::mem::transmute_copy(&tsid)).into()
}
}
unsafe extern "system" fn SID<Identity: IDVBTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, sid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTuneRequest_Impl::SID(this) {
Ok(ok__) => {
sid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSID<Identity: IDVBTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, sid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTuneRequest_Impl::SetSID(this, core::mem::transmute_copy(&sid)).into()
}
}
Self {
base__: ITuneRequest_Vtbl::new::<Identity, OFFSET>(),
ONID: ONID::<Identity, OFFSET>,
SetONID: SetONID::<Identity, OFFSET>,
TSID: TSID::<Identity, OFFSET>,
SetTSID: SetTSID::<Identity, OFFSET>,
SID: SID::<Identity, OFFSET>,
SetSID: SetSID::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVBTuneRequest as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuneRequest as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDVBTuneRequest {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDVBTuningSpace, IDVBTuningSpace_Vtbl, 0xada0b268_3b19_4e5b_acc4_49f852be13ba);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDVBTuningSpace {
type Target = ITuningSpace;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDVBTuningSpace, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuningSpace);
#[cfg(feature = "Win32_System_Com")]
impl IDVBTuningSpace {
pub unsafe fn SystemType(&self) -> windows_core::Result<super::DVBSystemType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SystemType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSystemType(&self, systype: super::DVBSystemType) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSystemType)(windows_core::Interface::as_raw(self), systype).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDVBTuningSpace_Vtbl {
pub base__: ITuningSpace_Vtbl,
pub SystemType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::DVBSystemType) -> windows_core::HRESULT,
pub SetSystemType: unsafe extern "system" fn(*mut core::ffi::c_void, super::DVBSystemType) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDVBTuningSpace_Impl: ITuningSpace_Impl {
fn SystemType(&self) -> windows_core::Result<super::DVBSystemType>;
fn SetSystemType(&self, systype: super::DVBSystemType) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDVBTuningSpace_Vtbl {
pub const fn new<Identity: IDVBTuningSpace_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SystemType<Identity: IDVBTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, systype: *mut super::DVBSystemType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTuningSpace_Impl::SystemType(this) {
Ok(ok__) => {
systype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSystemType<Identity: IDVBTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, systype: super::DVBSystemType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTuningSpace_Impl::SetSystemType(this, core::mem::transmute_copy(&systype)).into()
}
}
Self {
base__: ITuningSpace_Vtbl::new::<Identity, OFFSET>(),
SystemType: SystemType::<Identity, OFFSET>,
SetSystemType: SetSystemType::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVBTuningSpace as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuningSpace as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDVBTuningSpace {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDVBTuningSpace2, IDVBTuningSpace2_Vtbl, 0x843188b4_ce62_43db_966b_8145a094e040);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDVBTuningSpace2 {
type Target = IDVBTuningSpace;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDVBTuningSpace2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuningSpace, IDVBTuningSpace);
#[cfg(feature = "Win32_System_Com")]
impl IDVBTuningSpace2 {
pub unsafe fn NetworkID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NetworkID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetNetworkID(&self, networkid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetNetworkID)(windows_core::Interface::as_raw(self), networkid).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDVBTuningSpace2_Vtbl {
pub base__: IDVBTuningSpace_Vtbl,
pub NetworkID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetNetworkID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDVBTuningSpace2_Impl: IDVBTuningSpace_Impl {
fn NetworkID(&self) -> windows_core::Result<i32>;
fn SetNetworkID(&self, networkid: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDVBTuningSpace2_Vtbl {
pub const fn new<Identity: IDVBTuningSpace2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn NetworkID<Identity: IDVBTuningSpace2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, networkid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVBTuningSpace2_Impl::NetworkID(this) {
Ok(ok__) => {
networkid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetNetworkID<Identity: IDVBTuningSpace2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, networkid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVBTuningSpace2_Impl::SetNetworkID(this, core::mem::transmute_copy(&networkid)).into()
}
}
Self {
base__: IDVBTuningSpace_Vtbl::new::<Identity, OFFSET>(),
NetworkID: NetworkID::<Identity, OFFSET>,
SetNetworkID: SetNetworkID::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVBTuningSpace2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuningSpace as windows_core::Interface>::IID || iid == &<IDVBTuningSpace as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDVBTuningSpace2 {}
windows_core::imp::define_interface!(IDVB_BAT, IDVB_BAT_Vtbl, 0xece9bb0c_43b6_4558_a0ec_1812c34cd6ca);
windows_core::imp::interface_hierarchy!(IDVB_BAT, windows_core::IUnknown);
impl IDVB_BAT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetBouquetId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBouquetId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32, ppdescriptor: *const Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTransportStreamId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordTransportStreamId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordOriginalNetworkId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordOriginalNetworkId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForNextTable)(windows_core::Interface::as_raw(self), hnexttableavailable).ok() }
}
pub unsafe fn GetNextTable(&self) -> windows_core::Result<IDVB_BAT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextTable)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForWhenCurrent)(windows_core::Interface::as_raw(self), hnexttableiscurrent).ok() }
}
pub unsafe fn ConvertNextToCurrent(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ConvertNextToCurrent)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_BAT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetBouquetId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordTransportStreamId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordOriginalNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub GetNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForWhenCurrent: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub ConvertNextToCurrent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDVB_BAT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetBouquetId(&self) -> windows_core::Result<u16>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32, ppdescriptor: *const Option<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordTransportStreamId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordOriginalNetworkId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn GetNextTable(&self) -> windows_core::Result<IDVB_BAT>;
fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn ConvertNextToCurrent(&self) -> windows_core::Result<()>;
}
impl IDVB_BAT_Vtbl {
pub const fn new<Identity: IDVB_BAT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_BAT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_BAT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetBouquetId<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_BAT_Impl::GetBouquetId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_BAT_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *const *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_BAT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_BAT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_BAT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTransportStreamId<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_BAT_Impl::GetRecordTransportStreamId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordOriginalNetworkId<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_BAT_Impl::GetRecordOriginalNetworkId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_BAT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_BAT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_BAT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn RegisterForNextTable<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_BAT_Impl::RegisterForNextTable(this, core::mem::transmute_copy(&hnexttableavailable)).into()
}
}
unsafe extern "system" fn GetNextTable<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppbat: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_BAT_Impl::GetNextTable(this) {
Ok(ok__) => {
ppbat.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegisterForWhenCurrent<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_BAT_Impl::RegisterForWhenCurrent(this, core::mem::transmute_copy(&hnexttableiscurrent)).into()
}
}
unsafe extern "system" fn ConvertNextToCurrent<Identity: IDVB_BAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_BAT_Impl::ConvertNextToCurrent(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetBouquetId: GetBouquetId::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordTransportStreamId: GetRecordTransportStreamId::<Identity, OFFSET>,
GetRecordOriginalNetworkId: GetRecordOriginalNetworkId::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
RegisterForNextTable: RegisterForNextTable::<Identity, OFFSET>,
GetNextTable: GetNextTable::<Identity, OFFSET>,
RegisterForWhenCurrent: RegisterForWhenCurrent::<Identity, OFFSET>,
ConvertNextToCurrent: ConvertNextToCurrent::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_BAT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_BAT {}
windows_core::imp::define_interface!(IDVB_DIT, IDVB_DIT_Vtbl, 0x91bffdf9_9432_410f_86ef_1c228ed0ad70);
windows_core::imp::interface_hierarchy!(IDVB_DIT, windows_core::IUnknown);
impl IDVB_DIT {
pub unsafe fn Initialize<P0>(&self, psectionlist: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi()).ok() }
}
pub unsafe fn GetTransitionFlag(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTransitionFlag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_DIT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTransitionFlag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
}
pub trait IDVB_DIT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>) -> windows_core::Result<()>;
fn GetTransitionFlag(&self) -> windows_core::Result<windows_core::BOOL>;
}
impl IDVB_DIT_Vtbl {
pub const fn new<Identity: IDVB_DIT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDVB_DIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_DIT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist)).into()
}
}
unsafe extern "system" fn GetTransitionFlag<Identity: IDVB_DIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_DIT_Impl::GetTransitionFlag(this) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetTransitionFlag: GetTransitionFlag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_DIT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_DIT {}
windows_core::imp::define_interface!(IDVB_EIT, IDVB_EIT_Vtbl, 0x442db029_02cb_4495_8b92_1c13375bce99);
windows_core::imp::interface_hierarchy!(IDVB_EIT, windows_core::IUnknown);
impl IDVB_EIT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetServiceId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTransportStreamId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTransportStreamId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOriginalNetworkId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOriginalNetworkId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSegmentLastSectionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSegmentLastSectionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLastTableId(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLastTableId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordEventId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordEventId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordStartTime(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_DATE_AND_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordStartTime)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDuration(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDuration)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordRunningStatus(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordRunningStatus)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordFreeCAMode(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordFreeCAMode)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForNextTable)(windows_core::Interface::as_raw(self), hnexttableavailable).ok() }
}
pub unsafe fn GetNextTable(&self) -> windows_core::Result<IDVB_EIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextTable)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForWhenCurrent)(windows_core::Interface::as_raw(self), hnexttableiscurrent).ok() }
}
pub unsafe fn ConvertNextToCurrent(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ConvertNextToCurrent)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn GetVersionHash(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionHash)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_EIT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetTransportStreamId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetOriginalNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetSegmentLastSectionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLastTableId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordEventId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordStartTime: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT,
pub GetRecordDuration: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut MPEG_TIME) -> windows_core::HRESULT,
pub GetRecordRunningStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordFreeCAMode: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub GetNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForWhenCurrent: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub ConvertNextToCurrent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionHash: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IDVB_EIT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetServiceId(&self) -> windows_core::Result<u16>;
fn GetTransportStreamId(&self) -> windows_core::Result<u16>;
fn GetOriginalNetworkId(&self) -> windows_core::Result<u16>;
fn GetSegmentLastSectionNumber(&self) -> windows_core::Result<u8>;
fn GetLastTableId(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordEventId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordStartTime(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_DATE_AND_TIME>;
fn GetRecordDuration(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_TIME>;
fn GetRecordRunningStatus(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordFreeCAMode(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn GetNextTable(&self) -> windows_core::Result<IDVB_EIT>;
fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn ConvertNextToCurrent(&self) -> windows_core::Result<()>;
fn GetVersionHash(&self) -> windows_core::Result<u32>;
}
impl IDVB_EIT_Vtbl {
pub const fn new<Identity: IDVB_EIT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_EIT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceId<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetServiceId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTransportStreamId<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetTransportStreamId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOriginalNetworkId<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetOriginalNetworkId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSegmentLastSectionNumber<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetSegmentLastSectionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLastTableId<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetLastTableId(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordEventId<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetRecordEventId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordStartTime<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pmdtval: *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetRecordStartTime(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pmdtval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDuration<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pmdval: *mut MPEG_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetRecordDuration(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pmdval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordRunningStatus<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetRecordRunningStatus(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordFreeCAMode<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetRecordFreeCAMode(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_EIT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn RegisterForNextTable<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_EIT_Impl::RegisterForNextTable(this, core::mem::transmute_copy(&hnexttableavailable)).into()
}
}
unsafe extern "system" fn GetNextTable<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppeit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetNextTable(this) {
Ok(ok__) => {
ppeit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegisterForWhenCurrent<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_EIT_Impl::RegisterForWhenCurrent(this, core::mem::transmute_copy(&hnexttableiscurrent)).into()
}
}
unsafe extern "system" fn ConvertNextToCurrent<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_EIT_Impl::ConvertNextToCurrent(this).into()
}
}
unsafe extern "system" fn GetVersionHash<Identity: IDVB_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwversionhash: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT_Impl::GetVersionHash(this) {
Ok(ok__) => {
pdwversionhash.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetServiceId: GetServiceId::<Identity, OFFSET>,
GetTransportStreamId: GetTransportStreamId::<Identity, OFFSET>,
GetOriginalNetworkId: GetOriginalNetworkId::<Identity, OFFSET>,
GetSegmentLastSectionNumber: GetSegmentLastSectionNumber::<Identity, OFFSET>,
GetLastTableId: GetLastTableId::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordEventId: GetRecordEventId::<Identity, OFFSET>,
GetRecordStartTime: GetRecordStartTime::<Identity, OFFSET>,
GetRecordDuration: GetRecordDuration::<Identity, OFFSET>,
GetRecordRunningStatus: GetRecordRunningStatus::<Identity, OFFSET>,
GetRecordFreeCAMode: GetRecordFreeCAMode::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
RegisterForNextTable: RegisterForNextTable::<Identity, OFFSET>,
GetNextTable: GetNextTable::<Identity, OFFSET>,
RegisterForWhenCurrent: RegisterForWhenCurrent::<Identity, OFFSET>,
ConvertNextToCurrent: ConvertNextToCurrent::<Identity, OFFSET>,
GetVersionHash: GetVersionHash::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_EIT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_EIT {}
windows_core::imp::define_interface!(IDVB_EIT2, IDVB_EIT2_Vtbl, 0x61a389e0_9b9e_4ba0_aeea_5ddd159820ea);
impl core::ops::Deref for IDVB_EIT2 {
type Target = IDVB_EIT;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDVB_EIT2, windows_core::IUnknown, IDVB_EIT);
impl IDVB_EIT2 {
pub unsafe fn GetSegmentInfo(&self, pbtid: *mut u8, pbsegment: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetSegmentInfo)(windows_core::Interface::as_raw(self), pbtid as _, pbsegment as _).ok() }
}
pub unsafe fn GetRecordSection(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordSection)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_EIT2_Vtbl {
pub base__: IDVB_EIT_Vtbl,
pub GetSegmentInfo: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordSection: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
}
pub trait IDVB_EIT2_Impl: IDVB_EIT_Impl {
fn GetSegmentInfo(&self, pbtid: *mut u8, pbsegment: *mut u8) -> windows_core::Result<()>;
fn GetRecordSection(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
}
impl IDVB_EIT2_Vtbl {
pub const fn new<Identity: IDVB_EIT2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetSegmentInfo<Identity: IDVB_EIT2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbtid: *mut u8, pbsegment: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_EIT2_Impl::GetSegmentInfo(this, core::mem::transmute_copy(&pbtid), core::mem::transmute_copy(&pbsegment)).into()
}
}
unsafe extern "system" fn GetRecordSection<Identity: IDVB_EIT2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_EIT2_Impl::GetRecordSection(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IDVB_EIT_Vtbl::new::<Identity, OFFSET>(),
GetSegmentInfo: GetSegmentInfo::<Identity, OFFSET>,
GetRecordSection: GetRecordSection::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_EIT2 as windows_core::Interface>::IID || iid == &<IDVB_EIT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_EIT2 {}
windows_core::imp::define_interface!(IDVB_NIT, IDVB_NIT_Vtbl, 0xc64935f4_29e4_4e22_911a_63f7f55cb097);
windows_core::imp::interface_hierarchy!(IDVB_NIT, windows_core::IUnknown);
impl IDVB_NIT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetNetworkId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNetworkId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTransportStreamId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordTransportStreamId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordOriginalNetworkId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordOriginalNetworkId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForNextTable)(windows_core::Interface::as_raw(self), hnexttableavailable).ok() }
}
pub unsafe fn GetNextTable(&self) -> windows_core::Result<IDVB_NIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextTable)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForWhenCurrent)(windows_core::Interface::as_raw(self), hnexttableiscurrent).ok() }
}
pub unsafe fn ConvertNextToCurrent(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ConvertNextToCurrent)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn GetVersionHash(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionHash)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_NIT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordTransportStreamId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordOriginalNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub GetNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForWhenCurrent: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub ConvertNextToCurrent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionHash: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IDVB_NIT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetNetworkId(&self) -> windows_core::Result<u16>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordTransportStreamId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordOriginalNetworkId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn GetNextTable(&self) -> windows_core::Result<IDVB_NIT>;
fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn ConvertNextToCurrent(&self) -> windows_core::Result<()>;
fn GetVersionHash(&self) -> windows_core::Result<u32>;
}
impl IDVB_NIT_Vtbl {
pub const fn new<Identity: IDVB_NIT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_NIT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetNetworkId<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetNetworkId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_NIT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTransportStreamId<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetRecordTransportStreamId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordOriginalNetworkId<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetRecordOriginalNetworkId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_NIT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn RegisterForNextTable<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_NIT_Impl::RegisterForNextTable(this, core::mem::transmute_copy(&hnexttableavailable)).into()
}
}
unsafe extern "system" fn GetNextTable<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppnit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetNextTable(this) {
Ok(ok__) => {
ppnit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegisterForWhenCurrent<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_NIT_Impl::RegisterForWhenCurrent(this, core::mem::transmute_copy(&hnexttableiscurrent)).into()
}
}
unsafe extern "system" fn ConvertNextToCurrent<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_NIT_Impl::ConvertNextToCurrent(this).into()
}
}
unsafe extern "system" fn GetVersionHash<Identity: IDVB_NIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwversionhash: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_NIT_Impl::GetVersionHash(this) {
Ok(ok__) => {
pdwversionhash.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetNetworkId: GetNetworkId::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordTransportStreamId: GetRecordTransportStreamId::<Identity, OFFSET>,
GetRecordOriginalNetworkId: GetRecordOriginalNetworkId::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
RegisterForNextTable: RegisterForNextTable::<Identity, OFFSET>,
GetNextTable: GetNextTable::<Identity, OFFSET>,
RegisterForWhenCurrent: RegisterForWhenCurrent::<Identity, OFFSET>,
ConvertNextToCurrent: ConvertNextToCurrent::<Identity, OFFSET>,
GetVersionHash: GetVersionHash::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_NIT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_NIT {}
windows_core::imp::define_interface!(IDVB_RST, IDVB_RST_Vtbl, 0xf47dcd04_1e23_4fb7_9f96_b40eead10b2b);
windows_core::imp::interface_hierarchy!(IDVB_RST, windows_core::IUnknown);
impl IDVB_RST {
pub unsafe fn Initialize<P0>(&self, psectionlist: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi()).ok() }
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTransportStreamId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordTransportStreamId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordOriginalNetworkId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordOriginalNetworkId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordServiceId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordEventId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordEventId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordRunningStatus(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordRunningStatus)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_RST_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordTransportStreamId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordOriginalNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordEventId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordRunningStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
}
pub trait IDVB_RST_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>) -> windows_core::Result<()>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordTransportStreamId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordOriginalNetworkId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordServiceId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordEventId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordRunningStatus(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
}
impl IDVB_RST_Vtbl {
pub const fn new<Identity: IDVB_RST_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDVB_RST_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_RST_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist)).into()
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDVB_RST_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_RST_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTransportStreamId<Identity: IDVB_RST_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_RST_Impl::GetRecordTransportStreamId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordOriginalNetworkId<Identity: IDVB_RST_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_RST_Impl::GetRecordOriginalNetworkId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceId<Identity: IDVB_RST_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_RST_Impl::GetRecordServiceId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordEventId<Identity: IDVB_RST_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_RST_Impl::GetRecordEventId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordRunningStatus<Identity: IDVB_RST_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_RST_Impl::GetRecordRunningStatus(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordTransportStreamId: GetRecordTransportStreamId::<Identity, OFFSET>,
GetRecordOriginalNetworkId: GetRecordOriginalNetworkId::<Identity, OFFSET>,
GetRecordServiceId: GetRecordServiceId::<Identity, OFFSET>,
GetRecordEventId: GetRecordEventId::<Identity, OFFSET>,
GetRecordRunningStatus: GetRecordRunningStatus::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_RST as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_RST {}
windows_core::imp::define_interface!(IDVB_SDT, IDVB_SDT_Vtbl, 0x02cad8d3_fe43_48e2_90bd_450ed9a8a5fd);
windows_core::imp::interface_hierarchy!(IDVB_SDT, windows_core::IUnknown);
impl IDVB_SDT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTransportStreamId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTransportStreamId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOriginalNetworkId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOriginalNetworkId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordServiceId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordEITScheduleFlag(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordEITScheduleFlag)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordEITPresentFollowingFlag(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordEITPresentFollowingFlag)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordRunningStatus(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordRunningStatus)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordFreeCAMode(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordFreeCAMode)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForNextTable)(windows_core::Interface::as_raw(self), hnexttableavailable).ok() }
}
pub unsafe fn GetNextTable(&self) -> windows_core::Result<IDVB_SDT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextTable)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForWhenCurrent)(windows_core::Interface::as_raw(self), hnexttableiscurrent).ok() }
}
pub unsafe fn ConvertNextToCurrent(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ConvertNextToCurrent)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn GetVersionHash(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionHash)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_SDT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTransportStreamId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetOriginalNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordEITScheduleFlag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetRecordEITPresentFollowingFlag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetRecordRunningStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordFreeCAMode: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub GetNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForWhenCurrent: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub ConvertNextToCurrent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionHash: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IDVB_SDT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetTransportStreamId(&self) -> windows_core::Result<u16>;
fn GetOriginalNetworkId(&self) -> windows_core::Result<u16>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordServiceId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordEITScheduleFlag(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL>;
fn GetRecordEITPresentFollowingFlag(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL>;
fn GetRecordRunningStatus(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordFreeCAMode(&self, dwrecordindex: u32) -> windows_core::Result<windows_core::BOOL>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn GetNextTable(&self) -> windows_core::Result<IDVB_SDT>;
fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn ConvertNextToCurrent(&self) -> windows_core::Result<()>;
fn GetVersionHash(&self) -> windows_core::Result<u32>;
}
impl IDVB_SDT_Vtbl {
pub const fn new<Identity: IDVB_SDT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SDT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTransportStreamId<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetTransportStreamId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOriginalNetworkId<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetOriginalNetworkId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceId<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetRecordServiceId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordEITScheduleFlag<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetRecordEITScheduleFlag(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordEITPresentFollowingFlag<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetRecordEITPresentFollowingFlag(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordRunningStatus<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetRecordRunningStatus(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordFreeCAMode<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetRecordFreeCAMode(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SDT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn RegisterForNextTable<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SDT_Impl::RegisterForNextTable(this, core::mem::transmute_copy(&hnexttableavailable)).into()
}
}
unsafe extern "system" fn GetNextTable<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppsdt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetNextTable(this) {
Ok(ok__) => {
ppsdt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegisterForWhenCurrent<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SDT_Impl::RegisterForWhenCurrent(this, core::mem::transmute_copy(&hnexttableiscurrent)).into()
}
}
unsafe extern "system" fn ConvertNextToCurrent<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SDT_Impl::ConvertNextToCurrent(this).into()
}
}
unsafe extern "system" fn GetVersionHash<Identity: IDVB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwversionhash: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SDT_Impl::GetVersionHash(this) {
Ok(ok__) => {
pdwversionhash.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetTransportStreamId: GetTransportStreamId::<Identity, OFFSET>,
GetOriginalNetworkId: GetOriginalNetworkId::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordServiceId: GetRecordServiceId::<Identity, OFFSET>,
GetRecordEITScheduleFlag: GetRecordEITScheduleFlag::<Identity, OFFSET>,
GetRecordEITPresentFollowingFlag: GetRecordEITPresentFollowingFlag::<Identity, OFFSET>,
GetRecordRunningStatus: GetRecordRunningStatus::<Identity, OFFSET>,
GetRecordFreeCAMode: GetRecordFreeCAMode::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
RegisterForNextTable: RegisterForNextTable::<Identity, OFFSET>,
GetNextTable: GetNextTable::<Identity, OFFSET>,
RegisterForWhenCurrent: RegisterForWhenCurrent::<Identity, OFFSET>,
ConvertNextToCurrent: ConvertNextToCurrent::<Identity, OFFSET>,
GetVersionHash: GetVersionHash::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_SDT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_SDT {}
windows_core::imp::define_interface!(IDVB_SIT, IDVB_SIT_Vtbl, 0x68cdce53_8bea_45c2_9d9d_acf575a089b5);
windows_core::imp::interface_hierarchy!(IDVB_SIT, windows_core::IUnknown);
impl IDVB_SIT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordServiceId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordRunningStatus(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordRunningStatus)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForNextTable)(windows_core::Interface::as_raw(self), hnexttableavailable).ok() }
}
pub unsafe fn GetNextTable(&self, dwtimeout: u32) -> windows_core::Result<IDVB_SIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextTable)(windows_core::Interface::as_raw(self), dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForWhenCurrent)(windows_core::Interface::as_raw(self), hnexttableiscurrent).ok() }
}
pub unsafe fn ConvertNextToCurrent(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ConvertNextToCurrent)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_SIT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordRunningStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub GetNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForWhenCurrent: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub ConvertNextToCurrent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDVB_SIT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordServiceId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordRunningStatus(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn GetNextTable(&self, dwtimeout: u32) -> windows_core::Result<IDVB_SIT>;
fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn ConvertNextToCurrent(&self) -> windows_core::Result<()>;
}
impl IDVB_SIT_Vtbl {
pub const fn new<Identity: IDVB_SIT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SIT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SIT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SIT_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SIT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SIT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SIT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceId<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SIT_Impl::GetRecordServiceId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordRunningStatus<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SIT_Impl::GetRecordRunningStatus(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SIT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SIT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SIT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn RegisterForNextTable<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SIT_Impl::RegisterForNextTable(this, core::mem::transmute_copy(&hnexttableavailable)).into()
}
}
unsafe extern "system" fn GetNextTable<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwtimeout: u32, ppsit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_SIT_Impl::GetNextTable(this, core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
ppsit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegisterForWhenCurrent<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SIT_Impl::RegisterForWhenCurrent(this, core::mem::transmute_copy(&hnexttableiscurrent)).into()
}
}
unsafe extern "system" fn ConvertNextToCurrent<Identity: IDVB_SIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_SIT_Impl::ConvertNextToCurrent(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordServiceId: GetRecordServiceId::<Identity, OFFSET>,
GetRecordRunningStatus: GetRecordRunningStatus::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
RegisterForNextTable: RegisterForNextTable::<Identity, OFFSET>,
GetNextTable: GetNextTable::<Identity, OFFSET>,
RegisterForWhenCurrent: RegisterForWhenCurrent::<Identity, OFFSET>,
ConvertNextToCurrent: ConvertNextToCurrent::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_SIT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_SIT {}
windows_core::imp::define_interface!(IDVB_ST, IDVB_ST_Vtbl, 0x4d5b9f23_2a02_45de_bcda_5d5dbfbfbe62);
windows_core::imp::interface_hierarchy!(IDVB_ST, windows_core::IUnknown);
impl IDVB_ST {
pub unsafe fn Initialize<P0>(&self, psectionlist: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi()).ok() }
}
pub unsafe fn GetDataLength(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDataLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetData(&self) -> windows_core::Result<*mut u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetData)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_ST_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetDataLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8) -> windows_core::HRESULT,
}
pub trait IDVB_ST_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>) -> windows_core::Result<()>;
fn GetDataLength(&self) -> windows_core::Result<u16>;
fn GetData(&self) -> windows_core::Result<*mut u8>;
}
impl IDVB_ST_Vtbl {
pub const fn new<Identity: IDVB_ST_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDVB_ST_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_ST_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist)).into()
}
}
unsafe extern "system" fn GetDataLength<Identity: IDVB_ST_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_ST_Impl::GetDataLength(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetData<Identity: IDVB_ST_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppdata: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_ST_Impl::GetData(this) {
Ok(ok__) => {
ppdata.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetDataLength: GetDataLength::<Identity, OFFSET>,
GetData: GetData::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_ST as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_ST {}
windows_core::imp::define_interface!(IDVB_TDT, IDVB_TDT_Vtbl, 0x0780dc7d_d55c_4aef_97e6_6b75906e2796);
windows_core::imp::interface_hierarchy!(IDVB_TDT, windows_core::IUnknown);
impl IDVB_TDT {
pub unsafe fn Initialize<P0>(&self, psectionlist: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi()).ok() }
}
pub unsafe fn GetUTCTime(&self) -> windows_core::Result<MPEG_DATE_AND_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetUTCTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_TDT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetUTCTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT,
}
pub trait IDVB_TDT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>) -> windows_core::Result<()>;
fn GetUTCTime(&self) -> windows_core::Result<MPEG_DATE_AND_TIME>;
}
impl IDVB_TDT_Vtbl {
pub const fn new<Identity: IDVB_TDT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDVB_TDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_TDT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist)).into()
}
}
unsafe extern "system" fn GetUTCTime<Identity: IDVB_TDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pmdtval: *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_TDT_Impl::GetUTCTime(this) {
Ok(ok__) => {
pmdtval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetUTCTime: GetUTCTime::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_TDT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_TDT {}
windows_core::imp::define_interface!(IDVB_TOT, IDVB_TOT_Vtbl, 0x83295d6a_faba_4ee1_9b15_8067696910ae);
windows_core::imp::interface_hierarchy!(IDVB_TOT, windows_core::IUnknown);
impl IDVB_TOT {
pub unsafe fn Initialize<P0>(&self, psectionlist: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi()).ok() }
}
pub unsafe fn GetUTCTime(&self) -> windows_core::Result<MPEG_DATE_AND_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetUTCTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDVB_TOT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetUTCTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDVB_TOT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>) -> windows_core::Result<()>;
fn GetUTCTime(&self) -> windows_core::Result<MPEG_DATE_AND_TIME>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
}
impl IDVB_TOT_Vtbl {
pub const fn new<Identity: IDVB_TOT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDVB_TOT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_TOT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist)).into()
}
}
unsafe extern "system" fn GetUTCTime<Identity: IDVB_TOT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pmdtval: *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_TOT_Impl::GetUTCTime(this) {
Ok(ok__) => {
pmdtval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: IDVB_TOT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_TOT_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: IDVB_TOT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDVB_TOT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: IDVB_TOT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDVB_TOT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetUTCTime: GetUTCTime::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDVB_TOT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDVB_TOT {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDigitalCableLocator, IDigitalCableLocator_Vtbl, 0x48f66a11_171a_419a_9525_beeecd51584c);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDigitalCableLocator {
type Target = IATSCLocator2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDigitalCableLocator, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator, IDigitalLocator, IATSCLocator, IATSCLocator2);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDigitalCableLocator_Vtbl {
pub base__: IATSCLocator2_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDigitalCableLocator_Impl: IATSCLocator2_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDigitalCableLocator_Vtbl {
pub const fn new<Identity: IDigitalCableLocator_Impl, const OFFSET: isize>() -> Self {
Self { base__: IATSCLocator2_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDigitalCableLocator as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID || iid == &<IDigitalLocator as windows_core::Interface>::IID || iid == &<IATSCLocator as windows_core::Interface>::IID || iid == &<IATSCLocator2 as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDigitalCableLocator {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDigitalCableTuneRequest, IDigitalCableTuneRequest_Vtbl, 0xbad7753b_6b37_4810_ae57_3ce0c4a9e6cb);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDigitalCableTuneRequest {
type Target = IATSCChannelTuneRequest;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDigitalCableTuneRequest, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuneRequest, IChannelTuneRequest, IATSCChannelTuneRequest);
#[cfg(feature = "Win32_System_Com")]
impl IDigitalCableTuneRequest {
pub unsafe fn MajorChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MajorChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMajorChannel(&self, majorchannel: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMajorChannel)(windows_core::Interface::as_raw(self), majorchannel).ok() }
}
pub unsafe fn SourceID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SourceID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSourceID(&self, sourceid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSourceID)(windows_core::Interface::as_raw(self), sourceid).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDigitalCableTuneRequest_Vtbl {
pub base__: IATSCChannelTuneRequest_Vtbl,
pub MajorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMajorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub SourceID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetSourceID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDigitalCableTuneRequest_Impl: IATSCChannelTuneRequest_Impl {
fn MajorChannel(&self) -> windows_core::Result<i32>;
fn SetMajorChannel(&self, majorchannel: i32) -> windows_core::Result<()>;
fn SourceID(&self) -> windows_core::Result<i32>;
fn SetSourceID(&self, sourceid: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDigitalCableTuneRequest_Vtbl {
pub const fn new<Identity: IDigitalCableTuneRequest_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn MajorChannel<Identity: IDigitalCableTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pmajorchannel: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDigitalCableTuneRequest_Impl::MajorChannel(this) {
Ok(ok__) => {
pmajorchannel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMajorChannel<Identity: IDigitalCableTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, majorchannel: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDigitalCableTuneRequest_Impl::SetMajorChannel(this, core::mem::transmute_copy(&majorchannel)).into()
}
}
unsafe extern "system" fn SourceID<Identity: IDigitalCableTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psourceid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDigitalCableTuneRequest_Impl::SourceID(this) {
Ok(ok__) => {
psourceid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSourceID<Identity: IDigitalCableTuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, sourceid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDigitalCableTuneRequest_Impl::SetSourceID(this, core::mem::transmute_copy(&sourceid)).into()
}
}
Self {
base__: IATSCChannelTuneRequest_Vtbl::new::<Identity, OFFSET>(),
MajorChannel: MajorChannel::<Identity, OFFSET>,
SetMajorChannel: SetMajorChannel::<Identity, OFFSET>,
SourceID: SourceID::<Identity, OFFSET>,
SetSourceID: SetSourceID::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDigitalCableTuneRequest as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuneRequest as windows_core::Interface>::IID || iid == &<IChannelTuneRequest as windows_core::Interface>::IID || iid == &<IATSCChannelTuneRequest as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDigitalCableTuneRequest {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDigitalCableTuningSpace, IDigitalCableTuningSpace_Vtbl, 0x013f9f9c_b449_4ec7_a6d2_9d4f2fc70ae5);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDigitalCableTuningSpace {
type Target = IATSCTuningSpace;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDigitalCableTuningSpace, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuningSpace, IAnalogTVTuningSpace, IATSCTuningSpace);
#[cfg(feature = "Win32_System_Com")]
impl IDigitalCableTuningSpace {
pub unsafe fn MinMajorChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MinMajorChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMinMajorChannel(&self, newminmajorchannelval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMinMajorChannel)(windows_core::Interface::as_raw(self), newminmajorchannelval).ok() }
}
pub unsafe fn MaxMajorChannel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MaxMajorChannel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMaxMajorChannel(&self, newmaxmajorchannelval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMaxMajorChannel)(windows_core::Interface::as_raw(self), newmaxmajorchannelval).ok() }
}
pub unsafe fn MinSourceID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MinSourceID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMinSourceID(&self, newminsourceidval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMinSourceID)(windows_core::Interface::as_raw(self), newminsourceidval).ok() }
}
pub unsafe fn MaxSourceID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MaxSourceID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMaxSourceID(&self, newmaxsourceidval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMaxSourceID)(windows_core::Interface::as_raw(self), newmaxsourceidval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDigitalCableTuningSpace_Vtbl {
pub base__: IATSCTuningSpace_Vtbl,
pub MinMajorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMinMajorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub MaxMajorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMaxMajorChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub MinSourceID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMinSourceID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub MaxSourceID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMaxSourceID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDigitalCableTuningSpace_Impl: IATSCTuningSpace_Impl {
fn MinMajorChannel(&self) -> windows_core::Result<i32>;
fn SetMinMajorChannel(&self, newminmajorchannelval: i32) -> windows_core::Result<()>;
fn MaxMajorChannel(&self) -> windows_core::Result<i32>;
fn SetMaxMajorChannel(&self, newmaxmajorchannelval: i32) -> windows_core::Result<()>;
fn MinSourceID(&self) -> windows_core::Result<i32>;
fn SetMinSourceID(&self, newminsourceidval: i32) -> windows_core::Result<()>;
fn MaxSourceID(&self) -> windows_core::Result<i32>;
fn SetMaxSourceID(&self, newmaxsourceidval: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDigitalCableTuningSpace_Vtbl {
pub const fn new<Identity: IDigitalCableTuningSpace_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn MinMajorChannel<Identity: IDigitalCableTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, minmajorchannelval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDigitalCableTuningSpace_Impl::MinMajorChannel(this) {
Ok(ok__) => {
minmajorchannelval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMinMajorChannel<Identity: IDigitalCableTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newminmajorchannelval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDigitalCableTuningSpace_Impl::SetMinMajorChannel(this, core::mem::transmute_copy(&newminmajorchannelval)).into()
}
}
unsafe extern "system" fn MaxMajorChannel<Identity: IDigitalCableTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, maxmajorchannelval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDigitalCableTuningSpace_Impl::MaxMajorChannel(this) {
Ok(ok__) => {
maxmajorchannelval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMaxMajorChannel<Identity: IDigitalCableTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newmaxmajorchannelval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDigitalCableTuningSpace_Impl::SetMaxMajorChannel(this, core::mem::transmute_copy(&newmaxmajorchannelval)).into()
}
}
unsafe extern "system" fn MinSourceID<Identity: IDigitalCableTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, minsourceidval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDigitalCableTuningSpace_Impl::MinSourceID(this) {
Ok(ok__) => {
minsourceidval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMinSourceID<Identity: IDigitalCableTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newminsourceidval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDigitalCableTuningSpace_Impl::SetMinSourceID(this, core::mem::transmute_copy(&newminsourceidval)).into()
}
}
unsafe extern "system" fn MaxSourceID<Identity: IDigitalCableTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, maxsourceidval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDigitalCableTuningSpace_Impl::MaxSourceID(this) {
Ok(ok__) => {
maxsourceidval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMaxSourceID<Identity: IDigitalCableTuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newmaxsourceidval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDigitalCableTuningSpace_Impl::SetMaxSourceID(this, core::mem::transmute_copy(&newmaxsourceidval)).into()
}
}
Self {
base__: IATSCTuningSpace_Vtbl::new::<Identity, OFFSET>(),
MinMajorChannel: MinMajorChannel::<Identity, OFFSET>,
SetMinMajorChannel: SetMinMajorChannel::<Identity, OFFSET>,
MaxMajorChannel: MaxMajorChannel::<Identity, OFFSET>,
SetMaxMajorChannel: SetMaxMajorChannel::<Identity, OFFSET>,
MinSourceID: MinSourceID::<Identity, OFFSET>,
SetMinSourceID: SetMinSourceID::<Identity, OFFSET>,
MaxSourceID: MaxSourceID::<Identity, OFFSET>,
SetMaxSourceID: SetMaxSourceID::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDigitalCableTuningSpace as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuningSpace as windows_core::Interface>::IID || iid == &<IAnalogTVTuningSpace as windows_core::Interface>::IID || iid == &<IATSCTuningSpace as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDigitalCableTuningSpace {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IDigitalLocator, IDigitalLocator_Vtbl, 0x19b595d8_839a_47f0_96df_4f194f3c768c);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IDigitalLocator {
type Target = ILocator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IDigitalLocator, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IDigitalLocator_Vtbl {
pub base__: ILocator_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDigitalLocator_Impl: ILocator_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDigitalLocator_Vtbl {
pub const fn new<Identity: IDigitalLocator_Impl, const OFFSET: isize>() -> Self {
Self { base__: ILocator_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDigitalLocator as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IDigitalLocator {}
windows_core::imp::define_interface!(IDvbCableDeliverySystemDescriptor, IDvbCableDeliverySystemDescriptor_Vtbl, 0xdfb98e36_9e1a_4862_9946_993a4e59017b);
windows_core::imp::interface_hierarchy!(IDvbCableDeliverySystemDescriptor, windows_core::IUnknown);
impl IDvbCableDeliverySystemDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetFrequency(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFrequency)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetFECOuter(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFECOuter)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetModulation(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetModulation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSymbolRate(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolRate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetFECInner(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFECInner)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbCableDeliverySystemDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetFECOuter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetModulation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSymbolRate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetFECInner: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbCableDeliverySystemDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetFrequency(&self) -> windows_core::Result<u32>;
fn GetFECOuter(&self) -> windows_core::Result<u8>;
fn GetModulation(&self) -> windows_core::Result<u8>;
fn GetSymbolRate(&self) -> windows_core::Result<u32>;
fn GetFECInner(&self) -> windows_core::Result<u8>;
}
impl IDvbCableDeliverySystemDescriptor_Vtbl {
pub const fn new<Identity: IDvbCableDeliverySystemDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbCableDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbCableDeliverySystemDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbCableDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbCableDeliverySystemDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFrequency<Identity: IDvbCableDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbCableDeliverySystemDescriptor_Impl::GetFrequency(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFECOuter<Identity: IDvbCableDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbCableDeliverySystemDescriptor_Impl::GetFECOuter(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetModulation<Identity: IDvbCableDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbCableDeliverySystemDescriptor_Impl::GetModulation(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSymbolRate<Identity: IDvbCableDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbCableDeliverySystemDescriptor_Impl::GetSymbolRate(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFECInner<Identity: IDvbCableDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbCableDeliverySystemDescriptor_Impl::GetFECInner(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetFrequency: GetFrequency::<Identity, OFFSET>,
GetFECOuter: GetFECOuter::<Identity, OFFSET>,
GetModulation: GetModulation::<Identity, OFFSET>,
GetSymbolRate: GetSymbolRate::<Identity, OFFSET>,
GetFECInner: GetFECInner::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbCableDeliverySystemDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbCableDeliverySystemDescriptor {}
windows_core::imp::define_interface!(IDvbComponentDescriptor, IDvbComponentDescriptor_Vtbl, 0x91e405cf_80e7_457f_9096_1b9d1ce32141);
windows_core::imp::interface_hierarchy!(IDvbComponentDescriptor, windows_core::IUnknown);
impl IDvbComponentDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetStreamContent(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStreamContent)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetComponentType(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetComponentType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetComponentTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetComponentTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLanguageCode(&self, pszcode: &mut [u8; 4]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLanguageCode)(windows_core::Interface::as_raw(self), core::mem::transmute(pszcode.as_ptr())).ok() }
}
pub unsafe fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTextW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbComponentDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetStreamContent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetComponentType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetComponentTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLanguageCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTextW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDvbComponentDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetStreamContent(&self) -> windows_core::Result<u8>;
fn GetComponentType(&self) -> windows_core::Result<u8>;
fn GetComponentTag(&self) -> windows_core::Result<u8>;
fn GetLanguageCode(&self, pszcode: *mut u8) -> windows_core::Result<()>;
fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IDvbComponentDescriptor_Vtbl {
pub const fn new<Identity: IDvbComponentDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbComponentDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbComponentDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetStreamContent<Identity: IDvbComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbComponentDescriptor_Impl::GetStreamContent(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetComponentType<Identity: IDvbComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbComponentDescriptor_Impl::GetComponentType(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetComponentTag<Identity: IDvbComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbComponentDescriptor_Impl::GetComponentTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLanguageCode<Identity: IDvbComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszcode: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbComponentDescriptor_Impl::GetLanguageCode(this, core::mem::transmute_copy(&pszcode)).into()
}
}
unsafe extern "system" fn GetTextW<Identity: IDvbComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrtext: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbComponentDescriptor_Impl::GetTextW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrtext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetStreamContent: GetStreamContent::<Identity, OFFSET>,
GetComponentType: GetComponentType::<Identity, OFFSET>,
GetComponentTag: GetComponentTag::<Identity, OFFSET>,
GetLanguageCode: GetLanguageCode::<Identity, OFFSET>,
GetTextW: GetTextW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbComponentDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbComponentDescriptor {}
windows_core::imp::define_interface!(IDvbContentDescriptor, IDvbContentDescriptor_Vtbl, 0x2e883881_a467_412a_9d63_6f2b6da05bf0);
windows_core::imp::interface_hierarchy!(IDvbContentDescriptor, windows_core::IUnknown);
impl IDvbContentDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordContentNibbles(&self, brecordindex: u8, pbvallevel1: *mut u8, pbvallevel2: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordContentNibbles)(windows_core::Interface::as_raw(self), brecordindex, pbvallevel1 as _, pbvallevel2 as _).ok() }
}
pub unsafe fn GetRecordUserNibbles(&self, brecordindex: u8, pbval1: *mut u8, pbval2: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordUserNibbles)(windows_core::Interface::as_raw(self), brecordindex, pbval1 as _, pbval2 as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbContentDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordContentNibbles: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordUserNibbles: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbContentDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordContentNibbles(&self, brecordindex: u8, pbvallevel1: *mut u8, pbvallevel2: *mut u8) -> windows_core::Result<()>;
fn GetRecordUserNibbles(&self, brecordindex: u8, pbval1: *mut u8, pbval2: *mut u8) -> windows_core::Result<()>;
}
impl IDvbContentDescriptor_Vtbl {
pub const fn new<Identity: IDvbContentDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbContentDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbContentDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbContentDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordContentNibbles<Identity: IDvbContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbvallevel1: *mut u8, pbvallevel2: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbContentDescriptor_Impl::GetRecordContentNibbles(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&pbvallevel1), core::mem::transmute_copy(&pbvallevel2)).into()
}
}
unsafe extern "system" fn GetRecordUserNibbles<Identity: IDvbContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval1: *mut u8, pbval2: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbContentDescriptor_Impl::GetRecordUserNibbles(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&pbval1), core::mem::transmute_copy(&pbval2)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordContentNibbles: GetRecordContentNibbles::<Identity, OFFSET>,
GetRecordUserNibbles: GetRecordUserNibbles::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbContentDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbContentDescriptor {}
windows_core::imp::define_interface!(IDvbContentIdentifierDescriptor, IDvbContentIdentifierDescriptor_Vtbl, 0x05e0c1ea_f661_4053_9fbf_d93b28359838);
windows_core::imp::interface_hierarchy!(IDvbContentIdentifierDescriptor, windows_core::IUnknown);
impl IDvbContentIdentifierDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCrid(&self, brecordindex: u8, pbtype: *mut u8, pblocation: *mut u8, pblength: *mut u8, ppbbytes: *mut *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordCrid)(windows_core::Interface::as_raw(self), brecordindex, pbtype as _, pblocation as _, pblength as _, ppbbytes as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbContentIdentifierDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordCrid: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8, *mut u8, *mut u8, *mut *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbContentIdentifierDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordCrid(&self, brecordindex: u8, pbtype: *mut u8, pblocation: *mut u8, pblength: *mut u8, ppbbytes: *mut *mut u8) -> windows_core::Result<()>;
}
impl IDvbContentIdentifierDescriptor_Vtbl {
pub const fn new<Identity: IDvbContentIdentifierDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbContentIdentifierDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbContentIdentifierDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbContentIdentifierDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbContentIdentifierDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbContentIdentifierDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbContentIdentifierDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCrid<Identity: IDvbContentIdentifierDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbtype: *mut u8, pblocation: *mut u8, pblength: *mut u8, ppbbytes: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbContentIdentifierDescriptor_Impl::GetRecordCrid(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&pbtype), core::mem::transmute_copy(&pblocation), core::mem::transmute_copy(&pblength), core::mem::transmute_copy(&ppbbytes)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordCrid: GetRecordCrid::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbContentIdentifierDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbContentIdentifierDescriptor {}
windows_core::imp::define_interface!(IDvbDataBroadcastDescriptor, IDvbDataBroadcastDescriptor_Vtbl, 0xd1ebc1d6_8b60_4c20_9caf_e59382e7c400);
windows_core::imp::interface_hierarchy!(IDvbDataBroadcastDescriptor, windows_core::IUnknown);
impl IDvbDataBroadcastDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDataBroadcastID(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDataBroadcastID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetComponentTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetComponentTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSelectorLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSelectorLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSelectorBytes(&self, pblen: *mut u8, pbval: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetSelectorBytes)(windows_core::Interface::as_raw(self), pblen as _, pbval as _).ok() }
}
pub unsafe fn GetLangID(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLangID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTextLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTextLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetText(&self, pblen: *mut u8, pbval: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetText)(windows_core::Interface::as_raw(self), pblen as _, pbval as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbDataBroadcastDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetDataBroadcastID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetComponentTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSelectorLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSelectorBytes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8, *mut u8) -> windows_core::HRESULT,
pub GetLangID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTextLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetText: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbDataBroadcastDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetDataBroadcastID(&self) -> windows_core::Result<u16>;
fn GetComponentTag(&self) -> windows_core::Result<u8>;
fn GetSelectorLength(&self) -> windows_core::Result<u8>;
fn GetSelectorBytes(&self, pblen: *mut u8, pbval: *mut u8) -> windows_core::Result<()>;
fn GetLangID(&self) -> windows_core::Result<u32>;
fn GetTextLength(&self) -> windows_core::Result<u8>;
fn GetText(&self, pblen: *mut u8, pbval: *mut u8) -> windows_core::Result<()>;
}
impl IDvbDataBroadcastDescriptor_Vtbl {
pub const fn new<Identity: IDvbDataBroadcastDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbDataBroadcastDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDataBroadcastDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbDataBroadcastDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDataBroadcastDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDataBroadcastID<Identity: IDvbDataBroadcastDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDataBroadcastDescriptor_Impl::GetDataBroadcastID(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetComponentTag<Identity: IDvbDataBroadcastDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDataBroadcastDescriptor_Impl::GetComponentTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSelectorLength<Identity: IDvbDataBroadcastDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDataBroadcastDescriptor_Impl::GetSelectorLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSelectorBytes<Identity: IDvbDataBroadcastDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pblen: *mut u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbDataBroadcastDescriptor_Impl::GetSelectorBytes(this, core::mem::transmute_copy(&pblen), core::mem::transmute_copy(&pbval)).into()
}
}
unsafe extern "system" fn GetLangID<Identity: IDvbDataBroadcastDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pulval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDataBroadcastDescriptor_Impl::GetLangID(this) {
Ok(ok__) => {
pulval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTextLength<Identity: IDvbDataBroadcastDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDataBroadcastDescriptor_Impl::GetTextLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetText<Identity: IDvbDataBroadcastDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pblen: *mut u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbDataBroadcastDescriptor_Impl::GetText(this, core::mem::transmute_copy(&pblen), core::mem::transmute_copy(&pbval)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetDataBroadcastID: GetDataBroadcastID::<Identity, OFFSET>,
GetComponentTag: GetComponentTag::<Identity, OFFSET>,
GetSelectorLength: GetSelectorLength::<Identity, OFFSET>,
GetSelectorBytes: GetSelectorBytes::<Identity, OFFSET>,
GetLangID: GetLangID::<Identity, OFFSET>,
GetTextLength: GetTextLength::<Identity, OFFSET>,
GetText: GetText::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbDataBroadcastDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbDataBroadcastDescriptor {}
windows_core::imp::define_interface!(IDvbDataBroadcastIDDescriptor, IDvbDataBroadcastIDDescriptor_Vtbl, 0x5f26f518_65c8_4048_91f2_9290f59f7b90);
windows_core::imp::interface_hierarchy!(IDvbDataBroadcastIDDescriptor, windows_core::IUnknown);
impl IDvbDataBroadcastIDDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDataBroadcastID(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDataBroadcastID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetIDSelectorBytes(&self, pblen: *mut u8, pbval: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetIDSelectorBytes)(windows_core::Interface::as_raw(self), pblen as _, pbval as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbDataBroadcastIDDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetDataBroadcastID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetIDSelectorBytes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbDataBroadcastIDDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetDataBroadcastID(&self) -> windows_core::Result<u16>;
fn GetIDSelectorBytes(&self, pblen: *mut u8, pbval: *mut u8) -> windows_core::Result<()>;
}
impl IDvbDataBroadcastIDDescriptor_Vtbl {
pub const fn new<Identity: IDvbDataBroadcastIDDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbDataBroadcastIDDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDataBroadcastIDDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbDataBroadcastIDDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDataBroadcastIDDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDataBroadcastID<Identity: IDvbDataBroadcastIDDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDataBroadcastIDDescriptor_Impl::GetDataBroadcastID(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetIDSelectorBytes<Identity: IDvbDataBroadcastIDDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pblen: *mut u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbDataBroadcastIDDescriptor_Impl::GetIDSelectorBytes(this, core::mem::transmute_copy(&pblen), core::mem::transmute_copy(&pbval)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetDataBroadcastID: GetDataBroadcastID::<Identity, OFFSET>,
GetIDSelectorBytes: GetIDSelectorBytes::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbDataBroadcastIDDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbDataBroadcastIDDescriptor {}
windows_core::imp::define_interface!(IDvbDefaultAuthorityDescriptor, IDvbDefaultAuthorityDescriptor_Vtbl, 0x05ec24d1_3a31_44e7_b408_67c60a352276);
windows_core::imp::interface_hierarchy!(IDvbDefaultAuthorityDescriptor, windows_core::IUnknown);
impl IDvbDefaultAuthorityDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDefaultAuthority(&self, pblength: *mut u8, ppbbytes: *mut *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetDefaultAuthority)(windows_core::Interface::as_raw(self), pblength as _, ppbbytes as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbDefaultAuthorityDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetDefaultAuthority: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8, *mut *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbDefaultAuthorityDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetDefaultAuthority(&self, pblength: *mut u8, ppbbytes: *mut *mut u8) -> windows_core::Result<()>;
}
impl IDvbDefaultAuthorityDescriptor_Vtbl {
pub const fn new<Identity: IDvbDefaultAuthorityDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbDefaultAuthorityDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDefaultAuthorityDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbDefaultAuthorityDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbDefaultAuthorityDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDefaultAuthority<Identity: IDvbDefaultAuthorityDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pblength: *mut u8, ppbbytes: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbDefaultAuthorityDescriptor_Impl::GetDefaultAuthority(this, core::mem::transmute_copy(&pblength), core::mem::transmute_copy(&ppbbytes)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetDefaultAuthority: GetDefaultAuthority::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbDefaultAuthorityDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbDefaultAuthorityDescriptor {}
windows_core::imp::define_interface!(IDvbExtendedEventDescriptor, IDvbExtendedEventDescriptor_Vtbl, 0xc9b22eca_85f4_499f_b1db_efa93a91ee57);
windows_core::imp::interface_hierarchy!(IDvbExtendedEventDescriptor, windows_core::IUnknown);
impl IDvbExtendedEventDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDescriptorNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDescriptorNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLastDescriptorNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLastDescriptorNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLanguageCode(&self, pszcode: &mut [u8; 4]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLanguageCode)(windows_core::Interface::as_raw(self), core::mem::transmute(pszcode.as_ptr())).ok() }
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordItemW(&self, brecordindex: u8, convmode: DVB_STRCONV_MODE, pbstrdesc: *mut windows_core::BSTR, pbstritem: *mut windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordItemW)(windows_core::Interface::as_raw(self), brecordindex, convmode, core::mem::transmute(pbstrdesc), core::mem::transmute(pbstritem)).ok() }
}
pub unsafe fn GetConcatenatedItemW<P0>(&self, pfollowingdescriptor: P0, convmode: DVB_STRCONV_MODE, pbstrdesc: *mut windows_core::BSTR, pbstritem: *mut windows_core::BSTR) -> windows_core::Result<()>
where
P0: windows_core::Param<IDvbExtendedEventDescriptor>,
{
unsafe { (windows_core::Interface::vtable(self).GetConcatenatedItemW)(windows_core::Interface::as_raw(self), pfollowingdescriptor.param().abi(), convmode, core::mem::transmute(pbstrdesc), core::mem::transmute(pbstritem)).ok() }
}
pub unsafe fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTextW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetConcatenatedTextW<P0>(&self, followingdescriptor: P0, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>
where
P0: windows_core::Param<IDvbExtendedEventDescriptor>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetConcatenatedTextW)(windows_core::Interface::as_raw(self), followingdescriptor.param().abi(), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetRecordItemRawBytes(&self, brecordindex: u8, ppbrawitem: *mut *mut u8, pbitemlength: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordItemRawBytes)(windows_core::Interface::as_raw(self), brecordindex, ppbrawitem as _, pbitemlength as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbExtendedEventDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetDescriptorNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLastDescriptorNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLanguageCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordItemW: unsafe extern "system" fn(*mut core::ffi::c_void, u8, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetConcatenatedItemW: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTextW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetConcatenatedTextW: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordItemRawBytes: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut *mut u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbExtendedEventDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetDescriptorNumber(&self) -> windows_core::Result<u8>;
fn GetLastDescriptorNumber(&self) -> windows_core::Result<u8>;
fn GetLanguageCode(&self, pszcode: *mut u8) -> windows_core::Result<()>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordItemW(&self, brecordindex: u8, convmode: DVB_STRCONV_MODE, pbstrdesc: *mut windows_core::BSTR, pbstritem: *mut windows_core::BSTR) -> windows_core::Result<()>;
fn GetConcatenatedItemW(&self, pfollowingdescriptor: windows_core::Ref<IDvbExtendedEventDescriptor>, convmode: DVB_STRCONV_MODE, pbstrdesc: *mut windows_core::BSTR, pbstritem: *mut windows_core::BSTR) -> windows_core::Result<()>;
fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
fn GetConcatenatedTextW(&self, followingdescriptor: windows_core::Ref<IDvbExtendedEventDescriptor>, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
fn GetRecordItemRawBytes(&self, brecordindex: u8, ppbrawitem: *mut *mut u8, pbitemlength: *mut u8) -> windows_core::Result<()>;
}
impl IDvbExtendedEventDescriptor_Vtbl {
pub const fn new<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbExtendedEventDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbExtendedEventDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDescriptorNumber<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbExtendedEventDescriptor_Impl::GetDescriptorNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLastDescriptorNumber<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbExtendedEventDescriptor_Impl::GetLastDescriptorNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLanguageCode<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszcode: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbExtendedEventDescriptor_Impl::GetLanguageCode(this, core::mem::transmute_copy(&pszcode)).into()
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbExtendedEventDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordItemW<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, convmode: DVB_STRCONV_MODE, pbstrdesc: *mut *mut core::ffi::c_void, pbstritem: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbExtendedEventDescriptor_Impl::GetRecordItemW(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&convmode), core::mem::transmute_copy(&pbstrdesc), core::mem::transmute_copy(&pbstritem)).into()
}
}
unsafe extern "system" fn GetConcatenatedItemW<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfollowingdescriptor: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrdesc: *mut *mut core::ffi::c_void, pbstritem: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbExtendedEventDescriptor_Impl::GetConcatenatedItemW(this, core::mem::transmute_copy(&pfollowingdescriptor), core::mem::transmute_copy(&convmode), core::mem::transmute_copy(&pbstrdesc), core::mem::transmute_copy(&pbstritem)).into()
}
}
unsafe extern "system" fn GetTextW<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrtext: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbExtendedEventDescriptor_Impl::GetTextW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrtext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetConcatenatedTextW<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, followingdescriptor: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrtext: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbExtendedEventDescriptor_Impl::GetConcatenatedTextW(this, core::mem::transmute_copy(&followingdescriptor), core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrtext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordItemRawBytes<Identity: IDvbExtendedEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, ppbrawitem: *mut *mut u8, pbitemlength: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbExtendedEventDescriptor_Impl::GetRecordItemRawBytes(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&ppbrawitem), core::mem::transmute_copy(&pbitemlength)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetDescriptorNumber: GetDescriptorNumber::<Identity, OFFSET>,
GetLastDescriptorNumber: GetLastDescriptorNumber::<Identity, OFFSET>,
GetLanguageCode: GetLanguageCode::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordItemW: GetRecordItemW::<Identity, OFFSET>,
GetConcatenatedItemW: GetConcatenatedItemW::<Identity, OFFSET>,
GetTextW: GetTextW::<Identity, OFFSET>,
GetConcatenatedTextW: GetConcatenatedTextW::<Identity, OFFSET>,
GetRecordItemRawBytes: GetRecordItemRawBytes::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbExtendedEventDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbExtendedEventDescriptor {}
windows_core::imp::define_interface!(IDvbFrequencyListDescriptor, IDvbFrequencyListDescriptor_Vtbl, 0x1cadb613_e1dd_4512_afa8_bb7a007ef8b1);
windows_core::imp::interface_hierarchy!(IDvbFrequencyListDescriptor, windows_core::IUnknown);
impl IDvbFrequencyListDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCodingType(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCodingType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCentreFrequency(&self, brecordindex: u8) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCentreFrequency)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbFrequencyListDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCodingType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordCentreFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32) -> windows_core::HRESULT,
}
pub trait IDvbFrequencyListDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCodingType(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordCentreFrequency(&self, brecordindex: u8) -> windows_core::Result<u32>;
}
impl IDvbFrequencyListDescriptor_Vtbl {
pub const fn new<Identity: IDvbFrequencyListDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbFrequencyListDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbFrequencyListDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbFrequencyListDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbFrequencyListDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCodingType<Identity: IDvbFrequencyListDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbFrequencyListDescriptor_Impl::GetCodingType(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbFrequencyListDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbFrequencyListDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCentreFrequency<Identity: IDvbFrequencyListDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbFrequencyListDescriptor_Impl::GetRecordCentreFrequency(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCodingType: GetCodingType::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordCentreFrequency: GetRecordCentreFrequency::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbFrequencyListDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbFrequencyListDescriptor {}
windows_core::imp::define_interface!(IDvbHDSimulcastLogicalChannelDescriptor, IDvbHDSimulcastLogicalChannelDescriptor_Vtbl, 0x1ea8b738_a307_4680_9e26_d0a908c824f4);
impl core::ops::Deref for IDvbHDSimulcastLogicalChannelDescriptor {
type Target = IDvbLogicalChannelDescriptor2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDvbHDSimulcastLogicalChannelDescriptor, windows_core::IUnknown, IDvbLogicalChannelDescriptor, IDvbLogicalChannelDescriptor2);
#[repr(C)]
#[doc(hidden)]
pub struct IDvbHDSimulcastLogicalChannelDescriptor_Vtbl {
pub base__: IDvbLogicalChannelDescriptor2_Vtbl,
}
pub trait IDvbHDSimulcastLogicalChannelDescriptor_Impl: IDvbLogicalChannelDescriptor2_Impl {}
impl IDvbHDSimulcastLogicalChannelDescriptor_Vtbl {
pub const fn new<Identity: IDvbHDSimulcastLogicalChannelDescriptor_Impl, const OFFSET: isize>() -> Self {
Self { base__: IDvbLogicalChannelDescriptor2_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbHDSimulcastLogicalChannelDescriptor as windows_core::Interface>::IID || iid == &<IDvbLogicalChannelDescriptor as windows_core::Interface>::IID || iid == &<IDvbLogicalChannelDescriptor2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbHDSimulcastLogicalChannelDescriptor {}
windows_core::imp::define_interface!(IDvbLinkageDescriptor, IDvbLinkageDescriptor_Vtbl, 0x1cdf8b31_994a_46fc_acfd_6a6be8934dd5);
windows_core::imp::interface_hierarchy!(IDvbLinkageDescriptor, windows_core::IUnknown);
impl IDvbLinkageDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTSId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTSId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetONId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetONId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetServiceId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLinkageType(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLinkageType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetPrivateDataLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPrivateDataLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetPrivateData(&self, pblen: *mut u8, pbdata: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetPrivateData)(windows_core::Interface::as_raw(self), pblen as _, pbdata as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbLinkageDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTSId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetONId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetLinkageType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetPrivateDataLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetPrivateData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbLinkageDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetTSId(&self) -> windows_core::Result<u16>;
fn GetONId(&self) -> windows_core::Result<u16>;
fn GetServiceId(&self) -> windows_core::Result<u16>;
fn GetLinkageType(&self) -> windows_core::Result<u8>;
fn GetPrivateDataLength(&self) -> windows_core::Result<u8>;
fn GetPrivateData(&self, pblen: *mut u8, pbdata: *mut u8) -> windows_core::Result<()>;
}
impl IDvbLinkageDescriptor_Vtbl {
pub const fn new<Identity: IDvbLinkageDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbLinkageDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLinkageDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbLinkageDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLinkageDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTSId<Identity: IDvbLinkageDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLinkageDescriptor_Impl::GetTSId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetONId<Identity: IDvbLinkageDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLinkageDescriptor_Impl::GetONId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceId<Identity: IDvbLinkageDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLinkageDescriptor_Impl::GetServiceId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLinkageType<Identity: IDvbLinkageDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLinkageDescriptor_Impl::GetLinkageType(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPrivateDataLength<Identity: IDvbLinkageDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLinkageDescriptor_Impl::GetPrivateDataLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPrivateData<Identity: IDvbLinkageDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pblen: *mut u8, pbdata: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbLinkageDescriptor_Impl::GetPrivateData(this, core::mem::transmute_copy(&pblen), core::mem::transmute_copy(&pbdata)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetTSId: GetTSId::<Identity, OFFSET>,
GetONId: GetONId::<Identity, OFFSET>,
GetServiceId: GetServiceId::<Identity, OFFSET>,
GetLinkageType: GetLinkageType::<Identity, OFFSET>,
GetPrivateDataLength: GetPrivateDataLength::<Identity, OFFSET>,
GetPrivateData: GetPrivateData::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbLinkageDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbLinkageDescriptor {}
windows_core::imp::define_interface!(IDvbLogicalChannel2Descriptor, IDvbLogicalChannel2Descriptor_Vtbl, 0xf69c3747_8a30_4980_998c_01fe7f0ba35a);
impl core::ops::Deref for IDvbLogicalChannel2Descriptor {
type Target = IDvbLogicalChannelDescriptor2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDvbLogicalChannel2Descriptor, windows_core::IUnknown, IDvbLogicalChannelDescriptor, IDvbLogicalChannelDescriptor2);
impl IDvbLogicalChannel2Descriptor {
pub unsafe fn GetCountOfLists(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfLists)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetListId(&self, blistindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetListId)(windows_core::Interface::as_raw(self), blistindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetListNameW(&self, blistindex: u8, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetListNameW)(windows_core::Interface::as_raw(self), blistindex, convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetListCountryCode(&self, blistindex: u8, pszcode: &mut [u8; 4]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetListCountryCode)(windows_core::Interface::as_raw(self), blistindex, core::mem::transmute(pszcode.as_ptr())).ok() }
}
pub unsafe fn GetListCountOfRecords(&self, bchannellistindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetListCountOfRecords)(windows_core::Interface::as_raw(self), bchannellistindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetListRecordServiceId(&self, blistindex: u8, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetListRecordServiceId)(windows_core::Interface::as_raw(self), blistindex, brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetListRecordLogicalChannelNumber(&self, blistindex: u8, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetListRecordLogicalChannelNumber)(windows_core::Interface::as_raw(self), blistindex, brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetListRecordLogicalChannelAndVisibility(&self, blistindex: u8, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetListRecordLogicalChannelAndVisibility)(windows_core::Interface::as_raw(self), blistindex, brecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbLogicalChannel2Descriptor_Vtbl {
pub base__: IDvbLogicalChannelDescriptor2_Vtbl,
pub GetCountOfLists: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetListId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetListNameW: unsafe extern "system" fn(*mut core::ffi::c_void, u8, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetListCountryCode: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetListCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetListRecordServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, *mut u16) -> windows_core::HRESULT,
pub GetListRecordLogicalChannelNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, *mut u16) -> windows_core::HRESULT,
pub GetListRecordLogicalChannelAndVisibility: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, *mut u16) -> windows_core::HRESULT,
}
pub trait IDvbLogicalChannel2Descriptor_Impl: IDvbLogicalChannelDescriptor2_Impl {
fn GetCountOfLists(&self) -> windows_core::Result<u8>;
fn GetListId(&self, blistindex: u8) -> windows_core::Result<u8>;
fn GetListNameW(&self, blistindex: u8, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
fn GetListCountryCode(&self, blistindex: u8, pszcode: *mut u8) -> windows_core::Result<()>;
fn GetListCountOfRecords(&self, bchannellistindex: u8) -> windows_core::Result<u8>;
fn GetListRecordServiceId(&self, blistindex: u8, brecordindex: u8) -> windows_core::Result<u16>;
fn GetListRecordLogicalChannelNumber(&self, blistindex: u8, brecordindex: u8) -> windows_core::Result<u16>;
fn GetListRecordLogicalChannelAndVisibility(&self, blistindex: u8, brecordindex: u8) -> windows_core::Result<u16>;
}
impl IDvbLogicalChannel2Descriptor_Vtbl {
pub const fn new<Identity: IDvbLogicalChannel2Descriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetCountOfLists<Identity: IDvbLogicalChannel2Descriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannel2Descriptor_Impl::GetCountOfLists(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetListId<Identity: IDvbLogicalChannel2Descriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, blistindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannel2Descriptor_Impl::GetListId(this, core::mem::transmute_copy(&blistindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetListNameW<Identity: IDvbLogicalChannel2Descriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, blistindex: u8, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannel2Descriptor_Impl::GetListNameW(this, core::mem::transmute_copy(&blistindex), core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetListCountryCode<Identity: IDvbLogicalChannel2Descriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, blistindex: u8, pszcode: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbLogicalChannel2Descriptor_Impl::GetListCountryCode(this, core::mem::transmute_copy(&blistindex), core::mem::transmute_copy(&pszcode)).into()
}
}
unsafe extern "system" fn GetListCountOfRecords<Identity: IDvbLogicalChannel2Descriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bchannellistindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannel2Descriptor_Impl::GetListCountOfRecords(this, core::mem::transmute_copy(&bchannellistindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetListRecordServiceId<Identity: IDvbLogicalChannel2Descriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, blistindex: u8, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannel2Descriptor_Impl::GetListRecordServiceId(this, core::mem::transmute_copy(&blistindex), core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetListRecordLogicalChannelNumber<Identity: IDvbLogicalChannel2Descriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, blistindex: u8, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannel2Descriptor_Impl::GetListRecordLogicalChannelNumber(this, core::mem::transmute_copy(&blistindex), core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetListRecordLogicalChannelAndVisibility<Identity: IDvbLogicalChannel2Descriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, blistindex: u8, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannel2Descriptor_Impl::GetListRecordLogicalChannelAndVisibility(this, core::mem::transmute_copy(&blistindex), core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IDvbLogicalChannelDescriptor2_Vtbl::new::<Identity, OFFSET>(),
GetCountOfLists: GetCountOfLists::<Identity, OFFSET>,
GetListId: GetListId::<Identity, OFFSET>,
GetListNameW: GetListNameW::<Identity, OFFSET>,
GetListCountryCode: GetListCountryCode::<Identity, OFFSET>,
GetListCountOfRecords: GetListCountOfRecords::<Identity, OFFSET>,
GetListRecordServiceId: GetListRecordServiceId::<Identity, OFFSET>,
GetListRecordLogicalChannelNumber: GetListRecordLogicalChannelNumber::<Identity, OFFSET>,
GetListRecordLogicalChannelAndVisibility: GetListRecordLogicalChannelAndVisibility::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbLogicalChannel2Descriptor as windows_core::Interface>::IID || iid == &<IDvbLogicalChannelDescriptor as windows_core::Interface>::IID || iid == &<IDvbLogicalChannelDescriptor2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbLogicalChannel2Descriptor {}
windows_core::imp::define_interface!(IDvbLogicalChannelDescriptor, IDvbLogicalChannelDescriptor_Vtbl, 0xcf1edaff_3ffd_4cf7_8201_35756acbf85f);
windows_core::imp::interface_hierarchy!(IDvbLogicalChannelDescriptor, windows_core::IUnknown);
impl IDvbLogicalChannelDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordServiceId(&self, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceId)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordLogicalChannelNumber(&self, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordLogicalChannelNumber)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbLogicalChannelDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16) -> windows_core::HRESULT,
pub GetRecordLogicalChannelNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16) -> windows_core::HRESULT,
}
pub trait IDvbLogicalChannelDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordServiceId(&self, brecordindex: u8) -> windows_core::Result<u16>;
fn GetRecordLogicalChannelNumber(&self, brecordindex: u8) -> windows_core::Result<u16>;
}
impl IDvbLogicalChannelDescriptor_Vtbl {
pub const fn new<Identity: IDvbLogicalChannelDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbLogicalChannelDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannelDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbLogicalChannelDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannelDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbLogicalChannelDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannelDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceId<Identity: IDvbLogicalChannelDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannelDescriptor_Impl::GetRecordServiceId(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordLogicalChannelNumber<Identity: IDvbLogicalChannelDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannelDescriptor_Impl::GetRecordLogicalChannelNumber(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordServiceId: GetRecordServiceId::<Identity, OFFSET>,
GetRecordLogicalChannelNumber: GetRecordLogicalChannelNumber::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbLogicalChannelDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbLogicalChannelDescriptor {}
windows_core::imp::define_interface!(IDvbLogicalChannelDescriptor2, IDvbLogicalChannelDescriptor2_Vtbl, 0x43aca974_4be8_4b98_bc17_9eafd788b1d7);
impl core::ops::Deref for IDvbLogicalChannelDescriptor2 {
type Target = IDvbLogicalChannelDescriptor;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDvbLogicalChannelDescriptor2, windows_core::IUnknown, IDvbLogicalChannelDescriptor);
impl IDvbLogicalChannelDescriptor2 {
pub unsafe fn GetRecordLogicalChannelAndVisibility(&self, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordLogicalChannelAndVisibility)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbLogicalChannelDescriptor2_Vtbl {
pub base__: IDvbLogicalChannelDescriptor_Vtbl,
pub GetRecordLogicalChannelAndVisibility: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16) -> windows_core::HRESULT,
}
pub trait IDvbLogicalChannelDescriptor2_Impl: IDvbLogicalChannelDescriptor_Impl {
fn GetRecordLogicalChannelAndVisibility(&self, brecordindex: u8) -> windows_core::Result<u16>;
}
impl IDvbLogicalChannelDescriptor2_Vtbl {
pub const fn new<Identity: IDvbLogicalChannelDescriptor2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetRecordLogicalChannelAndVisibility<Identity: IDvbLogicalChannelDescriptor2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbLogicalChannelDescriptor2_Impl::GetRecordLogicalChannelAndVisibility(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IDvbLogicalChannelDescriptor_Vtbl::new::<Identity, OFFSET>(),
GetRecordLogicalChannelAndVisibility: GetRecordLogicalChannelAndVisibility::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbLogicalChannelDescriptor2 as windows_core::Interface>::IID || iid == &<IDvbLogicalChannelDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbLogicalChannelDescriptor2 {}
windows_core::imp::define_interface!(IDvbMultilingualServiceNameDescriptor, IDvbMultilingualServiceNameDescriptor_Vtbl, 0x2d80433b_b32c_47ef_987f_e78ebb773e34);
windows_core::imp::interface_hierarchy!(IDvbMultilingualServiceNameDescriptor, windows_core::IUnknown);
impl IDvbMultilingualServiceNameDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordLangId(&self, brecordindex: u8) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordLangId)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordServiceProviderNameW(&self, brecordindex: u8, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceProviderNameW)(windows_core::Interface::as_raw(self), brecordindex, convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetRecordServiceNameW(&self, brecordindex: u8, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceNameW)(windows_core::Interface::as_raw(self), brecordindex, convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbMultilingualServiceNameDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordLangId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32) -> windows_core::HRESULT,
pub GetRecordServiceProviderNameW: unsafe extern "system" fn(*mut core::ffi::c_void, u8, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordServiceNameW: unsafe extern "system" fn(*mut core::ffi::c_void, u8, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDvbMultilingualServiceNameDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordLangId(&self, brecordindex: u8) -> windows_core::Result<u32>;
fn GetRecordServiceProviderNameW(&self, brecordindex: u8, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
fn GetRecordServiceNameW(&self, brecordindex: u8, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IDvbMultilingualServiceNameDescriptor_Vtbl {
pub const fn new<Identity: IDvbMultilingualServiceNameDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbMultilingualServiceNameDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbMultilingualServiceNameDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbMultilingualServiceNameDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbMultilingualServiceNameDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbMultilingualServiceNameDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbMultilingualServiceNameDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordLangId<Identity: IDvbMultilingualServiceNameDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, ulval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbMultilingualServiceNameDescriptor_Impl::GetRecordLangId(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
ulval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceProviderNameW<Identity: IDvbMultilingualServiceNameDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbMultilingualServiceNameDescriptor_Impl::GetRecordServiceProviderNameW(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceNameW<Identity: IDvbMultilingualServiceNameDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbMultilingualServiceNameDescriptor_Impl::GetRecordServiceNameW(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordLangId: GetRecordLangId::<Identity, OFFSET>,
GetRecordServiceProviderNameW: GetRecordServiceProviderNameW::<Identity, OFFSET>,
GetRecordServiceNameW: GetRecordServiceNameW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbMultilingualServiceNameDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbMultilingualServiceNameDescriptor {}
windows_core::imp::define_interface!(IDvbNetworkNameDescriptor, IDvbNetworkNameDescriptor_Vtbl, 0x5b2a80cf_35b9_446c_b3e4_048b761dbc51);
windows_core::imp::interface_hierarchy!(IDvbNetworkNameDescriptor, windows_core::IUnknown);
impl IDvbNetworkNameDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetNetworkName(&self) -> windows_core::Result<*mut u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNetworkName)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetNetworkNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNetworkNameW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbNetworkNameDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetNetworkName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8) -> windows_core::HRESULT,
pub GetNetworkNameW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDvbNetworkNameDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetNetworkName(&self) -> windows_core::Result<*mut u8>;
fn GetNetworkNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IDvbNetworkNameDescriptor_Vtbl {
pub const fn new<Identity: IDvbNetworkNameDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbNetworkNameDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbNetworkNameDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbNetworkNameDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbNetworkNameDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetNetworkName<Identity: IDvbNetworkNameDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszname: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbNetworkNameDescriptor_Impl::GetNetworkName(this) {
Ok(ok__) => {
pszname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetNetworkNameW<Identity: IDvbNetworkNameDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbNetworkNameDescriptor_Impl::GetNetworkNameW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetNetworkName: GetNetworkName::<Identity, OFFSET>,
GetNetworkNameW: GetNetworkNameW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbNetworkNameDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbNetworkNameDescriptor {}
windows_core::imp::define_interface!(IDvbParentalRatingDescriptor, IDvbParentalRatingDescriptor_Vtbl, 0x3ad9dde1_fb1b_4186_937f_22e6b5a72a10);
windows_core::imp::interface_hierarchy!(IDvbParentalRatingDescriptor, windows_core::IUnknown);
impl IDvbParentalRatingDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordRating(&self, brecordindex: u8, pszcountrycode: &mut [u8; 4], pbval: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordRating)(windows_core::Interface::as_raw(self), brecordindex, core::mem::transmute(pszcountrycode.as_ptr()), pbval as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbParentalRatingDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordRating: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbParentalRatingDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordRating(&self, brecordindex: u8, pszcountrycode: *mut u8, pbval: *mut u8) -> windows_core::Result<()>;
}
impl IDvbParentalRatingDescriptor_Vtbl {
pub const fn new<Identity: IDvbParentalRatingDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbParentalRatingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbParentalRatingDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbParentalRatingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbParentalRatingDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbParentalRatingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbParentalRatingDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordRating<Identity: IDvbParentalRatingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pszcountrycode: *mut u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbParentalRatingDescriptor_Impl::GetRecordRating(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&pszcountrycode), core::mem::transmute_copy(&pbval)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordRating: GetRecordRating::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbParentalRatingDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbParentalRatingDescriptor {}
windows_core::imp::define_interface!(IDvbPrivateDataSpecifierDescriptor, IDvbPrivateDataSpecifierDescriptor_Vtbl, 0x5660a019_e75a_4b82_9b4c_ed2256d165a2);
windows_core::imp::interface_hierarchy!(IDvbPrivateDataSpecifierDescriptor, windows_core::IUnknown);
impl IDvbPrivateDataSpecifierDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetPrivateDataSpecifier(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPrivateDataSpecifier)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbPrivateDataSpecifierDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetPrivateDataSpecifier: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IDvbPrivateDataSpecifierDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetPrivateDataSpecifier(&self) -> windows_core::Result<u32>;
}
impl IDvbPrivateDataSpecifierDescriptor_Vtbl {
pub const fn new<Identity: IDvbPrivateDataSpecifierDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbPrivateDataSpecifierDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbPrivateDataSpecifierDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbPrivateDataSpecifierDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbPrivateDataSpecifierDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPrivateDataSpecifier<Identity: IDvbPrivateDataSpecifierDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbPrivateDataSpecifierDescriptor_Impl::GetPrivateDataSpecifier(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetPrivateDataSpecifier: GetPrivateDataSpecifier::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbPrivateDataSpecifierDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbPrivateDataSpecifierDescriptor {}
windows_core::imp::define_interface!(IDvbSatelliteDeliverySystemDescriptor, IDvbSatelliteDeliverySystemDescriptor_Vtbl, 0x02f2225a_805b_4ec5_a9a6_f9b5913cd470);
windows_core::imp::interface_hierarchy!(IDvbSatelliteDeliverySystemDescriptor, windows_core::IUnknown);
impl IDvbSatelliteDeliverySystemDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetFrequency(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFrequency)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOrbitalPosition(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOrbitalPosition)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetWestEastFlag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetWestEastFlag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetPolarization(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPolarization)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetModulation(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetModulation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSymbolRate(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolRate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetFECInner(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFECInner)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbSatelliteDeliverySystemDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetOrbitalPosition: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetWestEastFlag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetPolarization: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetModulation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSymbolRate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetFECInner: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbSatelliteDeliverySystemDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetFrequency(&self) -> windows_core::Result<u32>;
fn GetOrbitalPosition(&self) -> windows_core::Result<u16>;
fn GetWestEastFlag(&self) -> windows_core::Result<u8>;
fn GetPolarization(&self) -> windows_core::Result<u8>;
fn GetModulation(&self) -> windows_core::Result<u8>;
fn GetSymbolRate(&self) -> windows_core::Result<u32>;
fn GetFECInner(&self) -> windows_core::Result<u8>;
}
impl IDvbSatelliteDeliverySystemDescriptor_Vtbl {
pub const fn new<Identity: IDvbSatelliteDeliverySystemDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbSatelliteDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSatelliteDeliverySystemDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbSatelliteDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSatelliteDeliverySystemDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFrequency<Identity: IDvbSatelliteDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSatelliteDeliverySystemDescriptor_Impl::GetFrequency(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOrbitalPosition<Identity: IDvbSatelliteDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSatelliteDeliverySystemDescriptor_Impl::GetOrbitalPosition(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetWestEastFlag<Identity: IDvbSatelliteDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSatelliteDeliverySystemDescriptor_Impl::GetWestEastFlag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPolarization<Identity: IDvbSatelliteDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSatelliteDeliverySystemDescriptor_Impl::GetPolarization(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetModulation<Identity: IDvbSatelliteDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSatelliteDeliverySystemDescriptor_Impl::GetModulation(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSymbolRate<Identity: IDvbSatelliteDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSatelliteDeliverySystemDescriptor_Impl::GetSymbolRate(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFECInner<Identity: IDvbSatelliteDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSatelliteDeliverySystemDescriptor_Impl::GetFECInner(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetFrequency: GetFrequency::<Identity, OFFSET>,
GetOrbitalPosition: GetOrbitalPosition::<Identity, OFFSET>,
GetWestEastFlag: GetWestEastFlag::<Identity, OFFSET>,
GetPolarization: GetPolarization::<Identity, OFFSET>,
GetModulation: GetModulation::<Identity, OFFSET>,
GetSymbolRate: GetSymbolRate::<Identity, OFFSET>,
GetFECInner: GetFECInner::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbSatelliteDeliverySystemDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbSatelliteDeliverySystemDescriptor {}
windows_core::imp::define_interface!(IDvbServiceAttributeDescriptor, IDvbServiceAttributeDescriptor_Vtbl, 0x0f37bd92_d6a1_4854_b950_3a969d27f30e);
windows_core::imp::interface_hierarchy!(IDvbServiceAttributeDescriptor, windows_core::IUnknown);
impl IDvbServiceAttributeDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordServiceId(&self, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceId)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordNumericSelectionFlag(&self, brecordindex: u8) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordNumericSelectionFlag)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordVisibleServiceFlag(&self, brecordindex: u8) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordVisibleServiceFlag)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbServiceAttributeDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16) -> windows_core::HRESULT,
pub GetRecordNumericSelectionFlag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetRecordVisibleServiceFlag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut windows_core::BOOL) -> windows_core::HRESULT,
}
pub trait IDvbServiceAttributeDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordServiceId(&self, brecordindex: u8) -> windows_core::Result<u16>;
fn GetRecordNumericSelectionFlag(&self, brecordindex: u8) -> windows_core::Result<windows_core::BOOL>;
fn GetRecordVisibleServiceFlag(&self, brecordindex: u8) -> windows_core::Result<windows_core::BOOL>;
}
impl IDvbServiceAttributeDescriptor_Vtbl {
pub const fn new<Identity: IDvbServiceAttributeDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbServiceAttributeDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceAttributeDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbServiceAttributeDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceAttributeDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbServiceAttributeDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceAttributeDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceId<Identity: IDvbServiceAttributeDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceAttributeDescriptor_Impl::GetRecordServiceId(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordNumericSelectionFlag<Identity: IDvbServiceAttributeDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceAttributeDescriptor_Impl::GetRecordNumericSelectionFlag(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordVisibleServiceFlag<Identity: IDvbServiceAttributeDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceAttributeDescriptor_Impl::GetRecordVisibleServiceFlag(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordServiceId: GetRecordServiceId::<Identity, OFFSET>,
GetRecordNumericSelectionFlag: GetRecordNumericSelectionFlag::<Identity, OFFSET>,
GetRecordVisibleServiceFlag: GetRecordVisibleServiceFlag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbServiceAttributeDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbServiceAttributeDescriptor {}
windows_core::imp::define_interface!(IDvbServiceDescriptor, IDvbServiceDescriptor_Vtbl, 0xf9c7fbcf_e2d6_464d_b32d_2ef526e49290);
windows_core::imp::interface_hierarchy!(IDvbServiceDescriptor, windows_core::IUnknown);
impl IDvbServiceDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetServiceType(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetServiceProviderName(&self) -> windows_core::Result<*mut u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceProviderName)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetServiceProviderNameW(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceProviderNameW)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetServiceName(&self) -> windows_core::Result<*mut u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceName)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetProcessedServiceName(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessedServiceName)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetServiceNameEmphasized(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceNameEmphasized)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbServiceDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetServiceType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetServiceProviderName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8) -> windows_core::HRESULT,
pub GetServiceProviderNameW: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetServiceName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8) -> windows_core::HRESULT,
pub GetProcessedServiceName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetServiceNameEmphasized: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDvbServiceDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetServiceType(&self) -> windows_core::Result<u8>;
fn GetServiceProviderName(&self) -> windows_core::Result<*mut u8>;
fn GetServiceProviderNameW(&self) -> windows_core::Result<windows_core::BSTR>;
fn GetServiceName(&self) -> windows_core::Result<*mut u8>;
fn GetProcessedServiceName(&self) -> windows_core::Result<windows_core::BSTR>;
fn GetServiceNameEmphasized(&self) -> windows_core::Result<windows_core::BSTR>;
}
impl IDvbServiceDescriptor_Vtbl {
pub const fn new<Identity: IDvbServiceDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceType<Identity: IDvbServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceDescriptor_Impl::GetServiceType(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceProviderName<Identity: IDvbServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszname: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceDescriptor_Impl::GetServiceProviderName(this) {
Ok(ok__) => {
pszname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceProviderNameW<Identity: IDvbServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceDescriptor_Impl::GetServiceProviderNameW(this) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceName<Identity: IDvbServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszname: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceDescriptor_Impl::GetServiceName(this) {
Ok(ok__) => {
pszname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetProcessedServiceName<Identity: IDvbServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceDescriptor_Impl::GetProcessedServiceName(this) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceNameEmphasized<Identity: IDvbServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceDescriptor_Impl::GetServiceNameEmphasized(this) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetServiceType: GetServiceType::<Identity, OFFSET>,
GetServiceProviderName: GetServiceProviderName::<Identity, OFFSET>,
GetServiceProviderNameW: GetServiceProviderNameW::<Identity, OFFSET>,
GetServiceName: GetServiceName::<Identity, OFFSET>,
GetProcessedServiceName: GetProcessedServiceName::<Identity, OFFSET>,
GetServiceNameEmphasized: GetServiceNameEmphasized::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbServiceDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbServiceDescriptor {}
windows_core::imp::define_interface!(IDvbServiceDescriptor2, IDvbServiceDescriptor2_Vtbl, 0xd6c76506_85ab_487c_9b2b_36416511e4a2);
impl core::ops::Deref for IDvbServiceDescriptor2 {
type Target = IDvbServiceDescriptor;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDvbServiceDescriptor2, windows_core::IUnknown, IDvbServiceDescriptor);
impl IDvbServiceDescriptor2 {
pub unsafe fn GetServiceProviderNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceProviderNameW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetServiceNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceNameW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbServiceDescriptor2_Vtbl {
pub base__: IDvbServiceDescriptor_Vtbl,
pub GetServiceProviderNameW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetServiceNameW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDvbServiceDescriptor2_Impl: IDvbServiceDescriptor_Impl {
fn GetServiceProviderNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
fn GetServiceNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IDvbServiceDescriptor2_Vtbl {
pub const fn new<Identity: IDvbServiceDescriptor2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetServiceProviderNameW<Identity: IDvbServiceDescriptor2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceDescriptor2_Impl::GetServiceProviderNameW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceNameW<Identity: IDvbServiceDescriptor2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceDescriptor2_Impl::GetServiceNameW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IDvbServiceDescriptor_Vtbl::new::<Identity, OFFSET>(),
GetServiceProviderNameW: GetServiceProviderNameW::<Identity, OFFSET>,
GetServiceNameW: GetServiceNameW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbServiceDescriptor2 as windows_core::Interface>::IID || iid == &<IDvbServiceDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbServiceDescriptor2 {}
windows_core::imp::define_interface!(IDvbServiceListDescriptor, IDvbServiceListDescriptor_Vtbl, 0x05db0d8f_6008_491a_acd3_7090952707d0);
windows_core::imp::interface_hierarchy!(IDvbServiceListDescriptor, windows_core::IUnknown);
impl IDvbServiceListDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordServiceId(&self, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceId)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordServiceType(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceType)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbServiceListDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16) -> windows_core::HRESULT,
pub GetRecordServiceType: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbServiceListDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordServiceId(&self, brecordindex: u8) -> windows_core::Result<u16>;
fn GetRecordServiceType(&self, brecordindex: u8) -> windows_core::Result<u8>;
}
impl IDvbServiceListDescriptor_Vtbl {
pub const fn new<Identity: IDvbServiceListDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbServiceListDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceListDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbServiceListDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceListDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbServiceListDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceListDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceId<Identity: IDvbServiceListDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceListDescriptor_Impl::GetRecordServiceId(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceType<Identity: IDvbServiceListDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbServiceListDescriptor_Impl::GetRecordServiceType(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordServiceId: GetRecordServiceId::<Identity, OFFSET>,
GetRecordServiceType: GetRecordServiceType::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbServiceListDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbServiceListDescriptor {}
windows_core::imp::define_interface!(IDvbShortEventDescriptor, IDvbShortEventDescriptor_Vtbl, 0xb170be92_5b75_458e_9c6e_b0008231491a);
windows_core::imp::interface_hierarchy!(IDvbShortEventDescriptor, windows_core::IUnknown);
impl IDvbShortEventDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLanguageCode(&self, pszcode: &mut [u8; 4]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLanguageCode)(windows_core::Interface::as_raw(self), core::mem::transmute(pszcode.as_ptr())).ok() }
}
pub unsafe fn GetEventNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventNameW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTextW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbShortEventDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLanguageCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetEventNameW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTextW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDvbShortEventDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetLanguageCode(&self, pszcode: *mut u8) -> windows_core::Result<()>;
fn GetEventNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IDvbShortEventDescriptor_Vtbl {
pub const fn new<Identity: IDvbShortEventDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbShortEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbShortEventDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbShortEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbShortEventDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLanguageCode<Identity: IDvbShortEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszcode: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbShortEventDescriptor_Impl::GetLanguageCode(this, core::mem::transmute_copy(&pszcode)).into()
}
}
unsafe extern "system" fn GetEventNameW<Identity: IDvbShortEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbShortEventDescriptor_Impl::GetEventNameW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTextW<Identity: IDvbShortEventDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrtext: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbShortEventDescriptor_Impl::GetTextW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrtext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetLanguageCode: GetLanguageCode::<Identity, OFFSET>,
GetEventNameW: GetEventNameW::<Identity, OFFSET>,
GetTextW: GetTextW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbShortEventDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbShortEventDescriptor {}
windows_core::imp::define_interface!(IDvbSiParser, IDvbSiParser_Vtbl, 0xb758a7bd_14dc_449d_b828_35909acb3b1e);
windows_core::imp::interface_hierarchy!(IDvbSiParser, windows_core::IUnknown);
impl IDvbSiParser {
pub unsafe fn Initialize<P0>(&self, punkmpeg2data: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), punkmpeg2data.param().abi()).ok() }
}
pub unsafe fn GetPAT(&self) -> windows_core::Result<IPAT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPAT)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetCAT(&self, dwtimeout: u32) -> windows_core::Result<ICAT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCAT)(windows_core::Interface::as_raw(self), dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetPMT(&self, pid: u16, pwprogramnumber: Option<*const u16>) -> windows_core::Result<IPMT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPMT)(windows_core::Interface::as_raw(self), pid, pwprogramnumber.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTSDT(&self) -> windows_core::Result<ITSDT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTSDT)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetNIT(&self, tableid: u8, pwnetworkid: Option<*const u16>) -> windows_core::Result<IDVB_NIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNIT)(windows_core::Interface::as_raw(self), tableid, pwnetworkid.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetSDT(&self, tableid: u8, pwtransportstreamid: Option<*const u16>) -> windows_core::Result<IDVB_SDT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSDT)(windows_core::Interface::as_raw(self), tableid, pwtransportstreamid.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetEIT(&self, tableid: u8, pwserviceid: Option<*const u16>) -> windows_core::Result<IDVB_EIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEIT)(windows_core::Interface::as_raw(self), tableid, pwserviceid.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetBAT(&self, pwbouquetid: Option<*const u16>) -> windows_core::Result<IDVB_BAT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBAT)(windows_core::Interface::as_raw(self), pwbouquetid.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRST(&self, dwtimeout: u32) -> windows_core::Result<IDVB_RST> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRST)(windows_core::Interface::as_raw(self), dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetST(&self, pid: u16, dwtimeout: u32) -> windows_core::Result<IDVB_ST> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetST)(windows_core::Interface::as_raw(self), pid, dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTDT(&self) -> windows_core::Result<IDVB_TDT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTDT)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTOT(&self) -> windows_core::Result<IDVB_TOT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTOT)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetDIT(&self, dwtimeout: u32) -> windows_core::Result<IDVB_DIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDIT)(windows_core::Interface::as_raw(self), dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetSIT(&self, dwtimeout: u32) -> windows_core::Result<IDVB_SIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSIT)(windows_core::Interface::as_raw(self), dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbSiParser_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetPAT: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCAT: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetPMT: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTSDT: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNIT: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetSDT: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetEIT: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBAT: unsafe extern "system" fn(*mut core::ffi::c_void, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRST: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetST: unsafe extern "system" fn(*mut core::ffi::c_void, u16, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTDT: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTOT: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetDIT: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetSIT: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDvbSiParser_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, punkmpeg2data: windows_core::Ref<windows_core::IUnknown>) -> windows_core::Result<()>;
fn GetPAT(&self) -> windows_core::Result<IPAT>;
fn GetCAT(&self, dwtimeout: u32) -> windows_core::Result<ICAT>;
fn GetPMT(&self, pid: u16, pwprogramnumber: *const u16) -> windows_core::Result<IPMT>;
fn GetTSDT(&self) -> windows_core::Result<ITSDT>;
fn GetNIT(&self, tableid: u8, pwnetworkid: *const u16) -> windows_core::Result<IDVB_NIT>;
fn GetSDT(&self, tableid: u8, pwtransportstreamid: *const u16) -> windows_core::Result<IDVB_SDT>;
fn GetEIT(&self, tableid: u8, pwserviceid: *const u16) -> windows_core::Result<IDVB_EIT>;
fn GetBAT(&self, pwbouquetid: *const u16) -> windows_core::Result<IDVB_BAT>;
fn GetRST(&self, dwtimeout: u32) -> windows_core::Result<IDVB_RST>;
fn GetST(&self, pid: u16, dwtimeout: u32) -> windows_core::Result<IDVB_ST>;
fn GetTDT(&self) -> windows_core::Result<IDVB_TDT>;
fn GetTOT(&self) -> windows_core::Result<IDVB_TOT>;
fn GetDIT(&self, dwtimeout: u32) -> windows_core::Result<IDVB_DIT>;
fn GetSIT(&self, dwtimeout: u32) -> windows_core::Result<IDVB_SIT>;
}
impl IDvbSiParser_Vtbl {
pub const fn new<Identity: IDvbSiParser_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, punkmpeg2data: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IDvbSiParser_Impl::Initialize(this, core::mem::transmute_copy(&punkmpeg2data)).into()
}
}
unsafe extern "system" fn GetPAT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pppat: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetPAT(this) {
Ok(ok__) => {
pppat.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCAT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwtimeout: u32, ppcat: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetCAT(this, core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
ppcat.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPMT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: u16, pwprogramnumber: *const u16, pppmt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetPMT(this, core::mem::transmute_copy(&pid), core::mem::transmute_copy(&pwprogramnumber)) {
Ok(ok__) => {
pppmt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTSDT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pptsdt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetTSDT(this) {
Ok(ok__) => {
pptsdt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetNIT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, pwnetworkid: *const u16, ppnit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetNIT(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&pwnetworkid)) {
Ok(ok__) => {
ppnit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSDT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, pwtransportstreamid: *const u16, ppsdt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetSDT(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&pwtransportstreamid)) {
Ok(ok__) => {
ppsdt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEIT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, pwserviceid: *const u16, ppeit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetEIT(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&pwserviceid)) {
Ok(ok__) => {
ppeit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetBAT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwbouquetid: *const u16, ppbat: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetBAT(this, core::mem::transmute_copy(&pwbouquetid)) {
Ok(ok__) => {
ppbat.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRST<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwtimeout: u32, pprst: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetRST(this, core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
pprst.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetST<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: u16, dwtimeout: u32, ppst: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetST(this, core::mem::transmute_copy(&pid), core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
ppst.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTDT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pptdt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetTDT(this) {
Ok(ok__) => {
pptdt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTOT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pptot: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetTOT(this) {
Ok(ok__) => {
pptot.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDIT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwtimeout: u32, ppdit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetDIT(this, core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
ppdit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSIT<Identity: IDvbSiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwtimeout: u32, ppsit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser_Impl::GetSIT(this, core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
ppsit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetPAT: GetPAT::<Identity, OFFSET>,
GetCAT: GetCAT::<Identity, OFFSET>,
GetPMT: GetPMT::<Identity, OFFSET>,
GetTSDT: GetTSDT::<Identity, OFFSET>,
GetNIT: GetNIT::<Identity, OFFSET>,
GetSDT: GetSDT::<Identity, OFFSET>,
GetEIT: GetEIT::<Identity, OFFSET>,
GetBAT: GetBAT::<Identity, OFFSET>,
GetRST: GetRST::<Identity, OFFSET>,
GetST: GetST::<Identity, OFFSET>,
GetTDT: GetTDT::<Identity, OFFSET>,
GetTOT: GetTOT::<Identity, OFFSET>,
GetDIT: GetDIT::<Identity, OFFSET>,
GetSIT: GetSIT::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbSiParser as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbSiParser {}
windows_core::imp::define_interface!(IDvbSiParser2, IDvbSiParser2_Vtbl, 0x0ac5525f_f816_42f4_93ba_4c0f32f46e54);
impl core::ops::Deref for IDvbSiParser2 {
type Target = IDvbSiParser;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDvbSiParser2, windows_core::IUnknown, IDvbSiParser);
impl IDvbSiParser2 {
pub unsafe fn GetEIT2(&self, tableid: u8, pwserviceid: Option<*const u16>, pbsegment: Option<*const u8>) -> windows_core::Result<IDVB_EIT2> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEIT2)(windows_core::Interface::as_raw(self), tableid, pwserviceid.unwrap_or(core::mem::zeroed()) as _, pbsegment.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbSiParser2_Vtbl {
pub base__: IDvbSiParser_Vtbl,
pub GetEIT2: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *const u16, *const u8, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IDvbSiParser2_Impl: IDvbSiParser_Impl {
fn GetEIT2(&self, tableid: u8, pwserviceid: *const u16, pbsegment: *const u8) -> windows_core::Result<IDVB_EIT2>;
}
impl IDvbSiParser2_Vtbl {
pub const fn new<Identity: IDvbSiParser2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetEIT2<Identity: IDvbSiParser2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, pwserviceid: *const u16, pbsegment: *const u8, ppeit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSiParser2_Impl::GetEIT2(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&pwserviceid), core::mem::transmute_copy(&pbsegment)) {
Ok(ok__) => {
ppeit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: IDvbSiParser_Vtbl::new::<Identity, OFFSET>(), GetEIT2: GetEIT2::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbSiParser2 as windows_core::Interface>::IID || iid == &<IDvbSiParser as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbSiParser2 {}
windows_core::imp::define_interface!(IDvbSubtitlingDescriptor, IDvbSubtitlingDescriptor_Vtbl, 0x9b25fe1d_fa23_4e50_9784_6df8b26f8a49);
windows_core::imp::interface_hierarchy!(IDvbSubtitlingDescriptor, windows_core::IUnknown);
impl IDvbSubtitlingDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordLangId(&self, brecordindex: u8) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordLangId)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordSubtitlingType(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordSubtitlingType)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCompositionPageID(&self, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCompositionPageID)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordAncillaryPageID(&self, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordAncillaryPageID)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbSubtitlingDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordLangId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32) -> windows_core::HRESULT,
pub GetRecordSubtitlingType: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordCompositionPageID: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16) -> windows_core::HRESULT,
pub GetRecordAncillaryPageID: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16) -> windows_core::HRESULT,
}
pub trait IDvbSubtitlingDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordLangId(&self, brecordindex: u8) -> windows_core::Result<u32>;
fn GetRecordSubtitlingType(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetRecordCompositionPageID(&self, brecordindex: u8) -> windows_core::Result<u16>;
fn GetRecordAncillaryPageID(&self, brecordindex: u8) -> windows_core::Result<u16>;
}
impl IDvbSubtitlingDescriptor_Vtbl {
pub const fn new<Identity: IDvbSubtitlingDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbSubtitlingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSubtitlingDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbSubtitlingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSubtitlingDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbSubtitlingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSubtitlingDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordLangId<Identity: IDvbSubtitlingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pulval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSubtitlingDescriptor_Impl::GetRecordLangId(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pulval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordSubtitlingType<Identity: IDvbSubtitlingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSubtitlingDescriptor_Impl::GetRecordSubtitlingType(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCompositionPageID<Identity: IDvbSubtitlingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSubtitlingDescriptor_Impl::GetRecordCompositionPageID(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordAncillaryPageID<Identity: IDvbSubtitlingDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbSubtitlingDescriptor_Impl::GetRecordAncillaryPageID(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordLangId: GetRecordLangId::<Identity, OFFSET>,
GetRecordSubtitlingType: GetRecordSubtitlingType::<Identity, OFFSET>,
GetRecordCompositionPageID: GetRecordCompositionPageID::<Identity, OFFSET>,
GetRecordAncillaryPageID: GetRecordAncillaryPageID::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbSubtitlingDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbSubtitlingDescriptor {}
windows_core::imp::define_interface!(IDvbTeletextDescriptor, IDvbTeletextDescriptor_Vtbl, 0x9cd29d47_69c6_4f92_98a9_210af1b7303a);
windows_core::imp::interface_hierarchy!(IDvbTeletextDescriptor, windows_core::IUnknown);
impl IDvbTeletextDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordLangId(&self, brecordindex: u8) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordLangId)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTeletextType(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordTeletextType)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordMagazineNumber(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordMagazineNumber)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordPageNumber(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordPageNumber)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbTeletextDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordLangId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32) -> windows_core::HRESULT,
pub GetRecordTeletextType: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordMagazineNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordPageNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbTeletextDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordLangId(&self, brecordindex: u8) -> windows_core::Result<u32>;
fn GetRecordTeletextType(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetRecordMagazineNumber(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetRecordPageNumber(&self, brecordindex: u8) -> windows_core::Result<u8>;
}
impl IDvbTeletextDescriptor_Vtbl {
pub const fn new<Identity: IDvbTeletextDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbTeletextDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTeletextDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbTeletextDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTeletextDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IDvbTeletextDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTeletextDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordLangId<Identity: IDvbTeletextDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pulval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTeletextDescriptor_Impl::GetRecordLangId(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pulval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTeletextType<Identity: IDvbTeletextDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTeletextDescriptor_Impl::GetRecordTeletextType(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordMagazineNumber<Identity: IDvbTeletextDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTeletextDescriptor_Impl::GetRecordMagazineNumber(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordPageNumber<Identity: IDvbTeletextDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTeletextDescriptor_Impl::GetRecordPageNumber(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordLangId: GetRecordLangId::<Identity, OFFSET>,
GetRecordTeletextType: GetRecordTeletextType::<Identity, OFFSET>,
GetRecordMagazineNumber: GetRecordMagazineNumber::<Identity, OFFSET>,
GetRecordPageNumber: GetRecordPageNumber::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbTeletextDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbTeletextDescriptor {}
windows_core::imp::define_interface!(IDvbTerrestrial2DeliverySystemDescriptor, IDvbTerrestrial2DeliverySystemDescriptor_Vtbl, 0x20ee9be9_cd57_49ab_8f6e_1d07aeb8e482);
windows_core::imp::interface_hierarchy!(IDvbTerrestrial2DeliverySystemDescriptor, windows_core::IUnknown);
impl IDvbTerrestrial2DeliverySystemDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTagExtension(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTagExtension)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCentreFrequency(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCentreFrequency)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetPLPId(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPLPId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetT2SystemId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetT2SystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetMultipleInputMode(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetMultipleInputMode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetBandwidth(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBandwidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetGuardInterval(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetGuardInterval)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTransmissionMode(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTransmissionMode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCellId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCellId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOtherFrequencyFlag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOtherFrequencyFlag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTFSFlag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTFSFlag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbTerrestrial2DeliverySystemDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTagExtension: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCentreFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetPLPId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetT2SystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetMultipleInputMode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetBandwidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetGuardInterval: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTransmissionMode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCellId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetOtherFrequencyFlag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTFSFlag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbTerrestrial2DeliverySystemDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetTagExtension(&self) -> windows_core::Result<u8>;
fn GetCentreFrequency(&self) -> windows_core::Result<u32>;
fn GetPLPId(&self) -> windows_core::Result<u8>;
fn GetT2SystemId(&self) -> windows_core::Result<u16>;
fn GetMultipleInputMode(&self) -> windows_core::Result<u8>;
fn GetBandwidth(&self) -> windows_core::Result<u8>;
fn GetGuardInterval(&self) -> windows_core::Result<u8>;
fn GetTransmissionMode(&self) -> windows_core::Result<u8>;
fn GetCellId(&self) -> windows_core::Result<u16>;
fn GetOtherFrequencyFlag(&self) -> windows_core::Result<u8>;
fn GetTFSFlag(&self) -> windows_core::Result<u8>;
}
impl IDvbTerrestrial2DeliverySystemDescriptor_Vtbl {
pub const fn new<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTagExtension<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetTagExtension(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCentreFrequency<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetCentreFrequency(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPLPId<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetPLPId(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetT2SystemId<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetT2SystemId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetMultipleInputMode<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetMultipleInputMode(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetBandwidth<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetBandwidth(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetGuardInterval<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetGuardInterval(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTransmissionMode<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetTransmissionMode(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCellId<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetCellId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOtherFrequencyFlag<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetOtherFrequencyFlag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTFSFlag<Identity: IDvbTerrestrial2DeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrial2DeliverySystemDescriptor_Impl::GetTFSFlag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetTagExtension: GetTagExtension::<Identity, OFFSET>,
GetCentreFrequency: GetCentreFrequency::<Identity, OFFSET>,
GetPLPId: GetPLPId::<Identity, OFFSET>,
GetT2SystemId: GetT2SystemId::<Identity, OFFSET>,
GetMultipleInputMode: GetMultipleInputMode::<Identity, OFFSET>,
GetBandwidth: GetBandwidth::<Identity, OFFSET>,
GetGuardInterval: GetGuardInterval::<Identity, OFFSET>,
GetTransmissionMode: GetTransmissionMode::<Identity, OFFSET>,
GetCellId: GetCellId::<Identity, OFFSET>,
GetOtherFrequencyFlag: GetOtherFrequencyFlag::<Identity, OFFSET>,
GetTFSFlag: GetTFSFlag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbTerrestrial2DeliverySystemDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbTerrestrial2DeliverySystemDescriptor {}
windows_core::imp::define_interface!(IDvbTerrestrialDeliverySystemDescriptor, IDvbTerrestrialDeliverySystemDescriptor_Vtbl, 0xed7e1b91_d12e_420c_b41d_a49d84fe1823);
windows_core::imp::interface_hierarchy!(IDvbTerrestrialDeliverySystemDescriptor, windows_core::IUnknown);
impl IDvbTerrestrialDeliverySystemDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCentreFrequency(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCentreFrequency)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetBandwidth(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBandwidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetConstellation(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetConstellation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetHierarchyInformation(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetHierarchyInformation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCodeRateHPStream(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCodeRateHPStream)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCodeRateLPStream(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCodeRateLPStream)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetGuardInterval(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetGuardInterval)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTransmissionMode(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTransmissionMode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOtherFrequencyFlag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOtherFrequencyFlag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDvbTerrestrialDeliverySystemDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCentreFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetBandwidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetConstellation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetHierarchyInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCodeRateHPStream: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCodeRateLPStream: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetGuardInterval: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTransmissionMode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetOtherFrequencyFlag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
}
pub trait IDvbTerrestrialDeliverySystemDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCentreFrequency(&self) -> windows_core::Result<u32>;
fn GetBandwidth(&self) -> windows_core::Result<u8>;
fn GetConstellation(&self) -> windows_core::Result<u8>;
fn GetHierarchyInformation(&self) -> windows_core::Result<u8>;
fn GetCodeRateHPStream(&self) -> windows_core::Result<u8>;
fn GetCodeRateLPStream(&self) -> windows_core::Result<u8>;
fn GetGuardInterval(&self) -> windows_core::Result<u8>;
fn GetTransmissionMode(&self) -> windows_core::Result<u8>;
fn GetOtherFrequencyFlag(&self) -> windows_core::Result<u8>;
}
impl IDvbTerrestrialDeliverySystemDescriptor_Vtbl {
pub const fn new<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCentreFrequency<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetCentreFrequency(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetBandwidth<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetBandwidth(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetConstellation<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetConstellation(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetHierarchyInformation<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetHierarchyInformation(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCodeRateHPStream<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetCodeRateHPStream(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCodeRateLPStream<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetCodeRateLPStream(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetGuardInterval<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetGuardInterval(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTransmissionMode<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetTransmissionMode(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOtherFrequencyFlag<Identity: IDvbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IDvbTerrestrialDeliverySystemDescriptor_Impl::GetOtherFrequencyFlag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCentreFrequency: GetCentreFrequency::<Identity, OFFSET>,
GetBandwidth: GetBandwidth::<Identity, OFFSET>,
GetConstellation: GetConstellation::<Identity, OFFSET>,
GetHierarchyInformation: GetHierarchyInformation::<Identity, OFFSET>,
GetCodeRateHPStream: GetCodeRateHPStream::<Identity, OFFSET>,
GetCodeRateLPStream: GetCodeRateLPStream::<Identity, OFFSET>,
GetGuardInterval: GetGuardInterval::<Identity, OFFSET>,
GetTransmissionMode: GetTransmissionMode::<Identity, OFFSET>,
GetOtherFrequencyFlag: GetOtherFrequencyFlag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IDvbTerrestrialDeliverySystemDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IDvbTerrestrialDeliverySystemDescriptor {}
windows_core::imp::define_interface!(IESCloseMmiEvent, IESCloseMmiEvent_Vtbl, 0x6b80e96f_55e2_45aa_b754_0c23c8e7d5c1);
impl core::ops::Deref for IESCloseMmiEvent {
type Target = super::IESEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IESCloseMmiEvent, windows_core::IUnknown, super::IESEvent);
impl IESCloseMmiEvent {
pub unsafe fn GetDialogNumber(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDialogNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IESCloseMmiEvent_Vtbl {
pub base__: super::IESEvent_Vtbl,
pub GetDialogNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IESCloseMmiEvent_Impl: super::IESEvent_Impl {
fn GetDialogNumber(&self) -> windows_core::Result<u32>;
}
#[cfg(feature = "Win32_System_Com")]
impl IESCloseMmiEvent_Vtbl {
pub const fn new<Identity: IESCloseMmiEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetDialogNumber<Identity: IESCloseMmiEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdialognumber: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESCloseMmiEvent_Impl::GetDialogNumber(this) {
Ok(ok__) => {
pdialognumber.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: super::IESEvent_Vtbl::new::<Identity, OFFSET>(), GetDialogNumber: GetDialogNumber::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IESCloseMmiEvent as windows_core::Interface>::IID || iid == &<super::IESEvent as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IESCloseMmiEvent {}
windows_core::imp::define_interface!(IESEventFactory, IESEventFactory_Vtbl, 0x506a09b8_7f86_4e04_ac05_3303bfe8fc49);
windows_core::imp::interface_hierarchy!(IESEventFactory, windows_core::IUnknown);
impl IESEventFactory {
pub unsafe fn CreateESEvent<P0, P6>(&self, pserviceprovider: P0, dweventid: u32, guideventtype: windows_core::GUID, peventdata: &[u8], bstrbaseurl: &windows_core::BSTR, pinitcontext: P6) -> windows_core::Result<super::IESEvent>
where
P0: windows_core::Param<windows_core::IUnknown>,
P6: windows_core::Param<windows_core::IUnknown>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateESEvent)(windows_core::Interface::as_raw(self), pserviceprovider.param().abi(), dweventid, core::mem::transmute(guideventtype), peventdata.len().try_into().unwrap(), core::mem::transmute(peventdata.as_ptr()), core::mem::transmute_copy(bstrbaseurl), pinitcontext.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IESEventFactory_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub CreateESEvent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32, windows_core::GUID, u32, *const u8, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IESEventFactory_Impl: windows_core::IUnknownImpl {
fn CreateESEvent(&self, pserviceprovider: windows_core::Ref<windows_core::IUnknown>, dweventid: u32, guideventtype: &windows_core::GUID, dweventdatalength: u32, peventdata: *const u8, bstrbaseurl: &windows_core::BSTR, pinitcontext: windows_core::Ref<windows_core::IUnknown>) -> windows_core::Result<super::IESEvent>;
}
impl IESEventFactory_Vtbl {
pub const fn new<Identity: IESEventFactory_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CreateESEvent<Identity: IESEventFactory_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pserviceprovider: *mut core::ffi::c_void, dweventid: u32, guideventtype: windows_core::GUID, dweventdatalength: u32, peventdata: *const u8, bstrbaseurl: *mut core::ffi::c_void, pinitcontext: *mut core::ffi::c_void, ppesevent: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESEventFactory_Impl::CreateESEvent(this, core::mem::transmute_copy(&pserviceprovider), core::mem::transmute_copy(&dweventid), core::mem::transmute(&guideventtype), core::mem::transmute_copy(&dweventdatalength), core::mem::transmute_copy(&peventdata), core::mem::transmute(&bstrbaseurl), core::mem::transmute_copy(&pinitcontext)) {
Ok(ok__) => {
ppesevent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CreateESEvent: CreateESEvent::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IESEventFactory as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IESEventFactory {}
windows_core::imp::define_interface!(IESEventService, IESEventService_Vtbl, 0xed89a619_4c06_4b2f_99eb_c7669b13047c);
windows_core::imp::interface_hierarchy!(IESEventService, windows_core::IUnknown);
impl IESEventService {
pub unsafe fn FireESEvent<P0>(&self, pesevent: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<super::IESEvent>,
{
unsafe { (windows_core::Interface::vtable(self).FireESEvent)(windows_core::Interface::as_raw(self), pesevent.param().abi()).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IESEventService_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub FireESEvent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IESEventService_Impl: windows_core::IUnknownImpl {
fn FireESEvent(&self, pesevent: windows_core::Ref<super::IESEvent>) -> windows_core::Result<()>;
}
impl IESEventService_Vtbl {
pub const fn new<Identity: IESEventService_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn FireESEvent<Identity: IESEventService_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pesevent: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IESEventService_Impl::FireESEvent(this, core::mem::transmute_copy(&pesevent)).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), FireESEvent: FireESEvent::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IESEventService as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IESEventService {}
windows_core::imp::define_interface!(IESEventServiceConfiguration, IESEventServiceConfiguration_Vtbl, 0x33b9daae_9309_491d_a051_bcad2a70cd66);
windows_core::imp::interface_hierarchy!(IESEventServiceConfiguration, windows_core::IUnknown);
impl IESEventServiceConfiguration {
pub unsafe fn SetParent<P0>(&self, peventservice: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IESEventService>,
{
unsafe { (windows_core::Interface::vtable(self).SetParent)(windows_core::Interface::as_raw(self), peventservice.param().abi()).ok() }
}
pub unsafe fn RemoveParent(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RemoveParent)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SetOwner<P0>(&self, pesevents: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<super::IESEvents>,
{
unsafe { (windows_core::Interface::vtable(self).SetOwner)(windows_core::Interface::as_raw(self), pesevents.param().abi()).ok() }
}
pub unsafe fn RemoveOwner(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RemoveOwner)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SetGraph<P0>(&self, pgraph: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<super::IFilterGraph>,
{
unsafe { (windows_core::Interface::vtable(self).SetGraph)(windows_core::Interface::as_raw(self), pgraph.param().abi()).ok() }
}
pub unsafe fn RemoveGraph<P0>(&self, pgraph: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<super::IFilterGraph>,
{
unsafe { (windows_core::Interface::vtable(self).RemoveGraph)(windows_core::Interface::as_raw(self), pgraph.param().abi()).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IESEventServiceConfiguration_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub SetParent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveParent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOwner: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveOwner: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetGraph: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveGraph: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IESEventServiceConfiguration_Impl: windows_core::IUnknownImpl {
fn SetParent(&self, peventservice: windows_core::Ref<IESEventService>) -> windows_core::Result<()>;
fn RemoveParent(&self) -> windows_core::Result<()>;
fn SetOwner(&self, pesevents: windows_core::Ref<super::IESEvents>) -> windows_core::Result<()>;
fn RemoveOwner(&self) -> windows_core::Result<()>;
fn SetGraph(&self, pgraph: windows_core::Ref<super::IFilterGraph>) -> windows_core::Result<()>;
fn RemoveGraph(&self, pgraph: windows_core::Ref<super::IFilterGraph>) -> windows_core::Result<()>;
}
impl IESEventServiceConfiguration_Vtbl {
pub const fn new<Identity: IESEventServiceConfiguration_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetParent<Identity: IESEventServiceConfiguration_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, peventservice: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IESEventServiceConfiguration_Impl::SetParent(this, core::mem::transmute_copy(&peventservice)).into()
}
}
unsafe extern "system" fn RemoveParent<Identity: IESEventServiceConfiguration_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IESEventServiceConfiguration_Impl::RemoveParent(this).into()
}
}
unsafe extern "system" fn SetOwner<Identity: IESEventServiceConfiguration_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pesevents: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IESEventServiceConfiguration_Impl::SetOwner(this, core::mem::transmute_copy(&pesevents)).into()
}
}
unsafe extern "system" fn RemoveOwner<Identity: IESEventServiceConfiguration_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IESEventServiceConfiguration_Impl::RemoveOwner(this).into()
}
}
unsafe extern "system" fn SetGraph<Identity: IESEventServiceConfiguration_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pgraph: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IESEventServiceConfiguration_Impl::SetGraph(this, core::mem::transmute_copy(&pgraph)).into()
}
}
unsafe extern "system" fn RemoveGraph<Identity: IESEventServiceConfiguration_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pgraph: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IESEventServiceConfiguration_Impl::RemoveGraph(this, core::mem::transmute_copy(&pgraph)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetParent: SetParent::<Identity, OFFSET>,
RemoveParent: RemoveParent::<Identity, OFFSET>,
SetOwner: SetOwner::<Identity, OFFSET>,
RemoveOwner: RemoveOwner::<Identity, OFFSET>,
SetGraph: SetGraph::<Identity, OFFSET>,
RemoveGraph: RemoveGraph::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IESEventServiceConfiguration as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IESEventServiceConfiguration {}
windows_core::imp::define_interface!(IESFileExpiryDateEvent, IESFileExpiryDateEvent_Vtbl, 0xba9edcb6_4d36_4cfe_8c56_87a6b0ca48e1);
impl core::ops::Deref for IESFileExpiryDateEvent {
type Target = super::IESEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IESFileExpiryDateEvent, windows_core::IUnknown, super::IESEvent);
impl IESFileExpiryDateEvent {
pub unsafe fn GetTunerId(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTunerId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetExpiryDate(&self) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExpiryDate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetFinalExpiryDate(&self) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFinalExpiryDate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetMaxRenewalCount(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetMaxRenewalCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn IsEntitlementTokenPresent(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsEntitlementTokenPresent)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn DoesExpireAfterFirstUse(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DoesExpireAfterFirstUse)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IESFileExpiryDateEvent_Vtbl {
pub base__: super::IESEvent_Vtbl,
pub GetTunerId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub GetExpiryDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetFinalExpiryDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetMaxRenewalCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub IsEntitlementTokenPresent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub DoesExpireAfterFirstUse: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IESFileExpiryDateEvent_Impl: super::IESEvent_Impl {
fn GetTunerId(&self) -> windows_core::Result<windows_core::GUID>;
fn GetExpiryDate(&self) -> windows_core::Result<u64>;
fn GetFinalExpiryDate(&self) -> windows_core::Result<u64>;
fn GetMaxRenewalCount(&self) -> windows_core::Result<u32>;
fn IsEntitlementTokenPresent(&self) -> windows_core::Result<windows_core::BOOL>;
fn DoesExpireAfterFirstUse(&self) -> windows_core::Result<windows_core::BOOL>;
}
#[cfg(feature = "Win32_System_Com")]
impl IESFileExpiryDateEvent_Vtbl {
pub const fn new<Identity: IESFileExpiryDateEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTunerId<Identity: IESFileExpiryDateEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pguidtunerid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESFileExpiryDateEvent_Impl::GetTunerId(this) {
Ok(ok__) => {
pguidtunerid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetExpiryDate<Identity: IESFileExpiryDateEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pqwexpirydate: *mut u64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESFileExpiryDateEvent_Impl::GetExpiryDate(this) {
Ok(ok__) => {
pqwexpirydate.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFinalExpiryDate<Identity: IESFileExpiryDateEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pqwexpirydate: *mut u64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESFileExpiryDateEvent_Impl::GetFinalExpiryDate(this) {
Ok(ok__) => {
pqwexpirydate.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetMaxRenewalCount<Identity: IESFileExpiryDateEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwmaxrenewalcount: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESFileExpiryDateEvent_Impl::GetMaxRenewalCount(this) {
Ok(ok__) => {
dwmaxrenewalcount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn IsEntitlementTokenPresent<Identity: IESFileExpiryDateEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfenttokenpresent: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESFileExpiryDateEvent_Impl::IsEntitlementTokenPresent(this) {
Ok(ok__) => {
pfenttokenpresent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DoesExpireAfterFirstUse<Identity: IESFileExpiryDateEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfexpireafterfirstuse: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESFileExpiryDateEvent_Impl::DoesExpireAfterFirstUse(this) {
Ok(ok__) => {
pfexpireafterfirstuse.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::IESEvent_Vtbl::new::<Identity, OFFSET>(),
GetTunerId: GetTunerId::<Identity, OFFSET>,
GetExpiryDate: GetExpiryDate::<Identity, OFFSET>,
GetFinalExpiryDate: GetFinalExpiryDate::<Identity, OFFSET>,
GetMaxRenewalCount: GetMaxRenewalCount::<Identity, OFFSET>,
IsEntitlementTokenPresent: IsEntitlementTokenPresent::<Identity, OFFSET>,
DoesExpireAfterFirstUse: DoesExpireAfterFirstUse::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IESFileExpiryDateEvent as windows_core::Interface>::IID || iid == &<super::IESEvent as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IESFileExpiryDateEvent {}
windows_core::imp::define_interface!(IESIsdbCasResponseEvent, IESIsdbCasResponseEvent_Vtbl, 0x2017cb03_dc0f_4c24_83ca_36307b2cd19f);
impl core::ops::Deref for IESIsdbCasResponseEvent {
type Target = super::IESEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IESIsdbCasResponseEvent, windows_core::IUnknown, super::IESEvent);
impl IESIsdbCasResponseEvent {
pub unsafe fn GetRequestId(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRequestId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetStatus(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStatus)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDataLength(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDataLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetResponseData(&self) -> windows_core::Result<*mut super::super::super::System::Com::SAFEARRAY> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetResponseData)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IESIsdbCasResponseEvent_Vtbl {
pub base__: super::IESEvent_Vtbl,
pub GetRequestId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDataLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub GetResponseData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut super::super::super::System::Com::SAFEARRAY) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetResponseData: usize,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IESIsdbCasResponseEvent_Impl: super::IESEvent_Impl {
fn GetRequestId(&self) -> windows_core::Result<u32>;
fn GetStatus(&self) -> windows_core::Result<u32>;
fn GetDataLength(&self) -> windows_core::Result<u32>;
fn GetResponseData(&self) -> windows_core::Result<*mut super::super::super::System::Com::SAFEARRAY>;
}
#[cfg(feature = "Win32_System_Com")]
impl IESIsdbCasResponseEvent_Vtbl {
pub const fn new<Identity: IESIsdbCasResponseEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetRequestId<Identity: IESIsdbCasResponseEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prequestid: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESIsdbCasResponseEvent_Impl::GetRequestId(this) {
Ok(ok__) => {
prequestid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetStatus<Identity: IESIsdbCasResponseEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pstatus: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESIsdbCasResponseEvent_Impl::GetStatus(this) {
Ok(ok__) => {
pstatus.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDataLength<Identity: IESIsdbCasResponseEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prequestlength: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESIsdbCasResponseEvent_Impl::GetDataLength(this) {
Ok(ok__) => {
prequestlength.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetResponseData<Identity: IESIsdbCasResponseEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbdata: *mut *mut super::super::super::System::Com::SAFEARRAY) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESIsdbCasResponseEvent_Impl::GetResponseData(this) {
Ok(ok__) => {
pbdata.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::IESEvent_Vtbl::new::<Identity, OFFSET>(),
GetRequestId: GetRequestId::<Identity, OFFSET>,
GetStatus: GetStatus::<Identity, OFFSET>,
GetDataLength: GetDataLength::<Identity, OFFSET>,
GetResponseData: GetResponseData::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IESIsdbCasResponseEvent as windows_core::Interface>::IID || iid == &<super::IESEvent as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IESIsdbCasResponseEvent {}
windows_core::imp::define_interface!(IESLicenseRenewalResultEvent, IESLicenseRenewalResultEvent_Vtbl, 0xd5a48ef5_a81b_4df0_acaa_5e35e7ea45d4);
impl core::ops::Deref for IESLicenseRenewalResultEvent {
type Target = super::IESEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IESLicenseRenewalResultEvent, windows_core::IUnknown, super::IESEvent);
impl IESLicenseRenewalResultEvent {
pub unsafe fn GetCallersId(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCallersId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetFileName(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFileName)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn IsRenewalSuccessful(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsRenewalSuccessful)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn IsCheckEntitlementCallRequired(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsCheckEntitlementCallRequired)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDescrambledStatus(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDescrambledStatus)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRenewalResultCode(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRenewalResultCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCASFailureCode(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCASFailureCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRenewalHResult(&self) -> windows_core::Result<windows_core::HRESULT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRenewalHResult)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetEntitlementTokenLength(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEntitlementTokenLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetEntitlementToken(&self) -> windows_core::Result<*mut super::super::super::System::Com::SAFEARRAY> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEntitlementToken)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetExpiryDate(&self) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExpiryDate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IESLicenseRenewalResultEvent_Vtbl {
pub base__: super::IESEvent_Vtbl,
pub GetCallersId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetFileName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub IsRenewalSuccessful: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub IsCheckEntitlementCallRequired: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetDescrambledStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRenewalResultCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCASFailureCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRenewalHResult: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::HRESULT) -> windows_core::HRESULT,
pub GetEntitlementTokenLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub GetEntitlementToken: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut super::super::super::System::Com::SAFEARRAY) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetEntitlementToken: usize,
pub GetExpiryDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IESLicenseRenewalResultEvent_Impl: super::IESEvent_Impl {
fn GetCallersId(&self) -> windows_core::Result<u32>;
fn GetFileName(&self) -> windows_core::Result<windows_core::BSTR>;
fn IsRenewalSuccessful(&self) -> windows_core::Result<windows_core::BOOL>;
fn IsCheckEntitlementCallRequired(&self) -> windows_core::Result<windows_core::BOOL>;
fn GetDescrambledStatus(&self) -> windows_core::Result<u32>;
fn GetRenewalResultCode(&self) -> windows_core::Result<u32>;
fn GetCASFailureCode(&self) -> windows_core::Result<u32>;
fn GetRenewalHResult(&self) -> windows_core::Result<windows_core::HRESULT>;
fn GetEntitlementTokenLength(&self) -> windows_core::Result<u32>;
fn GetEntitlementToken(&self) -> windows_core::Result<*mut super::super::super::System::Com::SAFEARRAY>;
fn GetExpiryDate(&self) -> windows_core::Result<u64>;
}
#[cfg(feature = "Win32_System_Com")]
impl IESLicenseRenewalResultEvent_Vtbl {
pub const fn new<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetCallersId<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwcallersid: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::GetCallersId(this) {
Ok(ok__) => {
pdwcallersid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFileName<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbstrfilename: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::GetFileName(this) {
Ok(ok__) => {
pbstrfilename.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn IsRenewalSuccessful<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfrenewalsuccessful: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::IsRenewalSuccessful(this) {
Ok(ok__) => {
pfrenewalsuccessful.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn IsCheckEntitlementCallRequired<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfcheckenttokencallneeded: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::IsCheckEntitlementCallRequired(this) {
Ok(ok__) => {
pfcheckenttokencallneeded.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDescrambledStatus<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdescrambledstatus: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::GetDescrambledStatus(this) {
Ok(ok__) => {
pdescrambledstatus.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRenewalResultCode<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwrenewalresultcode: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::GetRenewalResultCode(this) {
Ok(ok__) => {
pdwrenewalresultcode.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCASFailureCode<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwcasfailurecode: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::GetCASFailureCode(this) {
Ok(ok__) => {
pdwcasfailurecode.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRenewalHResult<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, phr: *mut windows_core::HRESULT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::GetRenewalHResult(this) {
Ok(ok__) => {
phr.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEntitlementTokenLength<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwlength: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::GetEntitlementTokenLength(this) {
Ok(ok__) => {
pdwlength.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEntitlementToken<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbdata: *mut *mut super::super::super::System::Com::SAFEARRAY) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::GetEntitlementToken(this) {
Ok(ok__) => {
pbdata.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetExpiryDate<Identity: IESLicenseRenewalResultEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pqwexpirydate: *mut u64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESLicenseRenewalResultEvent_Impl::GetExpiryDate(this) {
Ok(ok__) => {
pqwexpirydate.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::IESEvent_Vtbl::new::<Identity, OFFSET>(),
GetCallersId: GetCallersId::<Identity, OFFSET>,
GetFileName: GetFileName::<Identity, OFFSET>,
IsRenewalSuccessful: IsRenewalSuccessful::<Identity, OFFSET>,
IsCheckEntitlementCallRequired: IsCheckEntitlementCallRequired::<Identity, OFFSET>,
GetDescrambledStatus: GetDescrambledStatus::<Identity, OFFSET>,
GetRenewalResultCode: GetRenewalResultCode::<Identity, OFFSET>,
GetCASFailureCode: GetCASFailureCode::<Identity, OFFSET>,
GetRenewalHResult: GetRenewalHResult::<Identity, OFFSET>,
GetEntitlementTokenLength: GetEntitlementTokenLength::<Identity, OFFSET>,
GetEntitlementToken: GetEntitlementToken::<Identity, OFFSET>,
GetExpiryDate: GetExpiryDate::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IESLicenseRenewalResultEvent as windows_core::Interface>::IID || iid == &<super::IESEvent as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IESLicenseRenewalResultEvent {}
windows_core::imp::define_interface!(IESOpenMmiEvent, IESOpenMmiEvent_Vtbl, 0xba4b6526_1a35_4635_8b56_3ec612746a8c);
impl core::ops::Deref for IESOpenMmiEvent {
type Target = super::IESEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IESOpenMmiEvent, windows_core::IUnknown, super::IESEvent);
impl IESOpenMmiEvent {
pub unsafe fn GetDialogNumber(&self, pdialogrequest: *mut u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDialogNumber)(windows_core::Interface::as_raw(self), pdialogrequest as _, &mut result__).map(|| result__)
}
}
pub unsafe fn GetDialogType(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDialogType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetDialogData(&self) -> windows_core::Result<*mut super::super::super::System::Com::SAFEARRAY> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDialogData)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDialogStringData(&self, pbstrbaseurl: *mut windows_core::BSTR) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDialogStringData)(windows_core::Interface::as_raw(self), core::mem::transmute(pbstrbaseurl), &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IESOpenMmiEvent_Vtbl {
pub base__: super::IESEvent_Vtbl,
pub GetDialogNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetDialogType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub GetDialogData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut super::super::super::System::Com::SAFEARRAY) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetDialogData: usize,
pub GetDialogStringData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IESOpenMmiEvent_Impl: super::IESEvent_Impl {
fn GetDialogNumber(&self, pdialogrequest: *mut u32) -> windows_core::Result<u32>;
fn GetDialogType(&self) -> windows_core::Result<windows_core::GUID>;
fn GetDialogData(&self) -> windows_core::Result<*mut super::super::super::System::Com::SAFEARRAY>;
fn GetDialogStringData(&self, pbstrbaseurl: *mut windows_core::BSTR) -> windows_core::Result<windows_core::BSTR>;
}
#[cfg(feature = "Win32_System_Com")]
impl IESOpenMmiEvent_Vtbl {
pub const fn new<Identity: IESOpenMmiEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetDialogNumber<Identity: IESOpenMmiEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdialogrequest: *mut u32, pdialognumber: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESOpenMmiEvent_Impl::GetDialogNumber(this, core::mem::transmute_copy(&pdialogrequest)) {
Ok(ok__) => {
pdialognumber.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDialogType<Identity: IESOpenMmiEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guiddialogtype: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESOpenMmiEvent_Impl::GetDialogType(this) {
Ok(ok__) => {
guiddialogtype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDialogData<Identity: IESOpenMmiEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbdata: *mut *mut super::super::super::System::Com::SAFEARRAY) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESOpenMmiEvent_Impl::GetDialogData(this) {
Ok(ok__) => {
pbdata.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDialogStringData<Identity: IESOpenMmiEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbstrbaseurl: *mut *mut core::ffi::c_void, pbstrdata: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESOpenMmiEvent_Impl::GetDialogStringData(this, core::mem::transmute_copy(&pbstrbaseurl)) {
Ok(ok__) => {
pbstrdata.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::IESEvent_Vtbl::new::<Identity, OFFSET>(),
GetDialogNumber: GetDialogNumber::<Identity, OFFSET>,
GetDialogType: GetDialogType::<Identity, OFFSET>,
GetDialogData: GetDialogData::<Identity, OFFSET>,
GetDialogStringData: GetDialogStringData::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IESOpenMmiEvent as windows_core::Interface>::IID || iid == &<super::IESEvent as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IESOpenMmiEvent {}
windows_core::imp::define_interface!(IESRequestTunerEvent, IESRequestTunerEvent_Vtbl, 0x54c7a5e8_c3bb_4f51_af14_e0e2c0e34c6d);
impl core::ops::Deref for IESRequestTunerEvent {
type Target = super::IESEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IESRequestTunerEvent, windows_core::IUnknown, super::IESEvent);
impl IESRequestTunerEvent {
pub unsafe fn GetPriority(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPriority)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetReason(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetReason)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetConsequences(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetConsequences)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetEstimatedTime(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEstimatedTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IESRequestTunerEvent_Vtbl {
pub base__: super::IESEvent_Vtbl,
pub GetPriority: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetReason: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetConsequences: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetEstimatedTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IESRequestTunerEvent_Impl: super::IESEvent_Impl {
fn GetPriority(&self) -> windows_core::Result<u8>;
fn GetReason(&self) -> windows_core::Result<u8>;
fn GetConsequences(&self) -> windows_core::Result<u8>;
fn GetEstimatedTime(&self) -> windows_core::Result<u32>;
}
#[cfg(feature = "Win32_System_Com")]
impl IESRequestTunerEvent_Vtbl {
pub const fn new<Identity: IESRequestTunerEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetPriority<Identity: IESRequestTunerEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbypriority: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESRequestTunerEvent_Impl::GetPriority(this) {
Ok(ok__) => {
pbypriority.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetReason<Identity: IESRequestTunerEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbyreason: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESRequestTunerEvent_Impl::GetReason(this) {
Ok(ok__) => {
pbyreason.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetConsequences<Identity: IESRequestTunerEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbyconsequences: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESRequestTunerEvent_Impl::GetConsequences(this) {
Ok(ok__) => {
pbyconsequences.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEstimatedTime<Identity: IESRequestTunerEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwestimatedtime: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESRequestTunerEvent_Impl::GetEstimatedTime(this) {
Ok(ok__) => {
pdwestimatedtime.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::IESEvent_Vtbl::new::<Identity, OFFSET>(),
GetPriority: GetPriority::<Identity, OFFSET>,
GetReason: GetReason::<Identity, OFFSET>,
GetConsequences: GetConsequences::<Identity, OFFSET>,
GetEstimatedTime: GetEstimatedTime::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IESRequestTunerEvent as windows_core::Interface>::IID || iid == &<super::IESEvent as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IESRequestTunerEvent {}
windows_core::imp::define_interface!(IESValueUpdatedEvent, IESValueUpdatedEvent_Vtbl, 0x8a24c46e_bb63_4664_8602_5d9c718c146d);
impl core::ops::Deref for IESValueUpdatedEvent {
type Target = super::IESEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IESValueUpdatedEvent, windows_core::IUnknown, super::IESEvent);
impl IESValueUpdatedEvent {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetValueNames(&self) -> windows_core::Result<*mut super::super::super::System::Com::SAFEARRAY> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetValueNames)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IESValueUpdatedEvent_Vtbl {
pub base__: super::IESEvent_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub GetValueNames: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut super::super::super::System::Com::SAFEARRAY) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetValueNames: usize,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IESValueUpdatedEvent_Impl: super::IESEvent_Impl {
fn GetValueNames(&self) -> windows_core::Result<*mut super::super::super::System::Com::SAFEARRAY>;
}
#[cfg(feature = "Win32_System_Com")]
impl IESValueUpdatedEvent_Vtbl {
pub const fn new<Identity: IESValueUpdatedEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetValueNames<Identity: IESValueUpdatedEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbstrnames: *mut *mut super::super::super::System::Com::SAFEARRAY) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IESValueUpdatedEvent_Impl::GetValueNames(this) {
Ok(ok__) => {
pbstrnames.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: super::IESEvent_Vtbl::new::<Identity, OFFSET>(), GetValueNames: GetValueNames::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IESValueUpdatedEvent as windows_core::Interface>::IID || iid == &<super::IESEvent as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IESValueUpdatedEvent {}
windows_core::imp::define_interface!(IETFilter, IETFilter_Vtbl, 0xc4c4c4b1_0049_4e2b_98fb_9537f6ce516d);
windows_core::imp::interface_hierarchy!(IETFilter, windows_core::IUnknown);
impl IETFilter {
pub unsafe fn EvalRatObjOK(&self) -> windows_core::Result<windows_core::HRESULT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EvalRatObjOK)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCurrRating(&self, pensystem: *mut EnTvRat_System, penrating: *mut EnTvRat_GenericLevel, plbfenattr: *mut i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetCurrRating)(windows_core::Interface::as_raw(self), pensystem as _, penrating as _, plbfenattr as _).ok() }
}
pub unsafe fn GetCurrLicenseExpDate(&self, prottype: *const ProtType) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrLicenseExpDate)(windows_core::Interface::as_raw(self), prottype, &mut result__).map(|| result__)
}
}
pub unsafe fn GetLastErrorCode(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLastErrorCode)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SetRecordingOn(&self, frecstate: bool) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetRecordingOn)(windows_core::Interface::as_raw(self), frecstate.into()).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IETFilter_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub EvalRatObjOK: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::HRESULT) -> windows_core::HRESULT,
pub GetCurrRating: unsafe extern "system" fn(*mut core::ffi::c_void, *mut EnTvRat_System, *mut EnTvRat_GenericLevel, *mut i32) -> windows_core::HRESULT,
pub GetCurrLicenseExpDate: unsafe extern "system" fn(*mut core::ffi::c_void, *const ProtType, *mut i32) -> windows_core::HRESULT,
pub GetLastErrorCode: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetRecordingOn: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::BOOL) -> windows_core::HRESULT,
}
pub trait IETFilter_Impl: windows_core::IUnknownImpl {
fn EvalRatObjOK(&self) -> windows_core::Result<windows_core::HRESULT>;
fn GetCurrRating(&self, pensystem: *mut EnTvRat_System, penrating: *mut EnTvRat_GenericLevel, plbfenattr: *mut i32) -> windows_core::Result<()>;
fn GetCurrLicenseExpDate(&self, prottype: *const ProtType) -> windows_core::Result<i32>;
fn GetLastErrorCode(&self) -> windows_core::Result<()>;
fn SetRecordingOn(&self, frecstate: windows_core::BOOL) -> windows_core::Result<()>;
}
impl IETFilter_Vtbl {
pub const fn new<Identity: IETFilter_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn EvalRatObjOK<Identity: IETFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, phrcocreateretval: *mut windows_core::HRESULT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IETFilter_Impl::EvalRatObjOK(this) {
Ok(ok__) => {
phrcocreateretval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCurrRating<Identity: IETFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pensystem: *mut EnTvRat_System, penrating: *mut EnTvRat_GenericLevel, plbfenattr: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IETFilter_Impl::GetCurrRating(this, core::mem::transmute_copy(&pensystem), core::mem::transmute_copy(&penrating), core::mem::transmute_copy(&plbfenattr)).into()
}
}
unsafe extern "system" fn GetCurrLicenseExpDate<Identity: IETFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prottype: *const ProtType, lpdatetime: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IETFilter_Impl::GetCurrLicenseExpDate(this, core::mem::transmute_copy(&prottype)) {
Ok(ok__) => {
lpdatetime.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLastErrorCode<Identity: IETFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IETFilter_Impl::GetLastErrorCode(this).into()
}
}
unsafe extern "system" fn SetRecordingOn<Identity: IETFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, frecstate: windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IETFilter_Impl::SetRecordingOn(this, core::mem::transmute_copy(&frecstate)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
EvalRatObjOK: EvalRatObjOK::<Identity, OFFSET>,
GetCurrRating: GetCurrRating::<Identity, OFFSET>,
GetCurrLicenseExpDate: GetCurrLicenseExpDate::<Identity, OFFSET>,
GetLastErrorCode: GetLastErrorCode::<Identity, OFFSET>,
SetRecordingOn: SetRecordingOn::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IETFilter as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IETFilter {}
windows_core::imp::define_interface!(IETFilterConfig, IETFilterConfig_Vtbl, 0xc4c4c4d1_0049_4e2b_98fb_9537f6ce516d);
windows_core::imp::interface_hierarchy!(IETFilterConfig, windows_core::IUnknown);
impl IETFilterConfig {
pub unsafe fn InitLicense(&self, licenseid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).InitLicense)(windows_core::Interface::as_raw(self), licenseid).ok() }
}
pub unsafe fn GetSecureChannelObject(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSecureChannelObject)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IETFilterConfig_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub InitLicense: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub GetSecureChannelObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IETFilterConfig_Impl: windows_core::IUnknownImpl {
fn InitLicense(&self, licenseid: i32) -> windows_core::Result<()>;
fn GetSecureChannelObject(&self) -> windows_core::Result<windows_core::IUnknown>;
}
impl IETFilterConfig_Vtbl {
pub const fn new<Identity: IETFilterConfig_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn InitLicense<Identity: IETFilterConfig_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, licenseid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IETFilterConfig_Impl::InitLicense(this, core::mem::transmute_copy(&licenseid)).into()
}
}
unsafe extern "system" fn GetSecureChannelObject<Identity: IETFilterConfig_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunkdrmsecurechannel: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IETFilterConfig_Impl::GetSecureChannelObject(this) {
Ok(ok__) => {
ppunkdrmsecurechannel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
InitLicense: InitLicense::<Identity, OFFSET>,
GetSecureChannelObject: GetSecureChannelObject::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IETFilterConfig as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IETFilterConfig {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IETFilterEvents, IETFilterEvents_Vtbl, 0xc4c4c4c1_0049_4e2b_98fb_9537f6ce516d);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IETFilterEvents {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IETFilterEvents, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IETFilterEvents_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IETFilterEvents_Impl: super::super::super::System::Com::IDispatch_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IETFilterEvents_Vtbl {
pub const fn new<Identity: IETFilterEvents_Impl, const OFFSET: isize>() -> Self {
Self { base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IETFilterEvents as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IETFilterEvents {}
windows_core::imp::define_interface!(IEnumComponentTypes, IEnumComponentTypes_Vtbl, 0x8a674b4a_1f63_11d3_b64c_00c04f79498e);
windows_core::imp::interface_hierarchy!(IEnumComponentTypes, windows_core::IUnknown);
impl IEnumComponentTypes {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Next(&self, rgelt: &mut [Option<IComponentType>], pceltfetched: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Next)(windows_core::Interface::as_raw(self), rgelt.len().try_into().unwrap(), core::mem::transmute(rgelt.as_ptr()), pceltfetched as _).ok() }
}
pub unsafe fn Skip(&self, celt: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Skip)(windows_core::Interface::as_raw(self), celt).ok() }
}
pub unsafe fn Reset(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IEnumComponentTypes> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumComponentTypes_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub Next: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Next: usize,
pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IEnumComponentTypes_Impl: windows_core::IUnknownImpl {
fn Next(&self, celt: u32, rgelt: *mut Option<IComponentType>, pceltfetched: *mut u32) -> windows_core::Result<()>;
fn Skip(&self, celt: u32) -> windows_core::Result<()>;
fn Reset(&self) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IEnumComponentTypes>;
}
#[cfg(feature = "Win32_System_Com")]
impl IEnumComponentTypes_Vtbl {
pub const fn new<Identity: IEnumComponentTypes_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Next<Identity: IEnumComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32, rgelt: *mut *mut core::ffi::c_void, pceltfetched: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumComponentTypes_Impl::Next(this, core::mem::transmute_copy(&celt), core::mem::transmute_copy(&rgelt), core::mem::transmute_copy(&pceltfetched)).into()
}
}
unsafe extern "system" fn Skip<Identity: IEnumComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumComponentTypes_Impl::Skip(this, core::mem::transmute_copy(&celt)).into()
}
}
unsafe extern "system" fn Reset<Identity: IEnumComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumComponentTypes_Impl::Reset(this).into()
}
}
unsafe extern "system" fn Clone<Identity: IEnumComponentTypes_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IEnumComponentTypes_Impl::Clone(this) {
Ok(ok__) => {
ppenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, OFFSET>,
Skip: Skip::<Identity, OFFSET>,
Reset: Reset::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IEnumComponentTypes as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IEnumComponentTypes {}
windows_core::imp::define_interface!(IEnumComponents, IEnumComponents_Vtbl, 0x2a6e2939_2595_11d3_b64c_00c04f79498e);
windows_core::imp::interface_hierarchy!(IEnumComponents, windows_core::IUnknown);
impl IEnumComponents {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Next(&self, rgelt: &mut [Option<IComponent>], pceltfetched: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Next)(windows_core::Interface::as_raw(self), rgelt.len().try_into().unwrap(), core::mem::transmute(rgelt.as_ptr()), pceltfetched as _).ok() }
}
pub unsafe fn Skip(&self, celt: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Skip)(windows_core::Interface::as_raw(self), celt).ok() }
}
pub unsafe fn Reset(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IEnumComponents> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumComponents_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub Next: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Next: usize,
pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IEnumComponents_Impl: windows_core::IUnknownImpl {
fn Next(&self, celt: u32, rgelt: *mut Option<IComponent>, pceltfetched: *mut u32) -> windows_core::Result<()>;
fn Skip(&self, celt: u32) -> windows_core::Result<()>;
fn Reset(&self) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IEnumComponents>;
}
#[cfg(feature = "Win32_System_Com")]
impl IEnumComponents_Vtbl {
pub const fn new<Identity: IEnumComponents_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Next<Identity: IEnumComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32, rgelt: *mut *mut core::ffi::c_void, pceltfetched: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumComponents_Impl::Next(this, core::mem::transmute_copy(&celt), core::mem::transmute_copy(&rgelt), core::mem::transmute_copy(&pceltfetched)).into()
}
}
unsafe extern "system" fn Skip<Identity: IEnumComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumComponents_Impl::Skip(this, core::mem::transmute_copy(&celt)).into()
}
}
unsafe extern "system" fn Reset<Identity: IEnumComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumComponents_Impl::Reset(this).into()
}
}
unsafe extern "system" fn Clone<Identity: IEnumComponents_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IEnumComponents_Impl::Clone(this) {
Ok(ok__) => {
ppenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, OFFSET>,
Skip: Skip::<Identity, OFFSET>,
Reset: Reset::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IEnumComponents as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IEnumComponents {}
windows_core::imp::define_interface!(IEnumGuideDataProperties, IEnumGuideDataProperties_Vtbl, 0xae44423b_4571_475c_ad2c_f40a771d80ef);
windows_core::imp::interface_hierarchy!(IEnumGuideDataProperties, windows_core::IUnknown);
impl IEnumGuideDataProperties {
pub unsafe fn Next(&self, celt: u32, ppprop: *mut Option<IGuideDataProperty>, pcelt: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Next)(windows_core::Interface::as_raw(self), celt, core::mem::transmute(ppprop), pcelt as _).ok() }
}
pub unsafe fn Skip(&self, celt: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Skip)(windows_core::Interface::as_raw(self), celt).ok() }
}
pub unsafe fn Reset(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IEnumGuideDataProperties> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumGuideDataProperties_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Next: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IEnumGuideDataProperties_Impl: windows_core::IUnknownImpl {
fn Next(&self, celt: u32, ppprop: windows_core::OutRef<IGuideDataProperty>, pcelt: *mut u32) -> windows_core::Result<()>;
fn Skip(&self, celt: u32) -> windows_core::Result<()>;
fn Reset(&self) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IEnumGuideDataProperties>;
}
impl IEnumGuideDataProperties_Vtbl {
pub const fn new<Identity: IEnumGuideDataProperties_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Next<Identity: IEnumGuideDataProperties_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32, ppprop: *mut *mut core::ffi::c_void, pcelt: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumGuideDataProperties_Impl::Next(this, core::mem::transmute_copy(&celt), core::mem::transmute_copy(&ppprop), core::mem::transmute_copy(&pcelt)).into()
}
}
unsafe extern "system" fn Skip<Identity: IEnumGuideDataProperties_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumGuideDataProperties_Impl::Skip(this, core::mem::transmute_copy(&celt)).into()
}
}
unsafe extern "system" fn Reset<Identity: IEnumGuideDataProperties_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumGuideDataProperties_Impl::Reset(this).into()
}
}
unsafe extern "system" fn Clone<Identity: IEnumGuideDataProperties_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IEnumGuideDataProperties_Impl::Clone(this) {
Ok(ok__) => {
ppenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, OFFSET>,
Skip: Skip::<Identity, OFFSET>,
Reset: Reset::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IEnumGuideDataProperties as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IEnumGuideDataProperties {}
windows_core::imp::define_interface!(IEnumMSVidGraphSegment, IEnumMSVidGraphSegment_Vtbl, 0x3dd2903e_e0aa_11d2_b63a_00c04f79498e);
windows_core::imp::interface_hierarchy!(IEnumMSVidGraphSegment, windows_core::IUnknown);
impl IEnumMSVidGraphSegment {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Next(&self, celt: u32, rgelt: *mut Option<IMSVidGraphSegment>, pceltfetched: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Next)(windows_core::Interface::as_raw(self), celt, core::mem::transmute(rgelt), pceltfetched as _).ok() }
}
pub unsafe fn Skip(&self, celt: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Skip)(windows_core::Interface::as_raw(self), celt).ok() }
}
pub unsafe fn Reset(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IEnumMSVidGraphSegment> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumMSVidGraphSegment_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub Next: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Next: usize,
pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IEnumMSVidGraphSegment_Impl: windows_core::IUnknownImpl {
fn Next(&self, celt: u32, rgelt: windows_core::OutRef<IMSVidGraphSegment>, pceltfetched: *mut u32) -> windows_core::Result<()>;
fn Skip(&self, celt: u32) -> windows_core::Result<()>;
fn Reset(&self) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IEnumMSVidGraphSegment>;
}
#[cfg(feature = "Win32_System_Com")]
impl IEnumMSVidGraphSegment_Vtbl {
pub const fn new<Identity: IEnumMSVidGraphSegment_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Next<Identity: IEnumMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32, rgelt: *mut *mut core::ffi::c_void, pceltfetched: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumMSVidGraphSegment_Impl::Next(this, core::mem::transmute_copy(&celt), core::mem::transmute_copy(&rgelt), core::mem::transmute_copy(&pceltfetched)).into()
}
}
unsafe extern "system" fn Skip<Identity: IEnumMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumMSVidGraphSegment_Impl::Skip(this, core::mem::transmute_copy(&celt)).into()
}
}
unsafe extern "system" fn Reset<Identity: IEnumMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumMSVidGraphSegment_Impl::Reset(this).into()
}
}
unsafe extern "system" fn Clone<Identity: IEnumMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IEnumMSVidGraphSegment_Impl::Clone(this) {
Ok(ok__) => {
ppenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, OFFSET>,
Skip: Skip::<Identity, OFFSET>,
Reset: Reset::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IEnumMSVidGraphSegment as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IEnumMSVidGraphSegment {}
windows_core::imp::define_interface!(IEnumStreamBufferRecordingAttrib, IEnumStreamBufferRecordingAttrib_Vtbl, 0xc18a9162_1e82_4142_8c73_5690fa62fe33);
windows_core::imp::interface_hierarchy!(IEnumStreamBufferRecordingAttrib, windows_core::IUnknown);
impl IEnumStreamBufferRecordingAttrib {
pub unsafe fn Next(&self, pstreambufferattribute: &mut [STREAMBUFFER_ATTRIBUTE], pcreceived: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Next)(windows_core::Interface::as_raw(self), pstreambufferattribute.len().try_into().unwrap(), core::mem::transmute(pstreambufferattribute.as_ptr()), pcreceived as _).ok() }
}
pub unsafe fn Skip(&self, crecords: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Skip)(windows_core::Interface::as_raw(self), crecords).ok() }
}
pub unsafe fn Reset(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IEnumStreamBufferRecordingAttrib> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumStreamBufferRecordingAttrib_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Next: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut STREAMBUFFER_ATTRIBUTE, *mut u32) -> windows_core::HRESULT,
pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IEnumStreamBufferRecordingAttrib_Impl: windows_core::IUnknownImpl {
fn Next(&self, crequest: u32, pstreambufferattribute: *mut STREAMBUFFER_ATTRIBUTE, pcreceived: *mut u32) -> windows_core::Result<()>;
fn Skip(&self, crecords: u32) -> windows_core::Result<()>;
fn Reset(&self) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IEnumStreamBufferRecordingAttrib>;
}
impl IEnumStreamBufferRecordingAttrib_Vtbl {
pub const fn new<Identity: IEnumStreamBufferRecordingAttrib_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Next<Identity: IEnumStreamBufferRecordingAttrib_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, crequest: u32, pstreambufferattribute: *mut STREAMBUFFER_ATTRIBUTE, pcreceived: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumStreamBufferRecordingAttrib_Impl::Next(this, core::mem::transmute_copy(&crequest), core::mem::transmute_copy(&pstreambufferattribute), core::mem::transmute_copy(&pcreceived)).into()
}
}
unsafe extern "system" fn Skip<Identity: IEnumStreamBufferRecordingAttrib_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, crecords: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumStreamBufferRecordingAttrib_Impl::Skip(this, core::mem::transmute_copy(&crecords)).into()
}
}
unsafe extern "system" fn Reset<Identity: IEnumStreamBufferRecordingAttrib_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumStreamBufferRecordingAttrib_Impl::Reset(this).into()
}
}
unsafe extern "system" fn Clone<Identity: IEnumStreamBufferRecordingAttrib_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppienumstreambufferattrib: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IEnumStreamBufferRecordingAttrib_Impl::Clone(this) {
Ok(ok__) => {
ppienumstreambufferattrib.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, OFFSET>,
Skip: Skip::<Identity, OFFSET>,
Reset: Reset::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IEnumStreamBufferRecordingAttrib as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IEnumStreamBufferRecordingAttrib {}
windows_core::imp::define_interface!(IEnumTuneRequests, IEnumTuneRequests_Vtbl, 0x1993299c_ced6_4788_87a3_420067dce0c7);
windows_core::imp::interface_hierarchy!(IEnumTuneRequests, windows_core::IUnknown);
impl IEnumTuneRequests {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Next(&self, celt: u32, ppprop: *mut Option<ITuneRequest>, pcelt: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Next)(windows_core::Interface::as_raw(self), celt, core::mem::transmute(ppprop), pcelt as _).ok() }
}
pub unsafe fn Skip(&self, celt: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Skip)(windows_core::Interface::as_raw(self), celt).ok() }
}
pub unsafe fn Reset(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IEnumTuneRequests> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumTuneRequests_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub Next: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Next: usize,
pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IEnumTuneRequests_Impl: windows_core::IUnknownImpl {
fn Next(&self, celt: u32, ppprop: windows_core::OutRef<ITuneRequest>, pcelt: *mut u32) -> windows_core::Result<()>;
fn Skip(&self, celt: u32) -> windows_core::Result<()>;
fn Reset(&self) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IEnumTuneRequests>;
}
#[cfg(feature = "Win32_System_Com")]
impl IEnumTuneRequests_Vtbl {
pub const fn new<Identity: IEnumTuneRequests_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Next<Identity: IEnumTuneRequests_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32, ppprop: *mut *mut core::ffi::c_void, pcelt: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumTuneRequests_Impl::Next(this, core::mem::transmute_copy(&celt), core::mem::transmute_copy(&ppprop), core::mem::transmute_copy(&pcelt)).into()
}
}
unsafe extern "system" fn Skip<Identity: IEnumTuneRequests_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumTuneRequests_Impl::Skip(this, core::mem::transmute_copy(&celt)).into()
}
}
unsafe extern "system" fn Reset<Identity: IEnumTuneRequests_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumTuneRequests_Impl::Reset(this).into()
}
}
unsafe extern "system" fn Clone<Identity: IEnumTuneRequests_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IEnumTuneRequests_Impl::Clone(this) {
Ok(ok__) => {
ppenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, OFFSET>,
Skip: Skip::<Identity, OFFSET>,
Reset: Reset::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IEnumTuneRequests as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IEnumTuneRequests {}
windows_core::imp::define_interface!(IEnumTuningSpaces, IEnumTuningSpaces_Vtbl, 0x8b8eb248_fc2b_11d2_9d8c_00c04f72d980);
windows_core::imp::interface_hierarchy!(IEnumTuningSpaces, windows_core::IUnknown);
impl IEnumTuningSpaces {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Next(&self, rgelt: &mut [Option<ITuningSpace>], pceltfetched: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Next)(windows_core::Interface::as_raw(self), rgelt.len().try_into().unwrap(), core::mem::transmute(rgelt.as_ptr()), pceltfetched as _).ok() }
}
pub unsafe fn Skip(&self, celt: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Skip)(windows_core::Interface::as_raw(self), celt).ok() }
}
pub unsafe fn Reset(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<IEnumTuningSpaces> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumTuningSpaces_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub Next: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Next: usize,
pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IEnumTuningSpaces_Impl: windows_core::IUnknownImpl {
fn Next(&self, celt: u32, rgelt: *mut Option<ITuningSpace>, pceltfetched: *mut u32) -> windows_core::Result<()>;
fn Skip(&self, celt: u32) -> windows_core::Result<()>;
fn Reset(&self) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<IEnumTuningSpaces>;
}
#[cfg(feature = "Win32_System_Com")]
impl IEnumTuningSpaces_Vtbl {
pub const fn new<Identity: IEnumTuningSpaces_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Next<Identity: IEnumTuningSpaces_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32, rgelt: *mut *mut core::ffi::c_void, pceltfetched: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumTuningSpaces_Impl::Next(this, core::mem::transmute_copy(&celt), core::mem::transmute_copy(&rgelt), core::mem::transmute_copy(&pceltfetched)).into()
}
}
unsafe extern "system" fn Skip<Identity: IEnumTuningSpaces_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, celt: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumTuningSpaces_Impl::Skip(this, core::mem::transmute_copy(&celt)).into()
}
}
unsafe extern "system" fn Reset<Identity: IEnumTuningSpaces_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEnumTuningSpaces_Impl::Reset(this).into()
}
}
unsafe extern "system" fn Clone<Identity: IEnumTuningSpaces_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IEnumTuningSpaces_Impl::Clone(this) {
Ok(ok__) => {
ppenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, OFFSET>,
Skip: Skip::<Identity, OFFSET>,
Reset: Reset::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IEnumTuningSpaces as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IEnumTuningSpaces {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IEvalRat, IEvalRat_Vtbl, 0xc5c5c5b1_3abc_11d6_b25b_00c04fa0c026);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IEvalRat {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IEvalRat, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IEvalRat {
pub unsafe fn get_BlockedRatingAttributes(&self, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_BlockedRatingAttributes)(windows_core::Interface::as_raw(self), ensystem, enlevel, &mut result__).map(|| result__)
}
}
pub unsafe fn put_BlockedRatingAttributes(&self, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel, lbfattrs: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).put_BlockedRatingAttributes)(windows_core::Interface::as_raw(self), ensystem, enlevel, lbfattrs).ok() }
}
pub unsafe fn BlockUnRated(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).BlockUnRated)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetBlockUnRated(&self, fblockunratedshows: bool) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBlockUnRated)(windows_core::Interface::as_raw(self), fblockunratedshows.into()).ok() }
}
pub unsafe fn MostRestrictiveRating(&self, ensystem1: EnTvRat_System, enenlevel1: EnTvRat_GenericLevel, lbfenattr1: i32, ensystem2: EnTvRat_System, enenlevel2: EnTvRat_GenericLevel, lbfenattr2: i32, pensystem: *mut EnTvRat_System, penenlevel: *mut EnTvRat_GenericLevel, plbfenattr: *mut i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).MostRestrictiveRating)(windows_core::Interface::as_raw(self), ensystem1, enenlevel1, lbfenattr1, ensystem2, enenlevel2, lbfenattr2, pensystem as _, penenlevel as _, plbfenattr as _).ok() }
}
pub unsafe fn TestRating(&self, enshowsystem: EnTvRat_System, enshowlevel: EnTvRat_GenericLevel, lbfenshowattributes: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).TestRating)(windows_core::Interface::as_raw(self), enshowsystem, enshowlevel, lbfenshowattributes).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IEvalRat_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub get_BlockedRatingAttributes: unsafe extern "system" fn(*mut core::ffi::c_void, EnTvRat_System, EnTvRat_GenericLevel, *mut i32) -> windows_core::HRESULT,
pub put_BlockedRatingAttributes: unsafe extern "system" fn(*mut core::ffi::c_void, EnTvRat_System, EnTvRat_GenericLevel, i32) -> windows_core::HRESULT,
pub BlockUnRated: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub SetBlockUnRated: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::BOOL) -> windows_core::HRESULT,
pub MostRestrictiveRating: unsafe extern "system" fn(*mut core::ffi::c_void, EnTvRat_System, EnTvRat_GenericLevel, i32, EnTvRat_System, EnTvRat_GenericLevel, i32, *mut EnTvRat_System, *mut EnTvRat_GenericLevel, *mut i32) -> windows_core::HRESULT,
pub TestRating: unsafe extern "system" fn(*mut core::ffi::c_void, EnTvRat_System, EnTvRat_GenericLevel, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IEvalRat_Impl: super::super::super::System::Com::IDispatch_Impl {
fn get_BlockedRatingAttributes(&self, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel) -> windows_core::Result<i32>;
fn put_BlockedRatingAttributes(&self, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel, lbfattrs: i32) -> windows_core::Result<()>;
fn BlockUnRated(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetBlockUnRated(&self, fblockunratedshows: windows_core::BOOL) -> windows_core::Result<()>;
fn MostRestrictiveRating(&self, ensystem1: EnTvRat_System, enenlevel1: EnTvRat_GenericLevel, lbfenattr1: i32, ensystem2: EnTvRat_System, enenlevel2: EnTvRat_GenericLevel, lbfenattr2: i32, pensystem: *mut EnTvRat_System, penenlevel: *mut EnTvRat_GenericLevel, plbfenattr: *mut i32) -> windows_core::Result<()>;
fn TestRating(&self, enshowsystem: EnTvRat_System, enshowlevel: EnTvRat_GenericLevel, lbfenshowattributes: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IEvalRat_Vtbl {
pub const fn new<Identity: IEvalRat_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn get_BlockedRatingAttributes<Identity: IEvalRat_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel, plbfattrs: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IEvalRat_Impl::get_BlockedRatingAttributes(this, core::mem::transmute_copy(&ensystem), core::mem::transmute_copy(&enlevel)) {
Ok(ok__) => {
plbfattrs.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn put_BlockedRatingAttributes<Identity: IEvalRat_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ensystem: EnTvRat_System, enlevel: EnTvRat_GenericLevel, lbfattrs: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEvalRat_Impl::put_BlockedRatingAttributes(this, core::mem::transmute_copy(&ensystem), core::mem::transmute_copy(&enlevel), core::mem::transmute_copy(&lbfattrs)).into()
}
}
unsafe extern "system" fn BlockUnRated<Identity: IEvalRat_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfblockunratedshows: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IEvalRat_Impl::BlockUnRated(this) {
Ok(ok__) => {
pfblockunratedshows.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBlockUnRated<Identity: IEvalRat_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fblockunratedshows: windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEvalRat_Impl::SetBlockUnRated(this, core::mem::transmute_copy(&fblockunratedshows)).into()
}
}
unsafe extern "system" fn MostRestrictiveRating<Identity: IEvalRat_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ensystem1: EnTvRat_System, enenlevel1: EnTvRat_GenericLevel, lbfenattr1: i32, ensystem2: EnTvRat_System, enenlevel2: EnTvRat_GenericLevel, lbfenattr2: i32, pensystem: *mut EnTvRat_System, penenlevel: *mut EnTvRat_GenericLevel, plbfenattr: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEvalRat_Impl::MostRestrictiveRating(this, core::mem::transmute_copy(&ensystem1), core::mem::transmute_copy(&enenlevel1), core::mem::transmute_copy(&lbfenattr1), core::mem::transmute_copy(&ensystem2), core::mem::transmute_copy(&enenlevel2), core::mem::transmute_copy(&lbfenattr2), core::mem::transmute_copy(&pensystem), core::mem::transmute_copy(&penenlevel), core::mem::transmute_copy(&plbfenattr)).into()
}
}
unsafe extern "system" fn TestRating<Identity: IEvalRat_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, enshowsystem: EnTvRat_System, enshowlevel: EnTvRat_GenericLevel, lbfenshowattributes: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IEvalRat_Impl::TestRating(this, core::mem::transmute_copy(&enshowsystem), core::mem::transmute_copy(&enshowlevel), core::mem::transmute_copy(&lbfenshowattributes)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
get_BlockedRatingAttributes: get_BlockedRatingAttributes::<Identity, OFFSET>,
put_BlockedRatingAttributes: put_BlockedRatingAttributes::<Identity, OFFSET>,
BlockUnRated: BlockUnRated::<Identity, OFFSET>,
SetBlockUnRated: SetBlockUnRated::<Identity, OFFSET>,
MostRestrictiveRating: MostRestrictiveRating::<Identity, OFFSET>,
TestRating: TestRating::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IEvalRat as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IEvalRat {}
windows_core::imp::define_interface!(IGenericDescriptor, IGenericDescriptor_Vtbl, 0x6a5918f8_a77a_4f61_aed0_5702bdcda3e6);
windows_core::imp::interface_hierarchy!(IGenericDescriptor, windows_core::IUnknown);
impl IGenericDescriptor {
pub unsafe fn Initialize(&self, pbdesc: *const u8, bcount: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), pbdesc, bcount).ok() }
}
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetBody(&self) -> windows_core::Result<*mut u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBody)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IGenericDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *const u8, i32) -> windows_core::HRESULT,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetBody: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8) -> windows_core::HRESULT,
}
pub trait IGenericDescriptor_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, pbdesc: *const u8, bcount: i32) -> windows_core::Result<()>;
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetBody(&self) -> windows_core::Result<*mut u8>;
}
impl IGenericDescriptor_Vtbl {
pub const fn new<Identity: IGenericDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IGenericDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbdesc: *const u8, bcount: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGenericDescriptor_Impl::Initialize(this, core::mem::transmute_copy(&pbdesc), core::mem::transmute_copy(&bcount)).into()
}
}
unsafe extern "system" fn GetTag<Identity: IGenericDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGenericDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IGenericDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGenericDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetBody<Identity: IGenericDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppbval: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGenericDescriptor_Impl::GetBody(this) {
Ok(ok__) => {
ppbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetBody: GetBody::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IGenericDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IGenericDescriptor {}
windows_core::imp::define_interface!(IGenericDescriptor2, IGenericDescriptor2_Vtbl, 0xbf02fb7e_9792_4e10_a68d_033a2cc246a5);
impl core::ops::Deref for IGenericDescriptor2 {
type Target = IGenericDescriptor;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IGenericDescriptor2, windows_core::IUnknown, IGenericDescriptor);
impl IGenericDescriptor2 {
pub unsafe fn Initialize(&self, pbdesc: *const u8, wcount: u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), pbdesc, wcount).ok() }
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IGenericDescriptor2_Vtbl {
pub base__: IGenericDescriptor_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *const u8, u16) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
}
pub trait IGenericDescriptor2_Impl: IGenericDescriptor_Impl {
fn Initialize(&self, pbdesc: *const u8, wcount: u16) -> windows_core::Result<()>;
fn GetLength(&self) -> windows_core::Result<u16>;
}
impl IGenericDescriptor2_Vtbl {
pub const fn new<Identity: IGenericDescriptor2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IGenericDescriptor2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbdesc: *const u8, wcount: u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGenericDescriptor2_Impl::Initialize(this, core::mem::transmute_copy(&pbdesc), core::mem::transmute_copy(&wcount)).into()
}
}
unsafe extern "system" fn GetLength<Identity: IGenericDescriptor2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGenericDescriptor2_Impl::GetLength(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: IGenericDescriptor_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, OFFSET>, GetLength: GetLength::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IGenericDescriptor2 as windows_core::Interface>::IID || iid == &<IGenericDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IGenericDescriptor2 {}
windows_core::imp::define_interface!(IGpnvsCommonBase, IGpnvsCommonBase_Vtbl, 0x907e0b5c_e42d_4f04_91f0_26f401f36907);
windows_core::imp::interface_hierarchy!(IGpnvsCommonBase, windows_core::IUnknown);
impl IGpnvsCommonBase {
pub unsafe fn GetValueUpdateName(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetValueUpdateName)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IGpnvsCommonBase_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetValueUpdateName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IGpnvsCommonBase_Impl: windows_core::IUnknownImpl {
fn GetValueUpdateName(&self) -> windows_core::Result<windows_core::BSTR>;
}
impl IGpnvsCommonBase_Vtbl {
pub const fn new<Identity: IGpnvsCommonBase_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetValueUpdateName<Identity: IGpnvsCommonBase_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGpnvsCommonBase_Impl::GetValueUpdateName(this) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetValueUpdateName: GetValueUpdateName::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IGpnvsCommonBase as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IGpnvsCommonBase {}
windows_core::imp::define_interface!(IGuideData, IGuideData_Vtbl, 0x61571138_5b01_43cd_aeaf_60b784a0bf93);
windows_core::imp::interface_hierarchy!(IGuideData, windows_core::IUnknown);
impl IGuideData {
pub unsafe fn GetServices(&self) -> windows_core::Result<IEnumTuneRequests> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServices)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetServiceProperties<P0>(&self, ptunerequest: P0) -> windows_core::Result<IEnumGuideDataProperties>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceProperties)(windows_core::Interface::as_raw(self), ptunerequest.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn GetGuideProgramIDs(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetGuideProgramIDs)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn GetProgramProperties(&self, varprogramdescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IEnumGuideDataProperties> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProgramProperties)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varprogramdescriptionid), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn GetScheduleEntryIDs(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetScheduleEntryIDs)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn GetScheduleEntryProperties(&self, varscheduleentrydescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IEnumGuideDataProperties> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetScheduleEntryProperties)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varscheduleentrydescriptionid), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IGuideData_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetServices: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub GetServiceProperties: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetServiceProperties: usize,
#[cfg(feature = "Win32_System_Ole")]
pub GetGuideProgramIDs: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
GetGuideProgramIDs: usize,
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub GetProgramProperties: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
GetProgramProperties: usize,
#[cfg(feature = "Win32_System_Ole")]
pub GetScheduleEntryIDs: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
GetScheduleEntryIDs: usize,
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub GetScheduleEntryProperties: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
GetScheduleEntryProperties: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IGuideData_Impl: windows_core::IUnknownImpl {
fn GetServices(&self) -> windows_core::Result<IEnumTuneRequests>;
fn GetServiceProperties(&self, ptunerequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<IEnumGuideDataProperties>;
fn GetGuideProgramIDs(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn GetProgramProperties(&self, varprogramdescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IEnumGuideDataProperties>;
fn GetScheduleEntryIDs(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn GetScheduleEntryProperties(&self, varscheduleentrydescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IEnumGuideDataProperties>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IGuideData_Vtbl {
pub const fn new<Identity: IGuideData_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetServices<Identity: IGuideData_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenumtunerequests: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGuideData_Impl::GetServices(this) {
Ok(ok__) => {
ppenumtunerequests.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceProperties<Identity: IGuideData_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ptunerequest: *mut core::ffi::c_void, ppenumproperties: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGuideData_Impl::GetServiceProperties(this, core::mem::transmute_copy(&ptunerequest)) {
Ok(ok__) => {
ppenumproperties.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetGuideProgramIDs<Identity: IGuideData_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, penumprograms: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGuideData_Impl::GetGuideProgramIDs(this) {
Ok(ok__) => {
penumprograms.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetProgramProperties<Identity: IGuideData_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varprogramdescriptionid: super::super::super::System::Variant::VARIANT, ppenumproperties: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGuideData_Impl::GetProgramProperties(this, core::mem::transmute(&varprogramdescriptionid)) {
Ok(ok__) => {
ppenumproperties.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetScheduleEntryIDs<Identity: IGuideData_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, penumscheduleentries: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGuideData_Impl::GetScheduleEntryIDs(this) {
Ok(ok__) => {
penumscheduleentries.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetScheduleEntryProperties<Identity: IGuideData_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varscheduleentrydescriptionid: super::super::super::System::Variant::VARIANT, ppenumproperties: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGuideData_Impl::GetScheduleEntryProperties(this, core::mem::transmute(&varscheduleentrydescriptionid)) {
Ok(ok__) => {
ppenumproperties.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetServices: GetServices::<Identity, OFFSET>,
GetServiceProperties: GetServiceProperties::<Identity, OFFSET>,
GetGuideProgramIDs: GetGuideProgramIDs::<Identity, OFFSET>,
GetProgramProperties: GetProgramProperties::<Identity, OFFSET>,
GetScheduleEntryIDs: GetScheduleEntryIDs::<Identity, OFFSET>,
GetScheduleEntryProperties: GetScheduleEntryProperties::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IGuideData as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IGuideData {}
windows_core::imp::define_interface!(IGuideDataEvent, IGuideDataEvent_Vtbl, 0xefda0c80_f395_42c3_9b3c_56b37dec7bb7);
windows_core::imp::interface_hierarchy!(IGuideDataEvent, windows_core::IUnknown);
impl IGuideDataEvent {
pub unsafe fn GuideDataAcquired(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GuideDataAcquired)(windows_core::Interface::as_raw(self)).ok() }
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn ProgramChanged(&self, varprogramdescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ProgramChanged)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varprogramdescriptionid)).ok() }
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn ServiceChanged(&self, varservicedescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ServiceChanged)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varservicedescriptionid)).ok() }
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn ScheduleEntryChanged(&self, varscheduleentrydescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ScheduleEntryChanged)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varscheduleentrydescriptionid)).ok() }
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn ProgramDeleted(&self, varprogramdescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ProgramDeleted)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varprogramdescriptionid)).ok() }
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn ServiceDeleted(&self, varservicedescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ServiceDeleted)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varservicedescriptionid)).ok() }
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn ScheduleDeleted(&self, varscheduleentrydescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ScheduleDeleted)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varscheduleentrydescriptionid)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IGuideDataEvent_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GuideDataAcquired: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub ProgramChanged: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
ProgramChanged: usize,
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub ServiceChanged: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
ServiceChanged: usize,
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub ScheduleEntryChanged: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
ScheduleEntryChanged: usize,
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub ProgramDeleted: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
ProgramDeleted: usize,
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub ServiceDeleted: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
ServiceDeleted: usize,
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub ScheduleDeleted: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
ScheduleDeleted: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IGuideDataEvent_Impl: windows_core::IUnknownImpl {
fn GuideDataAcquired(&self) -> windows_core::Result<()>;
fn ProgramChanged(&self, varprogramdescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn ServiceChanged(&self, varservicedescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn ScheduleEntryChanged(&self, varscheduleentrydescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn ProgramDeleted(&self, varprogramdescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn ServiceDeleted(&self, varservicedescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn ScheduleDeleted(&self, varscheduleentrydescriptionid: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IGuideDataEvent_Vtbl {
pub const fn new<Identity: IGuideDataEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GuideDataAcquired<Identity: IGuideDataEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGuideDataEvent_Impl::GuideDataAcquired(this).into()
}
}
unsafe extern "system" fn ProgramChanged<Identity: IGuideDataEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varprogramdescriptionid: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGuideDataEvent_Impl::ProgramChanged(this, core::mem::transmute(&varprogramdescriptionid)).into()
}
}
unsafe extern "system" fn ServiceChanged<Identity: IGuideDataEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varservicedescriptionid: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGuideDataEvent_Impl::ServiceChanged(this, core::mem::transmute(&varservicedescriptionid)).into()
}
}
unsafe extern "system" fn ScheduleEntryChanged<Identity: IGuideDataEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varscheduleentrydescriptionid: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGuideDataEvent_Impl::ScheduleEntryChanged(this, core::mem::transmute(&varscheduleentrydescriptionid)).into()
}
}
unsafe extern "system" fn ProgramDeleted<Identity: IGuideDataEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varprogramdescriptionid: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGuideDataEvent_Impl::ProgramDeleted(this, core::mem::transmute(&varprogramdescriptionid)).into()
}
}
unsafe extern "system" fn ServiceDeleted<Identity: IGuideDataEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varservicedescriptionid: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGuideDataEvent_Impl::ServiceDeleted(this, core::mem::transmute(&varservicedescriptionid)).into()
}
}
unsafe extern "system" fn ScheduleDeleted<Identity: IGuideDataEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varscheduleentrydescriptionid: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGuideDataEvent_Impl::ScheduleDeleted(this, core::mem::transmute(&varscheduleentrydescriptionid)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GuideDataAcquired: GuideDataAcquired::<Identity, OFFSET>,
ProgramChanged: ProgramChanged::<Identity, OFFSET>,
ServiceChanged: ServiceChanged::<Identity, OFFSET>,
ScheduleEntryChanged: ScheduleEntryChanged::<Identity, OFFSET>,
ProgramDeleted: ProgramDeleted::<Identity, OFFSET>,
ServiceDeleted: ServiceDeleted::<Identity, OFFSET>,
ScheduleDeleted: ScheduleDeleted::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IGuideDataEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IGuideDataEvent {}
windows_core::imp::define_interface!(IGuideDataLoader, IGuideDataLoader_Vtbl, 0x4764ff7c_fa95_4525_af4d_d32236db9e38);
windows_core::imp::interface_hierarchy!(IGuideDataLoader, windows_core::IUnknown);
impl IGuideDataLoader {
pub unsafe fn Init<P0>(&self, pguidestore: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IGuideData>,
{
unsafe { (windows_core::Interface::vtable(self).Init)(windows_core::Interface::as_raw(self), pguidestore.param().abi()).ok() }
}
pub unsafe fn Terminate(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Terminate)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IGuideDataLoader_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Init: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Terminate: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IGuideDataLoader_Impl: windows_core::IUnknownImpl {
fn Init(&self, pguidestore: windows_core::Ref<IGuideData>) -> windows_core::Result<()>;
fn Terminate(&self) -> windows_core::Result<()>;
}
impl IGuideDataLoader_Vtbl {
pub const fn new<Identity: IGuideDataLoader_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Init<Identity: IGuideDataLoader_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pguidestore: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGuideDataLoader_Impl::Init(this, core::mem::transmute_copy(&pguidestore)).into()
}
}
unsafe extern "system" fn Terminate<Identity: IGuideDataLoader_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IGuideDataLoader_Impl::Terminate(this).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Init: Init::<Identity, OFFSET>, Terminate: Terminate::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IGuideDataLoader as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IGuideDataLoader {}
windows_core::imp::define_interface!(IGuideDataProperty, IGuideDataProperty_Vtbl, 0x88ec5e58_bb73_41d6_99ce_66c524b8b591);
windows_core::imp::interface_hierarchy!(IGuideDataProperty, windows_core::IUnknown);
impl IGuideDataProperty {
pub unsafe fn Name(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Name)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn Language(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Language)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Value(&self) -> windows_core::Result<super::super::super::System::Variant::VARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Value)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IGuideDataProperty_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Name: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Language: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Value: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Value: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IGuideDataProperty_Impl: windows_core::IUnknownImpl {
fn Name(&self) -> windows_core::Result<windows_core::BSTR>;
fn Language(&self) -> windows_core::Result<i32>;
fn Value(&self) -> windows_core::Result<super::super::super::System::Variant::VARIANT>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IGuideDataProperty_Vtbl {
pub const fn new<Identity: IGuideDataProperty_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Name<Identity: IGuideDataProperty_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGuideDataProperty_Impl::Name(this) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Language<Identity: IGuideDataProperty_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, idlang: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGuideDataProperty_Impl::Language(this) {
Ok(ok__) => {
idlang.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Value<Identity: IGuideDataProperty_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pvar: *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IGuideDataProperty_Impl::Value(this) {
Ok(ok__) => {
pvar.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Name: Name::<Identity, OFFSET>,
Language: Language::<Identity, OFFSET>,
Value: Value::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IGuideDataProperty as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IGuideDataProperty {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IISDBSLocator, IISDBSLocator_Vtbl, 0xc9897087_e29c_473f_9e4b_7072123dea14);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IISDBSLocator {
type Target = IDVBSLocator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IISDBSLocator, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ILocator, IDigitalLocator, IDVBSLocator);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IISDBSLocator_Vtbl {
pub base__: IDVBSLocator_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IISDBSLocator_Impl: IDVBSLocator_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IISDBSLocator_Vtbl {
pub const fn new<Identity: IISDBSLocator_Impl, const OFFSET: isize>() -> Self {
Self { base__: IDVBSLocator_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IISDBSLocator as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ILocator as windows_core::Interface>::IID || iid == &<IDigitalLocator as windows_core::Interface>::IID || iid == &<IDVBSLocator as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IISDBSLocator {}
windows_core::imp::define_interface!(IISDB_BIT, IISDB_BIT_Vtbl, 0x537cd71e_0e46_4173_9001_ba043f3e49e2);
windows_core::imp::interface_hierarchy!(IISDB_BIT, windows_core::IUnknown);
impl IISDB_BIT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOriginalNetworkId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOriginalNetworkId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetBroadcastViewPropriety(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBroadcastViewPropriety)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordBroadcasterId(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordBroadcasterId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetVersionHash(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionHash)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IISDB_BIT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetOriginalNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetBroadcastViewPropriety: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordBroadcasterId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionHash: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IISDB_BIT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetOriginalNetworkId(&self) -> windows_core::Result<u16>;
fn GetBroadcastViewPropriety(&self) -> windows_core::Result<u8>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordBroadcasterId(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetVersionHash(&self) -> windows_core::Result<u32>;
}
impl IISDB_BIT_Vtbl {
pub const fn new<Identity: IISDB_BIT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_BIT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_BIT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOriginalNetworkId<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_BIT_Impl::GetOriginalNetworkId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetBroadcastViewPropriety<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_BIT_Impl::GetBroadcastViewPropriety(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_BIT_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_BIT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_BIT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_BIT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordBroadcasterId<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_BIT_Impl::GetRecordBroadcasterId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_BIT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_BIT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_BIT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetVersionHash<Identity: IISDB_BIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwversionhash: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_BIT_Impl::GetVersionHash(this) {
Ok(ok__) => {
pdwversionhash.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetOriginalNetworkId: GetOriginalNetworkId::<Identity, OFFSET>,
GetBroadcastViewPropriety: GetBroadcastViewPropriety::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordBroadcasterId: GetRecordBroadcasterId::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
GetVersionHash: GetVersionHash::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IISDB_BIT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IISDB_BIT {}
windows_core::imp::define_interface!(IISDB_CDT, IISDB_CDT_Vtbl, 0x25fa92c2_8b80_4787_a841_3a0e8f17984b);
windows_core::imp::interface_hierarchy!(IISDB_CDT, windows_core::IUnknown);
impl IISDB_CDT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1, bsectionnumber: u8) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi(), bsectionnumber).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDownloadDataId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDownloadDataId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSectionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSectionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOriginalNetworkId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOriginalNetworkId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDataType(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDataType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetSizeOfDataModule(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSizeOfDataModule)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDataModule(&self) -> windows_core::Result<*mut u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDataModule)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetVersionHash(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionHash)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IISDB_CDT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, u8) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetDownloadDataId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetSectionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetOriginalNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetDataType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetSizeOfDataModule: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDataModule: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8) -> windows_core::HRESULT,
pub GetVersionHash: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IISDB_CDT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>, bsectionnumber: u8) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetDownloadDataId(&self) -> windows_core::Result<u16>;
fn GetSectionNumber(&self) -> windows_core::Result<u8>;
fn GetOriginalNetworkId(&self) -> windows_core::Result<u16>;
fn GetDataType(&self) -> windows_core::Result<u8>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetSizeOfDataModule(&self) -> windows_core::Result<u32>;
fn GetDataModule(&self) -> windows_core::Result<*mut u8>;
fn GetVersionHash(&self) -> windows_core::Result<u32>;
}
impl IISDB_CDT_Vtbl {
pub const fn new<Identity: IISDB_CDT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void, bsectionnumber: u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_CDT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata), core::mem::transmute_copy(&bsectionnumber)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_CDT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDownloadDataId<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_CDT_Impl::GetDownloadDataId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSectionNumber<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_CDT_Impl::GetSectionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOriginalNetworkId<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_CDT_Impl::GetOriginalNetworkId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDataType<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_CDT_Impl::GetDataType(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_CDT_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_CDT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_CDT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetSizeOfDataModule<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_CDT_Impl::GetSizeOfDataModule(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDataModule<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbdata: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_CDT_Impl::GetDataModule(this) {
Ok(ok__) => {
pbdata.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetVersionHash<Identity: IISDB_CDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwversionhash: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_CDT_Impl::GetVersionHash(this) {
Ok(ok__) => {
pdwversionhash.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetDownloadDataId: GetDownloadDataId::<Identity, OFFSET>,
GetSectionNumber: GetSectionNumber::<Identity, OFFSET>,
GetOriginalNetworkId: GetOriginalNetworkId::<Identity, OFFSET>,
GetDataType: GetDataType::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
GetSizeOfDataModule: GetSizeOfDataModule::<Identity, OFFSET>,
GetDataModule: GetDataModule::<Identity, OFFSET>,
GetVersionHash: GetVersionHash::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IISDB_CDT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IISDB_CDT {}
windows_core::imp::define_interface!(IISDB_EMM, IISDB_EMM_Vtbl, 0x0edb556d_43ad_4938_9668_321b2ffecfd3);
windows_core::imp::interface_hierarchy!(IISDB_EMM, windows_core::IUnknown);
impl IISDB_EMM {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableIdExtension(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableIdExtension)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDataBytes(&self, pwbufferlength: *mut u16, pbbuffer: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetDataBytes)(windows_core::Interface::as_raw(self), pwbufferlength as _, pbbuffer as _).ok() }
}
pub unsafe fn GetSharedEmmMessage(&self, pwlength: *mut u16, ppbmessage: *mut *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetSharedEmmMessage)(windows_core::Interface::as_raw(self), pwlength as _, ppbmessage as _).ok() }
}
pub unsafe fn GetIndividualEmmMessage<P0>(&self, punknown: P0, pwlength: *mut u16, ppbmessage: *mut *mut u8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
unsafe { (windows_core::Interface::vtable(self).GetIndividualEmmMessage)(windows_core::Interface::as_raw(self), punknown.param().abi(), pwlength as _, ppbmessage as _).ok() }
}
pub unsafe fn GetVersionHash(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionHash)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IISDB_EMM_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTableIdExtension: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetDataBytes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16, *mut u8) -> windows_core::HRESULT,
pub GetSharedEmmMessage: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16, *mut *mut u8) -> windows_core::HRESULT,
pub GetIndividualEmmMessage: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u16, *mut *mut u8) -> windows_core::HRESULT,
pub GetVersionHash: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IISDB_EMM_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetTableIdExtension(&self) -> windows_core::Result<u16>;
fn GetDataBytes(&self, pwbufferlength: *mut u16, pbbuffer: *mut u8) -> windows_core::Result<()>;
fn GetSharedEmmMessage(&self, pwlength: *mut u16, ppbmessage: *mut *mut u8) -> windows_core::Result<()>;
fn GetIndividualEmmMessage(&self, punknown: windows_core::Ref<windows_core::IUnknown>, pwlength: *mut u16, ppbmessage: *mut *mut u8) -> windows_core::Result<()>;
fn GetVersionHash(&self) -> windows_core::Result<u32>;
}
impl IISDB_EMM_Vtbl {
pub const fn new<Identity: IISDB_EMM_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IISDB_EMM_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_EMM_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IISDB_EMM_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_EMM_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableIdExtension<Identity: IISDB_EMM_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_EMM_Impl::GetTableIdExtension(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDataBytes<Identity: IISDB_EMM_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwbufferlength: *mut u16, pbbuffer: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_EMM_Impl::GetDataBytes(this, core::mem::transmute_copy(&pwbufferlength), core::mem::transmute_copy(&pbbuffer)).into()
}
}
unsafe extern "system" fn GetSharedEmmMessage<Identity: IISDB_EMM_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwlength: *mut u16, ppbmessage: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_EMM_Impl::GetSharedEmmMessage(this, core::mem::transmute_copy(&pwlength), core::mem::transmute_copy(&ppbmessage)).into()
}
}
unsafe extern "system" fn GetIndividualEmmMessage<Identity: IISDB_EMM_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, punknown: *mut core::ffi::c_void, pwlength: *mut u16, ppbmessage: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_EMM_Impl::GetIndividualEmmMessage(this, core::mem::transmute_copy(&punknown), core::mem::transmute_copy(&pwlength), core::mem::transmute_copy(&ppbmessage)).into()
}
}
unsafe extern "system" fn GetVersionHash<Identity: IISDB_EMM_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwversionhash: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_EMM_Impl::GetVersionHash(this) {
Ok(ok__) => {
pdwversionhash.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetTableIdExtension: GetTableIdExtension::<Identity, OFFSET>,
GetDataBytes: GetDataBytes::<Identity, OFFSET>,
GetSharedEmmMessage: GetSharedEmmMessage::<Identity, OFFSET>,
GetIndividualEmmMessage: GetIndividualEmmMessage::<Identity, OFFSET>,
GetVersionHash: GetVersionHash::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IISDB_EMM as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IISDB_EMM {}
windows_core::imp::define_interface!(IISDB_LDT, IISDB_LDT_Vtbl, 0x141a546b_02ff_4fb9_a3a3_2f074b74a9a9);
windows_core::imp::interface_hierarchy!(IISDB_LDT, windows_core::IUnknown);
impl IISDB_LDT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOriginalServiceId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOriginalServiceId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTransportStreamId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTransportStreamId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOriginalNetworkId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOriginalNetworkId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptionId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptionId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetVersionHash(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionHash)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IISDB_LDT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetOriginalServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetTransportStreamId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetOriginalNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptionId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionHash: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IISDB_LDT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetOriginalServiceId(&self) -> windows_core::Result<u16>;
fn GetTransportStreamId(&self) -> windows_core::Result<u16>;
fn GetOriginalNetworkId(&self) -> windows_core::Result<u16>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordDescriptionId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetVersionHash(&self) -> windows_core::Result<u32>;
}
impl IISDB_LDT_Vtbl {
pub const fn new<Identity: IISDB_LDT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_LDT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_LDT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOriginalServiceId<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_LDT_Impl::GetOriginalServiceId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTransportStreamId<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_LDT_Impl::GetTransportStreamId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOriginalNetworkId<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_LDT_Impl::GetOriginalNetworkId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_LDT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptionId<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_LDT_Impl::GetRecordDescriptionId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_LDT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_LDT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_LDT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetVersionHash<Identity: IISDB_LDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwversionhash: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_LDT_Impl::GetVersionHash(this) {
Ok(ok__) => {
pdwversionhash.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetOriginalServiceId: GetOriginalServiceId::<Identity, OFFSET>,
GetTransportStreamId: GetTransportStreamId::<Identity, OFFSET>,
GetOriginalNetworkId: GetOriginalNetworkId::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordDescriptionId: GetRecordDescriptionId::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
GetVersionHash: GetVersionHash::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IISDB_LDT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IISDB_LDT {}
windows_core::imp::define_interface!(IISDB_NBIT, IISDB_NBIT_Vtbl, 0x1b1863ef_08f1_40b7_a559_3b1eff8cafa6);
windows_core::imp::interface_hierarchy!(IISDB_NBIT, windows_core::IUnknown);
impl IISDB_NBIT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOriginalNetworkId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOriginalNetworkId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordInformationId(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordInformationId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordInformationType(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordInformationType)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptionBodyLocation(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptionBodyLocation)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordMessageSectionNumber(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordMessageSectionNumber)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordUserDefined(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordUserDefined)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordNumberOfKeys(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordNumberOfKeys)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordKeys(&self, dwrecordindex: u32) -> windows_core::Result<*mut u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordKeys)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetVersionHash(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionHash)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IISDB_NBIT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetOriginalNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordInformationId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordInformationType: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordDescriptionBodyLocation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordMessageSectionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordUserDefined: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordNumberOfKeys: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordKeys: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut u8) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionHash: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IISDB_NBIT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetOriginalNetworkId(&self) -> windows_core::Result<u16>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordInformationId(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordInformationType(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordDescriptionBodyLocation(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordMessageSectionNumber(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordUserDefined(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordNumberOfKeys(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordKeys(&self, dwrecordindex: u32) -> windows_core::Result<*mut u8>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetVersionHash(&self) -> windows_core::Result<u32>;
}
impl IISDB_NBIT_Vtbl {
pub const fn new<Identity: IISDB_NBIT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_NBIT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOriginalNetworkId<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetOriginalNetworkId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordInformationId<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetRecordInformationId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordInformationType<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetRecordInformationType(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptionBodyLocation<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetRecordDescriptionBodyLocation(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordMessageSectionNumber<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetRecordMessageSectionNumber(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordUserDefined<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetRecordUserDefined(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordNumberOfKeys<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetRecordNumberOfKeys(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordKeys<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbkeys: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetRecordKeys(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbkeys.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_NBIT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetVersionHash<Identity: IISDB_NBIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwversionhash: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_NBIT_Impl::GetVersionHash(this) {
Ok(ok__) => {
pdwversionhash.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetOriginalNetworkId: GetOriginalNetworkId::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordInformationId: GetRecordInformationId::<Identity, OFFSET>,
GetRecordInformationType: GetRecordInformationType::<Identity, OFFSET>,
GetRecordDescriptionBodyLocation: GetRecordDescriptionBodyLocation::<Identity, OFFSET>,
GetRecordMessageSectionNumber: GetRecordMessageSectionNumber::<Identity, OFFSET>,
GetRecordUserDefined: GetRecordUserDefined::<Identity, OFFSET>,
GetRecordNumberOfKeys: GetRecordNumberOfKeys::<Identity, OFFSET>,
GetRecordKeys: GetRecordKeys::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
GetVersionHash: GetVersionHash::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IISDB_NBIT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IISDB_NBIT {}
windows_core::imp::define_interface!(IISDB_SDT, IISDB_SDT_Vtbl, 0x3f3dc9a2_bb32_4fb9_ae9e_d856848927a3);
impl core::ops::Deref for IISDB_SDT {
type Target = IDVB_SDT;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IISDB_SDT, windows_core::IUnknown, IDVB_SDT);
impl IISDB_SDT {
pub unsafe fn GetRecordEITUserDefinedFlags(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordEITUserDefinedFlags)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IISDB_SDT_Vtbl {
pub base__: IDVB_SDT_Vtbl,
pub GetRecordEITUserDefinedFlags: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
}
pub trait IISDB_SDT_Impl: IDVB_SDT_Impl {
fn GetRecordEITUserDefinedFlags(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
}
impl IISDB_SDT_Vtbl {
pub const fn new<Identity: IISDB_SDT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetRecordEITUserDefinedFlags<Identity: IISDB_SDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDT_Impl::GetRecordEITUserDefinedFlags(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: IDVB_SDT_Vtbl::new::<Identity, OFFSET>(), GetRecordEITUserDefinedFlags: GetRecordEITUserDefinedFlags::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IISDB_SDT as windows_core::Interface>::IID || iid == &<IDVB_SDT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IISDB_SDT {}
windows_core::imp::define_interface!(IISDB_SDTT, IISDB_SDTT_Vtbl, 0xee60ef2d_813a_4dc7_bf92_ea13dac85313);
windows_core::imp::interface_hierarchy!(IISDB_SDTT, windows_core::IUnknown);
impl IISDB_SDTT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableIdExt(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableIdExt)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTransportStreamId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTransportStreamId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOriginalNetworkId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOriginalNetworkId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetServiceId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordGroup(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordGroup)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTargetVersion(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordTargetVersion)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordNewVersion(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordNewVersion)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDownloadLevel(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDownloadLevel)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordVersionIndicator(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordVersionIndicator)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordScheduleTimeShiftInformation(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordScheduleTimeShiftInformation)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfSchedules(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfSchedules)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordStartTimeByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<MPEG_DATE_AND_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordStartTimeByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDurationByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<MPEG_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDurationByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: Option<*mut u32>, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie.unwrap_or(core::mem::zeroed()) as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetVersionHash(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionHash)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IISDB_SDTT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTableIdExt: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetTransportStreamId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetOriginalNetworkId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordGroup: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordTargetVersion: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordNewVersion: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordDownloadLevel: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordVersionIndicator: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordScheduleTimeShiftInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordCountOfSchedules: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordStartTimeByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT,
pub GetRecordDurationByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut MPEG_TIME) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionHash: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IISDB_SDTT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetTableIdExt(&self) -> windows_core::Result<u16>;
fn GetTransportStreamId(&self) -> windows_core::Result<u16>;
fn GetOriginalNetworkId(&self) -> windows_core::Result<u16>;
fn GetServiceId(&self) -> windows_core::Result<u16>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordGroup(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordTargetVersion(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordNewVersion(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordDownloadLevel(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordVersionIndicator(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordScheduleTimeShiftInformation(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordCountOfSchedules(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordStartTimeByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<MPEG_DATE_AND_TIME>;
fn GetRecordDurationByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<MPEG_TIME>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetVersionHash(&self) -> windows_core::Result<u32>;
}
impl IISDB_SDTT_Vtbl {
pub const fn new<Identity: IISDB_SDTT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_SDTT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableIdExt<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetTableIdExt(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTransportStreamId<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetTransportStreamId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOriginalNetworkId<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetOriginalNetworkId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceId<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetServiceId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordGroup<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordGroup(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTargetVersion<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordTargetVersion(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordNewVersion<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordNewVersion(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDownloadLevel<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordDownloadLevel(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordVersionIndicator<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordVersionIndicator(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordScheduleTimeShiftInformation<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordScheduleTimeShiftInformation(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfSchedules<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordCountOfSchedules(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordStartTimeByIndex<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, pmdtval: *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordStartTimeByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
pmdtval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDurationByIndex<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, pmdval: *mut MPEG_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordDurationByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
pmdval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IISDB_SDTT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetVersionHash<Identity: IISDB_SDTT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwversionhash: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IISDB_SDTT_Impl::GetVersionHash(this) {
Ok(ok__) => {
pdwversionhash.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetTableIdExt: GetTableIdExt::<Identity, OFFSET>,
GetTransportStreamId: GetTransportStreamId::<Identity, OFFSET>,
GetOriginalNetworkId: GetOriginalNetworkId::<Identity, OFFSET>,
GetServiceId: GetServiceId::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordGroup: GetRecordGroup::<Identity, OFFSET>,
GetRecordTargetVersion: GetRecordTargetVersion::<Identity, OFFSET>,
GetRecordNewVersion: GetRecordNewVersion::<Identity, OFFSET>,
GetRecordDownloadLevel: GetRecordDownloadLevel::<Identity, OFFSET>,
GetRecordVersionIndicator: GetRecordVersionIndicator::<Identity, OFFSET>,
GetRecordScheduleTimeShiftInformation: GetRecordScheduleTimeShiftInformation::<Identity, OFFSET>,
GetRecordCountOfSchedules: GetRecordCountOfSchedules::<Identity, OFFSET>,
GetRecordStartTimeByIndex: GetRecordStartTimeByIndex::<Identity, OFFSET>,
GetRecordDurationByIndex: GetRecordDurationByIndex::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
GetVersionHash: GetVersionHash::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IISDB_SDTT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IISDB_SDTT {}
windows_core::imp::define_interface!(IIsdbAudioComponentDescriptor, IIsdbAudioComponentDescriptor_Vtbl, 0x679d2002_2425_4be4_a4c7_d6632a574f4d);
windows_core::imp::interface_hierarchy!(IIsdbAudioComponentDescriptor, windows_core::IUnknown);
impl IIsdbAudioComponentDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetStreamContent(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStreamContent)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetComponentType(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetComponentType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetComponentTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetComponentTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetStreamType(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStreamType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSimulcastGroupTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSimulcastGroupTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetESMultiLingualFlag(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetESMultiLingualFlag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetMainComponentFlag(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetMainComponentFlag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetQualityIndicator(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetQualityIndicator)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSamplingRate(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSamplingRate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLanguageCode(&self, pszcode: &mut [u8; 4]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLanguageCode)(windows_core::Interface::as_raw(self), core::mem::transmute(pszcode.as_ptr())).ok() }
}
pub unsafe fn GetLanguageCode2(&self, pszcode: &mut [u8; 4]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLanguageCode2)(windows_core::Interface::as_raw(self), core::mem::transmute(pszcode.as_ptr())).ok() }
}
pub unsafe fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTextW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbAudioComponentDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetStreamContent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetComponentType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetComponentTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetStreamType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSimulcastGroupTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetESMultiLingualFlag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetMainComponentFlag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetQualityIndicator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSamplingRate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLanguageCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLanguageCode2: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTextW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IIsdbAudioComponentDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetStreamContent(&self) -> windows_core::Result<u8>;
fn GetComponentType(&self) -> windows_core::Result<u8>;
fn GetComponentTag(&self) -> windows_core::Result<u8>;
fn GetStreamType(&self) -> windows_core::Result<u8>;
fn GetSimulcastGroupTag(&self) -> windows_core::Result<u8>;
fn GetESMultiLingualFlag(&self) -> windows_core::Result<windows_core::BOOL>;
fn GetMainComponentFlag(&self) -> windows_core::Result<windows_core::BOOL>;
fn GetQualityIndicator(&self) -> windows_core::Result<u8>;
fn GetSamplingRate(&self) -> windows_core::Result<u8>;
fn GetLanguageCode(&self, pszcode: *mut u8) -> windows_core::Result<()>;
fn GetLanguageCode2(&self, pszcode: *mut u8) -> windows_core::Result<()>;
fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IIsdbAudioComponentDescriptor_Vtbl {
pub const fn new<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetStreamContent<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetStreamContent(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetComponentType<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetComponentType(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetComponentTag<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetComponentTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetStreamType<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetStreamType(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSimulcastGroupTag<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetSimulcastGroupTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetESMultiLingualFlag<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetESMultiLingualFlag(this) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetMainComponentFlag<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfval: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetMainComponentFlag(this) {
Ok(ok__) => {
pfval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetQualityIndicator<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetQualityIndicator(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSamplingRate<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetSamplingRate(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLanguageCode<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszcode: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbAudioComponentDescriptor_Impl::GetLanguageCode(this, core::mem::transmute_copy(&pszcode)).into()
}
}
unsafe extern "system" fn GetLanguageCode2<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszcode: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbAudioComponentDescriptor_Impl::GetLanguageCode2(this, core::mem::transmute_copy(&pszcode)).into()
}
}
unsafe extern "system" fn GetTextW<Identity: IIsdbAudioComponentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrtext: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbAudioComponentDescriptor_Impl::GetTextW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrtext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetStreamContent: GetStreamContent::<Identity, OFFSET>,
GetComponentType: GetComponentType::<Identity, OFFSET>,
GetComponentTag: GetComponentTag::<Identity, OFFSET>,
GetStreamType: GetStreamType::<Identity, OFFSET>,
GetSimulcastGroupTag: GetSimulcastGroupTag::<Identity, OFFSET>,
GetESMultiLingualFlag: GetESMultiLingualFlag::<Identity, OFFSET>,
GetMainComponentFlag: GetMainComponentFlag::<Identity, OFFSET>,
GetQualityIndicator: GetQualityIndicator::<Identity, OFFSET>,
GetSamplingRate: GetSamplingRate::<Identity, OFFSET>,
GetLanguageCode: GetLanguageCode::<Identity, OFFSET>,
GetLanguageCode2: GetLanguageCode2::<Identity, OFFSET>,
GetTextW: GetTextW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbAudioComponentDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbAudioComponentDescriptor {}
windows_core::imp::define_interface!(IIsdbCAContractInformationDescriptor, IIsdbCAContractInformationDescriptor_Vtbl, 0x08e18b25_a28f_4e92_821e_4fced5cc2291);
windows_core::imp::interface_hierarchy!(IIsdbCAContractInformationDescriptor, windows_core::IUnknown);
impl IIsdbCAContractInformationDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCASystemId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCASystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCAUnitId(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCAUnitId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordComponentTag(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordComponentTag)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetContractVerificationInfoLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetContractVerificationInfoLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetContractVerificationInfo(&self, bbuflength: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetContractVerificationInfo)(windows_core::Interface::as_raw(self), bbuflength, &mut result__).map(|| result__)
}
}
pub unsafe fn GetFeeNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFeeNameW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbCAContractInformationDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCASystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCAUnitId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordComponentTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetContractVerificationInfoLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetContractVerificationInfo: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetFeeNameW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IIsdbCAContractInformationDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCASystemId(&self) -> windows_core::Result<u16>;
fn GetCAUnitId(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordComponentTag(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetContractVerificationInfoLength(&self) -> windows_core::Result<u8>;
fn GetContractVerificationInfo(&self, bbuflength: u8) -> windows_core::Result<u8>;
fn GetFeeNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IIsdbCAContractInformationDescriptor_Vtbl {
pub const fn new<Identity: IIsdbCAContractInformationDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbCAContractInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAContractInformationDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbCAContractInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAContractInformationDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCASystemId<Identity: IIsdbCAContractInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAContractInformationDescriptor_Impl::GetCASystemId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCAUnitId<Identity: IIsdbCAContractInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAContractInformationDescriptor_Impl::GetCAUnitId(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IIsdbCAContractInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAContractInformationDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordComponentTag<Identity: IIsdbCAContractInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAContractInformationDescriptor_Impl::GetRecordComponentTag(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetContractVerificationInfoLength<Identity: IIsdbCAContractInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAContractInformationDescriptor_Impl::GetContractVerificationInfoLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetContractVerificationInfo<Identity: IIsdbCAContractInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bbuflength: u8, pbbuf: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAContractInformationDescriptor_Impl::GetContractVerificationInfo(this, core::mem::transmute_copy(&bbuflength)) {
Ok(ok__) => {
pbbuf.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFeeNameW<Identity: IIsdbCAContractInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAContractInformationDescriptor_Impl::GetFeeNameW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCASystemId: GetCASystemId::<Identity, OFFSET>,
GetCAUnitId: GetCAUnitId::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordComponentTag: GetRecordComponentTag::<Identity, OFFSET>,
GetContractVerificationInfoLength: GetContractVerificationInfoLength::<Identity, OFFSET>,
GetContractVerificationInfo: GetContractVerificationInfo::<Identity, OFFSET>,
GetFeeNameW: GetFeeNameW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbCAContractInformationDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbCAContractInformationDescriptor {}
windows_core::imp::define_interface!(IIsdbCADescriptor, IIsdbCADescriptor_Vtbl, 0x0570aa47_52bc_42ae_8ca5_969f41e81aea);
windows_core::imp::interface_hierarchy!(IIsdbCADescriptor, windows_core::IUnknown);
impl IIsdbCADescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCASystemId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCASystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetReservedBits(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetReservedBits)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCAPID(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCAPID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetPrivateDataBytes(&self, pbbufferlength: *mut u8, pbbuffer: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetPrivateDataBytes)(windows_core::Interface::as_raw(self), pbbufferlength as _, pbbuffer as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbCADescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCASystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetReservedBits: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCAPID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetPrivateDataBytes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IIsdbCADescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCASystemId(&self) -> windows_core::Result<u16>;
fn GetReservedBits(&self) -> windows_core::Result<u8>;
fn GetCAPID(&self) -> windows_core::Result<u16>;
fn GetPrivateDataBytes(&self, pbbufferlength: *mut u8, pbbuffer: *mut u8) -> windows_core::Result<()>;
}
impl IIsdbCADescriptor_Vtbl {
pub const fn new<Identity: IIsdbCADescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbCADescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCADescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbCADescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCADescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCASystemId<Identity: IIsdbCADescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCADescriptor_Impl::GetCASystemId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetReservedBits<Identity: IIsdbCADescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCADescriptor_Impl::GetReservedBits(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCAPID<Identity: IIsdbCADescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCADescriptor_Impl::GetCAPID(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPrivateDataBytes<Identity: IIsdbCADescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbbufferlength: *mut u8, pbbuffer: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbCADescriptor_Impl::GetPrivateDataBytes(this, core::mem::transmute_copy(&pbbufferlength), core::mem::transmute_copy(&pbbuffer)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCASystemId: GetCASystemId::<Identity, OFFSET>,
GetReservedBits: GetReservedBits::<Identity, OFFSET>,
GetCAPID: GetCAPID::<Identity, OFFSET>,
GetPrivateDataBytes: GetPrivateDataBytes::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbCADescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbCADescriptor {}
windows_core::imp::define_interface!(IIsdbCAServiceDescriptor, IIsdbCAServiceDescriptor_Vtbl, 0x39cbeb97_ff0b_42a7_9ab9_7b9cfe70a77a);
windows_core::imp::interface_hierarchy!(IIsdbCAServiceDescriptor, windows_core::IUnknown);
impl IIsdbCAServiceDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCASystemId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCASystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCABroadcasterGroupId(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCABroadcasterGroupId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetMessageControl(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetMessageControl)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetServiceIds(&self, pbnumserviceids: *mut u8, pwserviceids: *mut u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetServiceIds)(windows_core::Interface::as_raw(self), pbnumserviceids as _, pwserviceids as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbCAServiceDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCASystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCABroadcasterGroupId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetMessageControl: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetServiceIds: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8, *mut u16) -> windows_core::HRESULT,
}
pub trait IIsdbCAServiceDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCASystemId(&self) -> windows_core::Result<u16>;
fn GetCABroadcasterGroupId(&self) -> windows_core::Result<u8>;
fn GetMessageControl(&self) -> windows_core::Result<u8>;
fn GetServiceIds(&self, pbnumserviceids: *mut u8, pwserviceids: *mut u16) -> windows_core::Result<()>;
}
impl IIsdbCAServiceDescriptor_Vtbl {
pub const fn new<Identity: IIsdbCAServiceDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbCAServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAServiceDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbCAServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAServiceDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCASystemId<Identity: IIsdbCAServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAServiceDescriptor_Impl::GetCASystemId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCABroadcasterGroupId<Identity: IIsdbCAServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAServiceDescriptor_Impl::GetCABroadcasterGroupId(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetMessageControl<Identity: IIsdbCAServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbCAServiceDescriptor_Impl::GetMessageControl(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceIds<Identity: IIsdbCAServiceDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbnumserviceids: *mut u8, pwserviceids: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbCAServiceDescriptor_Impl::GetServiceIds(this, core::mem::transmute_copy(&pbnumserviceids), core::mem::transmute_copy(&pwserviceids)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCASystemId: GetCASystemId::<Identity, OFFSET>,
GetCABroadcasterGroupId: GetCABroadcasterGroupId::<Identity, OFFSET>,
GetMessageControl: GetMessageControl::<Identity, OFFSET>,
GetServiceIds: GetServiceIds::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbCAServiceDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbCAServiceDescriptor {}
windows_core::imp::define_interface!(IIsdbComponentGroupDescriptor, IIsdbComponentGroupDescriptor_Vtbl, 0xa494f17f_c592_47d8_8943_64c9a34be7b9);
windows_core::imp::interface_hierarchy!(IIsdbComponentGroupDescriptor, windows_core::IUnknown);
impl IIsdbComponentGroupDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetComponentGroupType(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetComponentGroupType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordGroupId(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordGroupId)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordNumberOfCAUnit(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordNumberOfCAUnit)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCAUnitCAUnitId(&self, brecordindex: u8, bcaunitindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCAUnitCAUnitId)(windows_core::Interface::as_raw(self), brecordindex, bcaunitindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCAUnitNumberOfComponents(&self, brecordindex: u8, bcaunitindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCAUnitNumberOfComponents)(windows_core::Interface::as_raw(self), brecordindex, bcaunitindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCAUnitComponentTag(&self, brecordindex: u8, bcaunitindex: u8, bcomponentindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCAUnitComponentTag)(windows_core::Interface::as_raw(self), brecordindex, bcaunitindex, bcomponentindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTotalBitRate(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordTotalBitRate)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTextW(&self, brecordindex: u8, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordTextW)(windows_core::Interface::as_raw(self), brecordindex, convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbComponentGroupDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetComponentGroupType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordGroupId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordNumberOfCAUnit: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordCAUnitCAUnitId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordCAUnitNumberOfComponents: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordCAUnitComponentTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordTotalBitRate: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordTextW: unsafe extern "system" fn(*mut core::ffi::c_void, u8, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IIsdbComponentGroupDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetComponentGroupType(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordGroupId(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetRecordNumberOfCAUnit(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetRecordCAUnitCAUnitId(&self, brecordindex: u8, bcaunitindex: u8) -> windows_core::Result<u8>;
fn GetRecordCAUnitNumberOfComponents(&self, brecordindex: u8, bcaunitindex: u8) -> windows_core::Result<u8>;
fn GetRecordCAUnitComponentTag(&self, brecordindex: u8, bcaunitindex: u8, bcomponentindex: u8) -> windows_core::Result<u8>;
fn GetRecordTotalBitRate(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetRecordTextW(&self, brecordindex: u8, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IIsdbComponentGroupDescriptor_Vtbl {
pub const fn new<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetComponentGroupType<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetComponentGroupType(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordGroupId<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetRecordGroupId(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordNumberOfCAUnit<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetRecordNumberOfCAUnit(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCAUnitCAUnitId<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, bcaunitindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetRecordCAUnitCAUnitId(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&bcaunitindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCAUnitNumberOfComponents<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, bcaunitindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetRecordCAUnitNumberOfComponents(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&bcaunitindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCAUnitComponentTag<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, bcaunitindex: u8, bcomponentindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetRecordCAUnitComponentTag(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&bcaunitindex), core::mem::transmute_copy(&bcomponentindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTotalBitRate<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetRecordTotalBitRate(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTextW<Identity: IIsdbComponentGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, convmode: DVB_STRCONV_MODE, pbstrtext: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbComponentGroupDescriptor_Impl::GetRecordTextW(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrtext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetComponentGroupType: GetComponentGroupType::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordGroupId: GetRecordGroupId::<Identity, OFFSET>,
GetRecordNumberOfCAUnit: GetRecordNumberOfCAUnit::<Identity, OFFSET>,
GetRecordCAUnitCAUnitId: GetRecordCAUnitCAUnitId::<Identity, OFFSET>,
GetRecordCAUnitNumberOfComponents: GetRecordCAUnitNumberOfComponents::<Identity, OFFSET>,
GetRecordCAUnitComponentTag: GetRecordCAUnitComponentTag::<Identity, OFFSET>,
GetRecordTotalBitRate: GetRecordTotalBitRate::<Identity, OFFSET>,
GetRecordTextW: GetRecordTextW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbComponentGroupDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbComponentGroupDescriptor {}
windows_core::imp::define_interface!(IIsdbDataContentDescriptor, IIsdbDataContentDescriptor_Vtbl, 0xa428100a_e646_4bd6_aa14_6087bdc08cd5);
windows_core::imp::interface_hierarchy!(IIsdbDataContentDescriptor, windows_core::IUnknown);
impl IIsdbDataContentDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDataComponentId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDataComponentId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetEntryComponent(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEntryComponent)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSelectorLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSelectorLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSelectorBytes(&self, bbuflength: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSelectorBytes)(windows_core::Interface::as_raw(self), bbuflength, &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordComponentRef(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordComponentRef)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetLanguageCode(&self, pszcode: &mut [u8; 4]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLanguageCode)(windows_core::Interface::as_raw(self), core::mem::transmute(pszcode.as_ptr())).ok() }
}
pub unsafe fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTextW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbDataContentDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetDataComponentId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetEntryComponent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSelectorLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSelectorBytes: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordComponentRef: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetLanguageCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTextW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IIsdbDataContentDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetDataComponentId(&self) -> windows_core::Result<u16>;
fn GetEntryComponent(&self) -> windows_core::Result<u8>;
fn GetSelectorLength(&self) -> windows_core::Result<u8>;
fn GetSelectorBytes(&self, bbuflength: u8) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordComponentRef(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetLanguageCode(&self, pszcode: *mut u8) -> windows_core::Result<()>;
fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IIsdbDataContentDescriptor_Vtbl {
pub const fn new<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDataContentDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDataContentDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDataComponentId<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDataContentDescriptor_Impl::GetDataComponentId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEntryComponent<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDataContentDescriptor_Impl::GetEntryComponent(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSelectorLength<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDataContentDescriptor_Impl::GetSelectorLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSelectorBytes<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bbuflength: u8, pbbuf: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDataContentDescriptor_Impl::GetSelectorBytes(this, core::mem::transmute_copy(&bbuflength)) {
Ok(ok__) => {
pbbuf.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDataContentDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordComponentRef<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDataContentDescriptor_Impl::GetRecordComponentRef(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLanguageCode<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszcode: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbDataContentDescriptor_Impl::GetLanguageCode(this, core::mem::transmute_copy(&pszcode)).into()
}
}
unsafe extern "system" fn GetTextW<Identity: IIsdbDataContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrtext: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDataContentDescriptor_Impl::GetTextW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrtext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetDataComponentId: GetDataComponentId::<Identity, OFFSET>,
GetEntryComponent: GetEntryComponent::<Identity, OFFSET>,
GetSelectorLength: GetSelectorLength::<Identity, OFFSET>,
GetSelectorBytes: GetSelectorBytes::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordComponentRef: GetRecordComponentRef::<Identity, OFFSET>,
GetLanguageCode: GetLanguageCode::<Identity, OFFSET>,
GetTextW: GetTextW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbDataContentDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbDataContentDescriptor {}
windows_core::imp::define_interface!(IIsdbDigitalCopyControlDescriptor, IIsdbDigitalCopyControlDescriptor_Vtbl, 0x1a28417e_266a_4bb8_a4bd_d782bcfb8161);
windows_core::imp::interface_hierarchy!(IIsdbDigitalCopyControlDescriptor, windows_core::IUnknown);
impl IIsdbDigitalCopyControlDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCopyControl(&self, pbdigitalrecordingcontroldata: *mut u8, pbcopycontroltype: *mut u8, pbapscontroldata: *mut u8, pbmaximumbitrate: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetCopyControl)(windows_core::Interface::as_raw(self), pbdigitalrecordingcontroldata as _, pbcopycontroltype as _, pbapscontroldata as _, pbmaximumbitrate as _).ok() }
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCopyControl(&self, brecordindex: u8, pbcomponenttag: *mut u8, pbdigitalrecordingcontroldata: *mut u8, pbcopycontroltype: *mut u8, pbapscontroldata: *mut u8, pbmaximumbitrate: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordCopyControl)(windows_core::Interface::as_raw(self), brecordindex, pbcomponenttag as _, pbdigitalrecordingcontroldata as _, pbcopycontroltype as _, pbapscontroldata as _, pbmaximumbitrate as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbDigitalCopyControlDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCopyControl: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8, *mut u8, *mut u8, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordCopyControl: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8, *mut u8, *mut u8, *mut u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IIsdbDigitalCopyControlDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCopyControl(&self, pbdigitalrecordingcontroldata: *mut u8, pbcopycontroltype: *mut u8, pbapscontroldata: *mut u8, pbmaximumbitrate: *mut u8) -> windows_core::Result<()>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordCopyControl(&self, brecordindex: u8, pbcomponenttag: *mut u8, pbdigitalrecordingcontroldata: *mut u8, pbcopycontroltype: *mut u8, pbapscontroldata: *mut u8, pbmaximumbitrate: *mut u8) -> windows_core::Result<()>;
}
impl IIsdbDigitalCopyControlDescriptor_Vtbl {
pub const fn new<Identity: IIsdbDigitalCopyControlDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbDigitalCopyControlDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDigitalCopyControlDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbDigitalCopyControlDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDigitalCopyControlDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCopyControl<Identity: IIsdbDigitalCopyControlDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbdigitalrecordingcontroldata: *mut u8, pbcopycontroltype: *mut u8, pbapscontroldata: *mut u8, pbmaximumbitrate: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbDigitalCopyControlDescriptor_Impl::GetCopyControl(this, core::mem::transmute_copy(&pbdigitalrecordingcontroldata), core::mem::transmute_copy(&pbcopycontroltype), core::mem::transmute_copy(&pbapscontroldata), core::mem::transmute_copy(&pbmaximumbitrate)).into()
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IIsdbDigitalCopyControlDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDigitalCopyControlDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCopyControl<Identity: IIsdbDigitalCopyControlDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbcomponenttag: *mut u8, pbdigitalrecordingcontroldata: *mut u8, pbcopycontroltype: *mut u8, pbapscontroldata: *mut u8, pbmaximumbitrate: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbDigitalCopyControlDescriptor_Impl::GetRecordCopyControl(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&pbcomponenttag), core::mem::transmute_copy(&pbdigitalrecordingcontroldata), core::mem::transmute_copy(&pbcopycontroltype), core::mem::transmute_copy(&pbapscontroldata), core::mem::transmute_copy(&pbmaximumbitrate)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCopyControl: GetCopyControl::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordCopyControl: GetRecordCopyControl::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbDigitalCopyControlDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbDigitalCopyControlDescriptor {}
windows_core::imp::define_interface!(IIsdbDownloadContentDescriptor, IIsdbDownloadContentDescriptor_Vtbl, 0x5298661e_cb88_4f5f_a1de_5f440c185b92);
windows_core::imp::interface_hierarchy!(IIsdbDownloadContentDescriptor, windows_core::IUnknown);
impl IIsdbDownloadContentDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetFlags(&self, pfreboot: *mut windows_core::BOOL, pfaddon: *mut windows_core::BOOL, pfcompatibility: *mut windows_core::BOOL, pfmoduleinfo: *mut windows_core::BOOL, pftextinfo: *mut windows_core::BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetFlags)(windows_core::Interface::as_raw(self), pfreboot as _, pfaddon as _, pfcompatibility as _, pfmoduleinfo as _, pftextinfo as _).ok() }
}
pub unsafe fn GetComponentSize(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetComponentSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDownloadId(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDownloadId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTimeOutValueDII(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTimeOutValueDII)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLeakRate(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLeakRate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetComponentTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetComponentTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCompatiblityDescriptorLength(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCompatiblityDescriptorLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCompatiblityDescriptor(&self) -> windows_core::Result<*mut u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCompatiblityDescriptor)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordModuleId(&self, wrecordindex: u16) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordModuleId)(windows_core::Interface::as_raw(self), wrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordModuleSize(&self, wrecordindex: u16) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordModuleSize)(windows_core::Interface::as_raw(self), wrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordModuleInfoLength(&self, wrecordindex: u16) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordModuleInfoLength)(windows_core::Interface::as_raw(self), wrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordModuleInfo(&self, wrecordindex: u16) -> windows_core::Result<*mut u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordModuleInfo)(windows_core::Interface::as_raw(self), wrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetTextLanguageCode(&self, szcode: &mut [u8; 4]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTextLanguageCode)(windows_core::Interface::as_raw(self), core::mem::transmute(szcode.as_ptr())).ok() }
}
pub unsafe fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTextW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbDownloadContentDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetFlags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL, *mut windows_core::BOOL, *mut windows_core::BOOL, *mut windows_core::BOOL, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub GetComponentSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDownloadId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTimeOutValueDII: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetLeakRate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetComponentTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCompatiblityDescriptorLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCompatiblityDescriptor: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetRecordModuleId: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *mut u16) -> windows_core::HRESULT,
pub GetRecordModuleSize: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *mut u32) -> windows_core::HRESULT,
pub GetRecordModuleInfoLength: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *mut u8) -> windows_core::HRESULT,
pub GetRecordModuleInfo: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *mut *mut u8) -> windows_core::HRESULT,
pub GetTextLanguageCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTextW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IIsdbDownloadContentDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetFlags(&self, pfreboot: *mut windows_core::BOOL, pfaddon: *mut windows_core::BOOL, pfcompatibility: *mut windows_core::BOOL, pfmoduleinfo: *mut windows_core::BOOL, pftextinfo: *mut windows_core::BOOL) -> windows_core::Result<()>;
fn GetComponentSize(&self) -> windows_core::Result<u32>;
fn GetDownloadId(&self) -> windows_core::Result<u32>;
fn GetTimeOutValueDII(&self) -> windows_core::Result<u32>;
fn GetLeakRate(&self) -> windows_core::Result<u32>;
fn GetComponentTag(&self) -> windows_core::Result<u8>;
fn GetCompatiblityDescriptorLength(&self) -> windows_core::Result<u16>;
fn GetCompatiblityDescriptor(&self) -> windows_core::Result<*mut u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u16>;
fn GetRecordModuleId(&self, wrecordindex: u16) -> windows_core::Result<u16>;
fn GetRecordModuleSize(&self, wrecordindex: u16) -> windows_core::Result<u32>;
fn GetRecordModuleInfoLength(&self, wrecordindex: u16) -> windows_core::Result<u8>;
fn GetRecordModuleInfo(&self, wrecordindex: u16) -> windows_core::Result<*mut u8>;
fn GetTextLanguageCode(&self, szcode: *mut u8) -> windows_core::Result<()>;
fn GetTextW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IIsdbDownloadContentDescriptor_Vtbl {
pub const fn new<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFlags<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfreboot: *mut windows_core::BOOL, pfaddon: *mut windows_core::BOOL, pfcompatibility: *mut windows_core::BOOL, pfmoduleinfo: *mut windows_core::BOOL, pftextinfo: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbDownloadContentDescriptor_Impl::GetFlags(this, core::mem::transmute_copy(&pfreboot), core::mem::transmute_copy(&pfaddon), core::mem::transmute_copy(&pfcompatibility), core::mem::transmute_copy(&pfmoduleinfo), core::mem::transmute_copy(&pftextinfo)).into()
}
}
unsafe extern "system" fn GetComponentSize<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetComponentSize(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDownloadId<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetDownloadId(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTimeOutValueDII<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetTimeOutValueDII(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLeakRate<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetLeakRate(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetComponentTag<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetComponentTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCompatiblityDescriptorLength<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwlength: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetCompatiblityDescriptorLength(this) {
Ok(ok__) => {
pwlength.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCompatiblityDescriptor<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppbdata: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetCompatiblityDescriptor(this) {
Ok(ok__) => {
ppbdata.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordModuleId<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, wrecordindex: u16, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetRecordModuleId(this, core::mem::transmute_copy(&wrecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordModuleSize<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, wrecordindex: u16, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetRecordModuleSize(this, core::mem::transmute_copy(&wrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordModuleInfoLength<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, wrecordindex: u16, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetRecordModuleInfoLength(this, core::mem::transmute_copy(&wrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordModuleInfo<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, wrecordindex: u16, ppbdata: *mut *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetRecordModuleInfo(this, core::mem::transmute_copy(&wrecordindex)) {
Ok(ok__) => {
ppbdata.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTextLanguageCode<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, szcode: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbDownloadContentDescriptor_Impl::GetTextLanguageCode(this, core::mem::transmute_copy(&szcode)).into()
}
}
unsafe extern "system" fn GetTextW<Identity: IIsdbDownloadContentDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbDownloadContentDescriptor_Impl::GetTextW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetFlags: GetFlags::<Identity, OFFSET>,
GetComponentSize: GetComponentSize::<Identity, OFFSET>,
GetDownloadId: GetDownloadId::<Identity, OFFSET>,
GetTimeOutValueDII: GetTimeOutValueDII::<Identity, OFFSET>,
GetLeakRate: GetLeakRate::<Identity, OFFSET>,
GetComponentTag: GetComponentTag::<Identity, OFFSET>,
GetCompatiblityDescriptorLength: GetCompatiblityDescriptorLength::<Identity, OFFSET>,
GetCompatiblityDescriptor: GetCompatiblityDescriptor::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordModuleId: GetRecordModuleId::<Identity, OFFSET>,
GetRecordModuleSize: GetRecordModuleSize::<Identity, OFFSET>,
GetRecordModuleInfoLength: GetRecordModuleInfoLength::<Identity, OFFSET>,
GetRecordModuleInfo: GetRecordModuleInfo::<Identity, OFFSET>,
GetTextLanguageCode: GetTextLanguageCode::<Identity, OFFSET>,
GetTextW: GetTextW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbDownloadContentDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbDownloadContentDescriptor {}
windows_core::imp::define_interface!(IIsdbEmergencyInformationDescriptor, IIsdbEmergencyInformationDescriptor_Vtbl, 0xba6fa681_b973_4da1_9207_ac3e7f0341eb);
windows_core::imp::interface_hierarchy!(IIsdbEmergencyInformationDescriptor, windows_core::IUnknown);
impl IIsdbEmergencyInformationDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetServiceId(&self, brecordindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceId)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetStartEndFlag(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStartEndFlag)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetSignalLevel(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSignalLevel)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetAreaCode(&self, brecordindex: u8, ppwval: *mut *mut u16, pbnumareacodes: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetAreaCode)(windows_core::Interface::as_raw(self), brecordindex, ppwval as _, pbnumareacodes as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbEmergencyInformationDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetServiceId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16) -> windows_core::HRESULT,
pub GetStartEndFlag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetSignalLevel: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetAreaCode: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut *mut u16, *mut u8) -> windows_core::HRESULT,
}
pub trait IIsdbEmergencyInformationDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetServiceId(&self, brecordindex: u8) -> windows_core::Result<u16>;
fn GetStartEndFlag(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetSignalLevel(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetAreaCode(&self, brecordindex: u8, ppwval: *mut *mut u16, pbnumareacodes: *mut u8) -> windows_core::Result<()>;
}
impl IIsdbEmergencyInformationDescriptor_Vtbl {
pub const fn new<Identity: IIsdbEmergencyInformationDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbEmergencyInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEmergencyInformationDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbEmergencyInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEmergencyInformationDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IIsdbEmergencyInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEmergencyInformationDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceId<Identity: IIsdbEmergencyInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEmergencyInformationDescriptor_Impl::GetServiceId(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetStartEndFlag<Identity: IIsdbEmergencyInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEmergencyInformationDescriptor_Impl::GetStartEndFlag(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSignalLevel<Identity: IIsdbEmergencyInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEmergencyInformationDescriptor_Impl::GetSignalLevel(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetAreaCode<Identity: IIsdbEmergencyInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, ppwval: *mut *mut u16, pbnumareacodes: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbEmergencyInformationDescriptor_Impl::GetAreaCode(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&ppwval), core::mem::transmute_copy(&pbnumareacodes)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetServiceId: GetServiceId::<Identity, OFFSET>,
GetStartEndFlag: GetStartEndFlag::<Identity, OFFSET>,
GetSignalLevel: GetSignalLevel::<Identity, OFFSET>,
GetAreaCode: GetAreaCode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbEmergencyInformationDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbEmergencyInformationDescriptor {}
windows_core::imp::define_interface!(IIsdbEventGroupDescriptor, IIsdbEventGroupDescriptor_Vtbl, 0x94b06780_2e2a_44dc_a966_cc56fdabc6c2);
windows_core::imp::interface_hierarchy!(IIsdbEventGroupDescriptor, windows_core::IUnknown);
impl IIsdbEventGroupDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetGroupType(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetGroupType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordEvent(&self, brecordindex: u8, pwserviceid: *mut u16, pweventid: *mut u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordEvent)(windows_core::Interface::as_raw(self), brecordindex, pwserviceid as _, pweventid as _).ok() }
}
pub unsafe fn GetCountOfRefRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRefRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRefRecordEvent(&self, brecordindex: u8, pworiginalnetworkid: *mut u16, pwtransportstreamid: *mut u16, pwserviceid: *mut u16, pweventid: *mut u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRefRecordEvent)(windows_core::Interface::as_raw(self), brecordindex, pworiginalnetworkid as _, pwtransportstreamid as _, pwserviceid as _, pweventid as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbEventGroupDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetGroupType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordEvent: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16, *mut u16) -> windows_core::HRESULT,
pub GetCountOfRefRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRefRecordEvent: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16, *mut u16, *mut u16, *mut u16) -> windows_core::HRESULT,
}
pub trait IIsdbEventGroupDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetGroupType(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordEvent(&self, brecordindex: u8, pwserviceid: *mut u16, pweventid: *mut u16) -> windows_core::Result<()>;
fn GetCountOfRefRecords(&self) -> windows_core::Result<u8>;
fn GetRefRecordEvent(&self, brecordindex: u8, pworiginalnetworkid: *mut u16, pwtransportstreamid: *mut u16, pwserviceid: *mut u16, pweventid: *mut u16) -> windows_core::Result<()>;
}
impl IIsdbEventGroupDescriptor_Vtbl {
pub const fn new<Identity: IIsdbEventGroupDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbEventGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEventGroupDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbEventGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEventGroupDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetGroupType<Identity: IIsdbEventGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEventGroupDescriptor_Impl::GetGroupType(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IIsdbEventGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEventGroupDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordEvent<Identity: IIsdbEventGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pwserviceid: *mut u16, pweventid: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbEventGroupDescriptor_Impl::GetRecordEvent(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&pwserviceid), core::mem::transmute_copy(&pweventid)).into()
}
}
unsafe extern "system" fn GetCountOfRefRecords<Identity: IIsdbEventGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbEventGroupDescriptor_Impl::GetCountOfRefRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRefRecordEvent<Identity: IIsdbEventGroupDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pworiginalnetworkid: *mut u16, pwtransportstreamid: *mut u16, pwserviceid: *mut u16, pweventid: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbEventGroupDescriptor_Impl::GetRefRecordEvent(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&pworiginalnetworkid), core::mem::transmute_copy(&pwtransportstreamid), core::mem::transmute_copy(&pwserviceid), core::mem::transmute_copy(&pweventid)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetGroupType: GetGroupType::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordEvent: GetRecordEvent::<Identity, OFFSET>,
GetCountOfRefRecords: GetCountOfRefRecords::<Identity, OFFSET>,
GetRefRecordEvent: GetRefRecordEvent::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbEventGroupDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbEventGroupDescriptor {}
windows_core::imp::define_interface!(IIsdbHierarchicalTransmissionDescriptor, IIsdbHierarchicalTransmissionDescriptor_Vtbl, 0xb7b3ae90_ee0b_446d_8769_f7e2aa266aa6);
windows_core::imp::interface_hierarchy!(IIsdbHierarchicalTransmissionDescriptor, windows_core::IUnknown);
impl IIsdbHierarchicalTransmissionDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetFutureUse1(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFutureUse1)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetQualityLevel(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetQualityLevel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetFutureUse2(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFutureUse2)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetReferencePid(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetReferencePid)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbHierarchicalTransmissionDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetFutureUse1: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetQualityLevel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetFutureUse2: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetReferencePid: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
}
pub trait IIsdbHierarchicalTransmissionDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetFutureUse1(&self) -> windows_core::Result<u8>;
fn GetQualityLevel(&self) -> windows_core::Result<u8>;
fn GetFutureUse2(&self) -> windows_core::Result<u8>;
fn GetReferencePid(&self) -> windows_core::Result<u16>;
}
impl IIsdbHierarchicalTransmissionDescriptor_Vtbl {
pub const fn new<Identity: IIsdbHierarchicalTransmissionDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbHierarchicalTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbHierarchicalTransmissionDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbHierarchicalTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbHierarchicalTransmissionDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFutureUse1<Identity: IIsdbHierarchicalTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbHierarchicalTransmissionDescriptor_Impl::GetFutureUse1(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetQualityLevel<Identity: IIsdbHierarchicalTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbHierarchicalTransmissionDescriptor_Impl::GetQualityLevel(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetFutureUse2<Identity: IIsdbHierarchicalTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbHierarchicalTransmissionDescriptor_Impl::GetFutureUse2(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetReferencePid<Identity: IIsdbHierarchicalTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbHierarchicalTransmissionDescriptor_Impl::GetReferencePid(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetFutureUse1: GetFutureUse1::<Identity, OFFSET>,
GetQualityLevel: GetQualityLevel::<Identity, OFFSET>,
GetFutureUse2: GetFutureUse2::<Identity, OFFSET>,
GetReferencePid: GetReferencePid::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbHierarchicalTransmissionDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbHierarchicalTransmissionDescriptor {}
windows_core::imp::define_interface!(IIsdbLogoTransmissionDescriptor, IIsdbLogoTransmissionDescriptor_Vtbl, 0xe0103f49_4ae1_4f07_9098_756db1fa88cd);
windows_core::imp::interface_hierarchy!(IIsdbLogoTransmissionDescriptor, windows_core::IUnknown);
impl IIsdbLogoTransmissionDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLogoTransmissionType(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogoTransmissionType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLogoId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogoId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLogoVersion(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogoVersion)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDownloadDataId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDownloadDataId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLogoCharW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogoCharW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbLogoTransmissionDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLogoTransmissionType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLogoId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetLogoVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetDownloadDataId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetLogoCharW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IIsdbLogoTransmissionDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetLogoTransmissionType(&self) -> windows_core::Result<u8>;
fn GetLogoId(&self) -> windows_core::Result<u16>;
fn GetLogoVersion(&self) -> windows_core::Result<u16>;
fn GetDownloadDataId(&self) -> windows_core::Result<u16>;
fn GetLogoCharW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IIsdbLogoTransmissionDescriptor_Vtbl {
pub const fn new<Identity: IIsdbLogoTransmissionDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbLogoTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbLogoTransmissionDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbLogoTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbLogoTransmissionDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLogoTransmissionType<Identity: IIsdbLogoTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbLogoTransmissionDescriptor_Impl::GetLogoTransmissionType(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLogoId<Identity: IIsdbLogoTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbLogoTransmissionDescriptor_Impl::GetLogoId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLogoVersion<Identity: IIsdbLogoTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbLogoTransmissionDescriptor_Impl::GetLogoVersion(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDownloadDataId<Identity: IIsdbLogoTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbLogoTransmissionDescriptor_Impl::GetDownloadDataId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLogoCharW<Identity: IIsdbLogoTransmissionDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrchar: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbLogoTransmissionDescriptor_Impl::GetLogoCharW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrchar.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetLogoTransmissionType: GetLogoTransmissionType::<Identity, OFFSET>,
GetLogoId: GetLogoId::<Identity, OFFSET>,
GetLogoVersion: GetLogoVersion::<Identity, OFFSET>,
GetDownloadDataId: GetDownloadDataId::<Identity, OFFSET>,
GetLogoCharW: GetLogoCharW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbLogoTransmissionDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbLogoTransmissionDescriptor {}
windows_core::imp::define_interface!(IIsdbSIParameterDescriptor, IIsdbSIParameterDescriptor_Vtbl, 0xf837dc36_867c_426a_9111_f62093951a45);
windows_core::imp::interface_hierarchy!(IIsdbSIParameterDescriptor, windows_core::IUnknown);
impl IIsdbSIParameterDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetParameterVersion(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetParameterVersion)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetUpdateTime(&self) -> windows_core::Result<MPEG_DATE> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetUpdateTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordNumberOfTable(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordNumberOfTable)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableId(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableId)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptionLength(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptionLength)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptionBytes(&self, brecordindex: u8, pbbufferlength: *mut u8, pbbuffer: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptionBytes)(windows_core::Interface::as_raw(self), brecordindex, pbbufferlength as _, pbbuffer as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbSIParameterDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetParameterVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetUpdateTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut MPEG_DATE) -> windows_core::HRESULT,
pub GetRecordNumberOfTable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTableId: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetTableDescriptionLength: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetTableDescriptionBytes: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IIsdbSIParameterDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetParameterVersion(&self) -> windows_core::Result<u8>;
fn GetUpdateTime(&self) -> windows_core::Result<MPEG_DATE>;
fn GetRecordNumberOfTable(&self) -> windows_core::Result<u8>;
fn GetTableId(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetTableDescriptionLength(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetTableDescriptionBytes(&self, brecordindex: u8, pbbufferlength: *mut u8, pbbuffer: *mut u8) -> windows_core::Result<()>;
}
impl IIsdbSIParameterDescriptor_Vtbl {
pub const fn new<Identity: IIsdbSIParameterDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbSIParameterDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSIParameterDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbSIParameterDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSIParameterDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetParameterVersion<Identity: IIsdbSIParameterDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSIParameterDescriptor_Impl::GetParameterVersion(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetUpdateTime<Identity: IIsdbSIParameterDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut MPEG_DATE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSIParameterDescriptor_Impl::GetUpdateTime(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordNumberOfTable<Identity: IIsdbSIParameterDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSIParameterDescriptor_Impl::GetRecordNumberOfTable(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableId<Identity: IIsdbSIParameterDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSIParameterDescriptor_Impl::GetTableId(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptionLength<Identity: IIsdbSIParameterDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSIParameterDescriptor_Impl::GetTableDescriptionLength(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptionBytes<Identity: IIsdbSIParameterDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbbufferlength: *mut u8, pbbuffer: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbSIParameterDescriptor_Impl::GetTableDescriptionBytes(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&pbbufferlength), core::mem::transmute_copy(&pbbuffer)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetParameterVersion: GetParameterVersion::<Identity, OFFSET>,
GetUpdateTime: GetUpdateTime::<Identity, OFFSET>,
GetRecordNumberOfTable: GetRecordNumberOfTable::<Identity, OFFSET>,
GetTableId: GetTableId::<Identity, OFFSET>,
GetTableDescriptionLength: GetTableDescriptionLength::<Identity, OFFSET>,
GetTableDescriptionBytes: GetTableDescriptionBytes::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbSIParameterDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbSIParameterDescriptor {}
windows_core::imp::define_interface!(IIsdbSeriesDescriptor, IIsdbSeriesDescriptor_Vtbl, 0x07ef6370_1660_4f26_87fc_614adab24b11);
windows_core::imp::interface_hierarchy!(IIsdbSeriesDescriptor, windows_core::IUnknown);
impl IIsdbSeriesDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSeriesId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSeriesId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRepeatLabel(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRepeatLabel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetProgramPattern(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProgramPattern)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetExpireDate(&self, pfvalid: *mut windows_core::BOOL, pmdtval: *mut MPEG_DATE_AND_TIME) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetExpireDate)(windows_core::Interface::as_raw(self), pfvalid as _, pmdtval as _).ok() }
}
pub unsafe fn GetEpisodeNumber(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEpisodeNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLastEpisodeNumber(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLastEpisodeNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSeriesNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSeriesNameW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbSeriesDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSeriesId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetRepeatLabel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetProgramPattern: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetExpireDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL, *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT,
pub GetEpisodeNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetLastEpisodeNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetSeriesNameW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IIsdbSeriesDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetSeriesId(&self) -> windows_core::Result<u16>;
fn GetRepeatLabel(&self) -> windows_core::Result<u8>;
fn GetProgramPattern(&self) -> windows_core::Result<u8>;
fn GetExpireDate(&self, pfvalid: *mut windows_core::BOOL, pmdtval: *mut MPEG_DATE_AND_TIME) -> windows_core::Result<()>;
fn GetEpisodeNumber(&self) -> windows_core::Result<u16>;
fn GetLastEpisodeNumber(&self) -> windows_core::Result<u16>;
fn GetSeriesNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
}
impl IIsdbSeriesDescriptor_Vtbl {
pub const fn new<Identity: IIsdbSeriesDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbSeriesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSeriesDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbSeriesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSeriesDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSeriesId<Identity: IIsdbSeriesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSeriesDescriptor_Impl::GetSeriesId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRepeatLabel<Identity: IIsdbSeriesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSeriesDescriptor_Impl::GetRepeatLabel(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetProgramPattern<Identity: IIsdbSeriesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSeriesDescriptor_Impl::GetProgramPattern(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetExpireDate<Identity: IIsdbSeriesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfvalid: *mut windows_core::BOOL, pmdtval: *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IIsdbSeriesDescriptor_Impl::GetExpireDate(this, core::mem::transmute_copy(&pfvalid), core::mem::transmute_copy(&pmdtval)).into()
}
}
unsafe extern "system" fn GetEpisodeNumber<Identity: IIsdbSeriesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSeriesDescriptor_Impl::GetEpisodeNumber(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLastEpisodeNumber<Identity: IIsdbSeriesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSeriesDescriptor_Impl::GetLastEpisodeNumber(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSeriesNameW<Identity: IIsdbSeriesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSeriesDescriptor_Impl::GetSeriesNameW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetSeriesId: GetSeriesId::<Identity, OFFSET>,
GetRepeatLabel: GetRepeatLabel::<Identity, OFFSET>,
GetProgramPattern: GetProgramPattern::<Identity, OFFSET>,
GetExpireDate: GetExpireDate::<Identity, OFFSET>,
GetEpisodeNumber: GetEpisodeNumber::<Identity, OFFSET>,
GetLastEpisodeNumber: GetLastEpisodeNumber::<Identity, OFFSET>,
GetSeriesNameW: GetSeriesNameW::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbSeriesDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbSeriesDescriptor {}
windows_core::imp::define_interface!(IIsdbSiParser2, IIsdbSiParser2_Vtbl, 0x900e4bb7_18cd_453f_98be_3be6aa211772);
impl core::ops::Deref for IIsdbSiParser2 {
type Target = IDvbSiParser2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IIsdbSiParser2, windows_core::IUnknown, IDvbSiParser, IDvbSiParser2);
impl IIsdbSiParser2 {
pub unsafe fn GetSDT(&self, tableid: u8, pwtransportstreamid: Option<*const u16>) -> windows_core::Result<IISDB_SDT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSDT)(windows_core::Interface::as_raw(self), tableid, pwtransportstreamid.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetBIT(&self, tableid: u8, pworiginalnetworkid: Option<*const u16>) -> windows_core::Result<IISDB_BIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBIT)(windows_core::Interface::as_raw(self), tableid, pworiginalnetworkid.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetNBIT(&self, tableid: u8, pworiginalnetworkid: Option<*const u16>) -> windows_core::Result<IISDB_NBIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNBIT)(windows_core::Interface::as_raw(self), tableid, pworiginalnetworkid.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetLDT(&self, tableid: u8, pworiginalserviceid: Option<*const u16>) -> windows_core::Result<IISDB_LDT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLDT)(windows_core::Interface::as_raw(self), tableid, pworiginalserviceid.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetSDTT(&self, tableid: u8, pwtableidext: Option<*const u16>) -> windows_core::Result<IISDB_SDTT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSDTT)(windows_core::Interface::as_raw(self), tableid, pwtableidext.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetCDT(&self, tableid: u8, bsectionnumber: u8, pwdownloaddataid: Option<*const u16>) -> windows_core::Result<IISDB_CDT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCDT)(windows_core::Interface::as_raw(self), tableid, bsectionnumber, pwdownloaddataid.unwrap_or(core::mem::zeroed()) as _, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetEMM(&self, pid: u16, wtableidext: u16) -> windows_core::Result<IISDB_EMM> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEMM)(windows_core::Interface::as_raw(self), pid, wtableidext, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbSiParser2_Vtbl {
pub base__: IDvbSiParser2_Vtbl,
pub GetSDT: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBIT: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNBIT: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetLDT: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetSDTT: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCDT: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, *const u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetEMM: unsafe extern "system" fn(*mut core::ffi::c_void, u16, u16, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IIsdbSiParser2_Impl: IDvbSiParser2_Impl {
fn GetSDT(&self, tableid: u8, pwtransportstreamid: *const u16) -> windows_core::Result<IISDB_SDT>;
fn GetBIT(&self, tableid: u8, pworiginalnetworkid: *const u16) -> windows_core::Result<IISDB_BIT>;
fn GetNBIT(&self, tableid: u8, pworiginalnetworkid: *const u16) -> windows_core::Result<IISDB_NBIT>;
fn GetLDT(&self, tableid: u8, pworiginalserviceid: *const u16) -> windows_core::Result<IISDB_LDT>;
fn GetSDTT(&self, tableid: u8, pwtableidext: *const u16) -> windows_core::Result<IISDB_SDTT>;
fn GetCDT(&self, tableid: u8, bsectionnumber: u8, pwdownloaddataid: *const u16) -> windows_core::Result<IISDB_CDT>;
fn GetEMM(&self, pid: u16, wtableidext: u16) -> windows_core::Result<IISDB_EMM>;
}
impl IIsdbSiParser2_Vtbl {
pub const fn new<Identity: IIsdbSiParser2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetSDT<Identity: IIsdbSiParser2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, pwtransportstreamid: *const u16, ppsdt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSiParser2_Impl::GetSDT(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&pwtransportstreamid)) {
Ok(ok__) => {
ppsdt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetBIT<Identity: IIsdbSiParser2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, pworiginalnetworkid: *const u16, ppbit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSiParser2_Impl::GetBIT(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&pworiginalnetworkid)) {
Ok(ok__) => {
ppbit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetNBIT<Identity: IIsdbSiParser2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, pworiginalnetworkid: *const u16, ppnbit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSiParser2_Impl::GetNBIT(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&pworiginalnetworkid)) {
Ok(ok__) => {
ppnbit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLDT<Identity: IIsdbSiParser2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, pworiginalserviceid: *const u16, ppldt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSiParser2_Impl::GetLDT(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&pworiginalserviceid)) {
Ok(ok__) => {
ppldt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSDTT<Identity: IIsdbSiParser2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, pwtableidext: *const u16, ppsdtt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSiParser2_Impl::GetSDTT(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&pwtableidext)) {
Ok(ok__) => {
ppsdtt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCDT<Identity: IIsdbSiParser2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tableid: u8, bsectionnumber: u8, pwdownloaddataid: *const u16, ppcdt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSiParser2_Impl::GetCDT(this, core::mem::transmute_copy(&tableid), core::mem::transmute_copy(&bsectionnumber), core::mem::transmute_copy(&pwdownloaddataid)) {
Ok(ok__) => {
ppcdt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEMM<Identity: IIsdbSiParser2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: u16, wtableidext: u16, ppemm: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbSiParser2_Impl::GetEMM(this, core::mem::transmute_copy(&pid), core::mem::transmute_copy(&wtableidext)) {
Ok(ok__) => {
ppemm.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IDvbSiParser2_Vtbl::new::<Identity, OFFSET>(),
GetSDT: GetSDT::<Identity, OFFSET>,
GetBIT: GetBIT::<Identity, OFFSET>,
GetNBIT: GetNBIT::<Identity, OFFSET>,
GetLDT: GetLDT::<Identity, OFFSET>,
GetSDTT: GetSDTT::<Identity, OFFSET>,
GetCDT: GetCDT::<Identity, OFFSET>,
GetEMM: GetEMM::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbSiParser2 as windows_core::Interface>::IID || iid == &<IDvbSiParser as windows_core::Interface>::IID || iid == &<IDvbSiParser2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbSiParser2 {}
windows_core::imp::define_interface!(IIsdbTSInformationDescriptor, IIsdbTSInformationDescriptor_Vtbl, 0xd7ad183e_38f5_4210_b55f_ec8d601bbd47);
windows_core::imp::interface_hierarchy!(IIsdbTSInformationDescriptor, windows_core::IUnknown);
impl IIsdbTSInformationDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRemoteControlKeyId(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRemoteControlKeyId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTSNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTSNameW)(windows_core::Interface::as_raw(self), convmode, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordTransmissionTypeInfo(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordTransmissionTypeInfo)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordNumberOfServices(&self, brecordindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordNumberOfServices)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordServiceIdByIndex(&self, brecordindex: u8, bserviceindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordServiceIdByIndex)(windows_core::Interface::as_raw(self), brecordindex, bserviceindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbTSInformationDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRemoteControlKeyId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTSNameW: unsafe extern "system" fn(*mut core::ffi::c_void, DVB_STRCONV_MODE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordTransmissionTypeInfo: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordNumberOfServices: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetRecordServiceIdByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, *mut u16) -> windows_core::HRESULT,
}
pub trait IIsdbTSInformationDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetRemoteControlKeyId(&self) -> windows_core::Result<u8>;
fn GetTSNameW(&self, convmode: DVB_STRCONV_MODE) -> windows_core::Result<windows_core::BSTR>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordTransmissionTypeInfo(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetRecordNumberOfServices(&self, brecordindex: u8) -> windows_core::Result<u8>;
fn GetRecordServiceIdByIndex(&self, brecordindex: u8, bserviceindex: u8) -> windows_core::Result<u16>;
}
impl IIsdbTSInformationDescriptor_Vtbl {
pub const fn new<Identity: IIsdbTSInformationDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbTSInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTSInformationDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbTSInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTSInformationDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRemoteControlKeyId<Identity: IIsdbTSInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTSInformationDescriptor_Impl::GetRemoteControlKeyId(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTSNameW<Identity: IIsdbTSInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, convmode: DVB_STRCONV_MODE, pbstrname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTSInformationDescriptor_Impl::GetTSNameW(this, core::mem::transmute_copy(&convmode)) {
Ok(ok__) => {
pbstrname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IIsdbTSInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTSInformationDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordTransmissionTypeInfo<Identity: IIsdbTSInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTSInformationDescriptor_Impl::GetRecordTransmissionTypeInfo(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordNumberOfServices<Identity: IIsdbTSInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTSInformationDescriptor_Impl::GetRecordNumberOfServices(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordServiceIdByIndex<Identity: IIsdbTSInformationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, bserviceindex: u8, pdwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTSInformationDescriptor_Impl::GetRecordServiceIdByIndex(this, core::mem::transmute_copy(&brecordindex), core::mem::transmute_copy(&bserviceindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetRemoteControlKeyId: GetRemoteControlKeyId::<Identity, OFFSET>,
GetTSNameW: GetTSNameW::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordTransmissionTypeInfo: GetRecordTransmissionTypeInfo::<Identity, OFFSET>,
GetRecordNumberOfServices: GetRecordNumberOfServices::<Identity, OFFSET>,
GetRecordServiceIdByIndex: GetRecordServiceIdByIndex::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbTSInformationDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbTSInformationDescriptor {}
windows_core::imp::define_interface!(IIsdbTerrestrialDeliverySystemDescriptor, IIsdbTerrestrialDeliverySystemDescriptor_Vtbl, 0x39fae0a6_d151_44dd_a28a_765de5991670);
windows_core::imp::interface_hierarchy!(IIsdbTerrestrialDeliverySystemDescriptor, windows_core::IUnknown);
impl IIsdbTerrestrialDeliverySystemDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetAreaCode(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAreaCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetGuardInterval(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetGuardInterval)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTransmissionMode(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTransmissionMode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordFrequency(&self, brecordindex: u8) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordFrequency)(windows_core::Interface::as_raw(self), brecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IIsdbTerrestrialDeliverySystemDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetAreaCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetGuardInterval: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetTransmissionMode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRecordFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32) -> windows_core::HRESULT,
}
pub trait IIsdbTerrestrialDeliverySystemDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u8>;
fn GetAreaCode(&self) -> windows_core::Result<u16>;
fn GetGuardInterval(&self) -> windows_core::Result<u8>;
fn GetTransmissionMode(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u8>;
fn GetRecordFrequency(&self, brecordindex: u8) -> windows_core::Result<u32>;
}
impl IIsdbTerrestrialDeliverySystemDescriptor_Vtbl {
pub const fn new<Identity: IIsdbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IIsdbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTerrestrialDeliverySystemDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IIsdbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTerrestrialDeliverySystemDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetAreaCode<Identity: IIsdbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTerrestrialDeliverySystemDescriptor_Impl::GetAreaCode(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetGuardInterval<Identity: IIsdbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTerrestrialDeliverySystemDescriptor_Impl::GetGuardInterval(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTransmissionMode<Identity: IIsdbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTerrestrialDeliverySystemDescriptor_Impl::GetTransmissionMode(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IIsdbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTerrestrialDeliverySystemDescriptor_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordFrequency<Identity: IIsdbTerrestrialDeliverySystemDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brecordindex: u8, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IIsdbTerrestrialDeliverySystemDescriptor_Impl::GetRecordFrequency(this, core::mem::transmute_copy(&brecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetAreaCode: GetAreaCode::<Identity, OFFSET>,
GetGuardInterval: GetGuardInterval::<Identity, OFFSET>,
GetTransmissionMode: GetTransmissionMode::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordFrequency: GetRecordFrequency::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IIsdbTerrestrialDeliverySystemDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IIsdbTerrestrialDeliverySystemDescriptor {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(ILanguageComponentType, ILanguageComponentType_Vtbl, 0xb874c8ba_0fa2_11d3_9d8e_00c04f72d980);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for ILanguageComponentType {
type Target = IComponentType;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(ILanguageComponentType, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IComponentType);
#[cfg(feature = "Win32_System_Com")]
impl ILanguageComponentType {
pub unsafe fn LangID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LangID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetLangID(&self, langid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetLangID)(windows_core::Interface::as_raw(self), langid).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct ILanguageComponentType_Vtbl {
pub base__: IComponentType_Vtbl,
pub LangID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetLangID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait ILanguageComponentType_Impl: IComponentType_Impl {
fn LangID(&self) -> windows_core::Result<i32>;
fn SetLangID(&self, langid: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ILanguageComponentType_Vtbl {
pub const fn new<Identity: ILanguageComponentType_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn LangID<Identity: ILanguageComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, langid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ILanguageComponentType_Impl::LangID(this) {
Ok(ok__) => {
langid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLangID<Identity: ILanguageComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, langid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ILanguageComponentType_Impl::SetLangID(this, core::mem::transmute_copy(&langid)).into()
}
}
Self { base__: IComponentType_Vtbl::new::<Identity, OFFSET>(), LangID: LangID::<Identity, OFFSET>, SetLangID: SetLangID::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ILanguageComponentType as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IComponentType as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for ILanguageComponentType {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(ILocator, ILocator_Vtbl, 0x286d7f89_760c_4f89_80c4_66841d2507aa);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for ILocator {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(ILocator, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl ILocator {
pub unsafe fn CarrierFrequency(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CarrierFrequency)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCarrierFrequency(&self, frequency: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCarrierFrequency)(windows_core::Interface::as_raw(self), frequency).ok() }
}
pub unsafe fn InnerFEC(&self) -> windows_core::Result<super::FECMethod> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).InnerFEC)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetInnerFEC(&self, fec: super::FECMethod) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetInnerFEC)(windows_core::Interface::as_raw(self), fec).ok() }
}
pub unsafe fn InnerFECRate(&self) -> windows_core::Result<super::BinaryConvolutionCodeRate> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).InnerFECRate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetInnerFECRate(&self, fec: super::BinaryConvolutionCodeRate) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetInnerFECRate)(windows_core::Interface::as_raw(self), fec).ok() }
}
pub unsafe fn OuterFEC(&self) -> windows_core::Result<super::FECMethod> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OuterFEC)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetOuterFEC(&self, fec: super::FECMethod) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetOuterFEC)(windows_core::Interface::as_raw(self), fec).ok() }
}
pub unsafe fn OuterFECRate(&self) -> windows_core::Result<super::BinaryConvolutionCodeRate> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OuterFECRate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetOuterFECRate(&self, fec: super::BinaryConvolutionCodeRate) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetOuterFECRate)(windows_core::Interface::as_raw(self), fec).ok() }
}
pub unsafe fn Modulation(&self) -> windows_core::Result<super::ModulationType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Modulation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetModulation(&self, modulation: super::ModulationType) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetModulation)(windows_core::Interface::as_raw(self), modulation).ok() }
}
pub unsafe fn SymbolRate(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SymbolRate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSymbolRate(&self, rate: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSymbolRate)(windows_core::Interface::as_raw(self), rate).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<ILocator> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct ILocator_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub CarrierFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetCarrierFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub InnerFEC: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::FECMethod) -> windows_core::HRESULT,
pub SetInnerFEC: unsafe extern "system" fn(*mut core::ffi::c_void, super::FECMethod) -> windows_core::HRESULT,
pub InnerFECRate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::BinaryConvolutionCodeRate) -> windows_core::HRESULT,
pub SetInnerFECRate: unsafe extern "system" fn(*mut core::ffi::c_void, super::BinaryConvolutionCodeRate) -> windows_core::HRESULT,
pub OuterFEC: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::FECMethod) -> windows_core::HRESULT,
pub SetOuterFEC: unsafe extern "system" fn(*mut core::ffi::c_void, super::FECMethod) -> windows_core::HRESULT,
pub OuterFECRate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::BinaryConvolutionCodeRate) -> windows_core::HRESULT,
pub SetOuterFECRate: unsafe extern "system" fn(*mut core::ffi::c_void, super::BinaryConvolutionCodeRate) -> windows_core::HRESULT,
pub Modulation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::ModulationType) -> windows_core::HRESULT,
pub SetModulation: unsafe extern "system" fn(*mut core::ffi::c_void, super::ModulationType) -> windows_core::HRESULT,
pub SymbolRate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetSymbolRate: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait ILocator_Impl: super::super::super::System::Com::IDispatch_Impl {
fn CarrierFrequency(&self) -> windows_core::Result<i32>;
fn SetCarrierFrequency(&self, frequency: i32) -> windows_core::Result<()>;
fn InnerFEC(&self) -> windows_core::Result<super::FECMethod>;
fn SetInnerFEC(&self, fec: super::FECMethod) -> windows_core::Result<()>;
fn InnerFECRate(&self) -> windows_core::Result<super::BinaryConvolutionCodeRate>;
fn SetInnerFECRate(&self, fec: super::BinaryConvolutionCodeRate) -> windows_core::Result<()>;
fn OuterFEC(&self) -> windows_core::Result<super::FECMethod>;
fn SetOuterFEC(&self, fec: super::FECMethod) -> windows_core::Result<()>;
fn OuterFECRate(&self) -> windows_core::Result<super::BinaryConvolutionCodeRate>;
fn SetOuterFECRate(&self, fec: super::BinaryConvolutionCodeRate) -> windows_core::Result<()>;
fn Modulation(&self) -> windows_core::Result<super::ModulationType>;
fn SetModulation(&self, modulation: super::ModulationType) -> windows_core::Result<()>;
fn SymbolRate(&self) -> windows_core::Result<i32>;
fn SetSymbolRate(&self, rate: i32) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<ILocator>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ILocator_Vtbl {
pub const fn new<Identity: ILocator_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CarrierFrequency<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, frequency: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ILocator_Impl::CarrierFrequency(this) {
Ok(ok__) => {
frequency.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCarrierFrequency<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, frequency: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ILocator_Impl::SetCarrierFrequency(this, core::mem::transmute_copy(&frequency)).into()
}
}
unsafe extern "system" fn InnerFEC<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: *mut super::FECMethod) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ILocator_Impl::InnerFEC(this) {
Ok(ok__) => {
fec.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetInnerFEC<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: super::FECMethod) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ILocator_Impl::SetInnerFEC(this, core::mem::transmute_copy(&fec)).into()
}
}
unsafe extern "system" fn InnerFECRate<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: *mut super::BinaryConvolutionCodeRate) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ILocator_Impl::InnerFECRate(this) {
Ok(ok__) => {
fec.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetInnerFECRate<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: super::BinaryConvolutionCodeRate) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ILocator_Impl::SetInnerFECRate(this, core::mem::transmute_copy(&fec)).into()
}
}
unsafe extern "system" fn OuterFEC<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: *mut super::FECMethod) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ILocator_Impl::OuterFEC(this) {
Ok(ok__) => {
fec.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetOuterFEC<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: super::FECMethod) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ILocator_Impl::SetOuterFEC(this, core::mem::transmute_copy(&fec)).into()
}
}
unsafe extern "system" fn OuterFECRate<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: *mut super::BinaryConvolutionCodeRate) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ILocator_Impl::OuterFECRate(this) {
Ok(ok__) => {
fec.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetOuterFECRate<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fec: super::BinaryConvolutionCodeRate) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ILocator_Impl::SetOuterFECRate(this, core::mem::transmute_copy(&fec)).into()
}
}
unsafe extern "system" fn Modulation<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, modulation: *mut super::ModulationType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ILocator_Impl::Modulation(this) {
Ok(ok__) => {
modulation.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetModulation<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, modulation: super::ModulationType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ILocator_Impl::SetModulation(this, core::mem::transmute_copy(&modulation)).into()
}
}
unsafe extern "system" fn SymbolRate<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rate: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ILocator_Impl::SymbolRate(this) {
Ok(ok__) => {
rate.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSymbolRate<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rate: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ILocator_Impl::SetSymbolRate(this, core::mem::transmute_copy(&rate)).into()
}
}
unsafe extern "system" fn Clone<Identity: ILocator_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newlocator: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ILocator_Impl::Clone(this) {
Ok(ok__) => {
newlocator.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
CarrierFrequency: CarrierFrequency::<Identity, OFFSET>,
SetCarrierFrequency: SetCarrierFrequency::<Identity, OFFSET>,
InnerFEC: InnerFEC::<Identity, OFFSET>,
SetInnerFEC: SetInnerFEC::<Identity, OFFSET>,
InnerFECRate: InnerFECRate::<Identity, OFFSET>,
SetInnerFECRate: SetInnerFECRate::<Identity, OFFSET>,
OuterFEC: OuterFEC::<Identity, OFFSET>,
SetOuterFEC: SetOuterFEC::<Identity, OFFSET>,
OuterFECRate: OuterFECRate::<Identity, OFFSET>,
SetOuterFECRate: SetOuterFECRate::<Identity, OFFSET>,
Modulation: Modulation::<Identity, OFFSET>,
SetModulation: SetModulation::<Identity, OFFSET>,
SymbolRate: SymbolRate::<Identity, OFFSET>,
SetSymbolRate: SetSymbolRate::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ILocator as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for ILocator {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMPEG2Component, IMPEG2Component_Vtbl, 0x1493e353_1eb6_473c_802d_8e6b8ec9d2a9);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMPEG2Component {
type Target = IComponent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMPEG2Component, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IComponent);
#[cfg(feature = "Win32_System_Com")]
impl IMPEG2Component {
pub unsafe fn PID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetPID(&self, pid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetPID)(windows_core::Interface::as_raw(self), pid).ok() }
}
pub unsafe fn PCRPID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PCRPID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetPCRPID(&self, pcrpid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetPCRPID)(windows_core::Interface::as_raw(self), pcrpid).ok() }
}
pub unsafe fn ProgramNumber(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ProgramNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetProgramNumber(&self, programnumber: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetProgramNumber)(windows_core::Interface::as_raw(self), programnumber).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMPEG2Component_Vtbl {
pub base__: IComponent_Vtbl,
pub PID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetPID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub PCRPID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetPCRPID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub ProgramNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetProgramNumber: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMPEG2Component_Impl: IComponent_Impl {
fn PID(&self) -> windows_core::Result<i32>;
fn SetPID(&self, pid: i32) -> windows_core::Result<()>;
fn PCRPID(&self) -> windows_core::Result<i32>;
fn SetPCRPID(&self, pcrpid: i32) -> windows_core::Result<()>;
fn ProgramNumber(&self) -> windows_core::Result<i32>;
fn SetProgramNumber(&self, programnumber: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMPEG2Component_Vtbl {
pub const fn new<Identity: IMPEG2Component_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn PID<Identity: IMPEG2Component_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMPEG2Component_Impl::PID(this) {
Ok(ok__) => {
pid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPID<Identity: IMPEG2Component_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2Component_Impl::SetPID(this, core::mem::transmute_copy(&pid)).into()
}
}
unsafe extern "system" fn PCRPID<Identity: IMPEG2Component_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pcrpid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMPEG2Component_Impl::PCRPID(this) {
Ok(ok__) => {
pcrpid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPCRPID<Identity: IMPEG2Component_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pcrpid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2Component_Impl::SetPCRPID(this, core::mem::transmute_copy(&pcrpid)).into()
}
}
unsafe extern "system" fn ProgramNumber<Identity: IMPEG2Component_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, programnumber: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMPEG2Component_Impl::ProgramNumber(this) {
Ok(ok__) => {
programnumber.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetProgramNumber<Identity: IMPEG2Component_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, programnumber: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2Component_Impl::SetProgramNumber(this, core::mem::transmute_copy(&programnumber)).into()
}
}
Self {
base__: IComponent_Vtbl::new::<Identity, OFFSET>(),
PID: PID::<Identity, OFFSET>,
SetPID: SetPID::<Identity, OFFSET>,
PCRPID: PCRPID::<Identity, OFFSET>,
SetPCRPID: SetPCRPID::<Identity, OFFSET>,
ProgramNumber: ProgramNumber::<Identity, OFFSET>,
SetProgramNumber: SetProgramNumber::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMPEG2Component as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IComponent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMPEG2Component {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMPEG2ComponentType, IMPEG2ComponentType_Vtbl, 0x2c073d84_b51c_48c9_aa9f_68971e1f6e38);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMPEG2ComponentType {
type Target = ILanguageComponentType;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMPEG2ComponentType, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IComponentType, ILanguageComponentType);
#[cfg(feature = "Win32_System_Com")]
impl IMPEG2ComponentType {
pub unsafe fn StreamType(&self) -> windows_core::Result<super::MPEG2StreamType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StreamType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetStreamType(&self, mp2streamtype: super::MPEG2StreamType) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetStreamType)(windows_core::Interface::as_raw(self), mp2streamtype).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMPEG2ComponentType_Vtbl {
pub base__: ILanguageComponentType_Vtbl,
pub StreamType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::MPEG2StreamType) -> windows_core::HRESULT,
pub SetStreamType: unsafe extern "system" fn(*mut core::ffi::c_void, super::MPEG2StreamType) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMPEG2ComponentType_Impl: ILanguageComponentType_Impl {
fn StreamType(&self) -> windows_core::Result<super::MPEG2StreamType>;
fn SetStreamType(&self, mp2streamtype: super::MPEG2StreamType) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMPEG2ComponentType_Vtbl {
pub const fn new<Identity: IMPEG2ComponentType_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn StreamType<Identity: IMPEG2ComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mp2streamtype: *mut super::MPEG2StreamType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMPEG2ComponentType_Impl::StreamType(this) {
Ok(ok__) => {
mp2streamtype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetStreamType<Identity: IMPEG2ComponentType_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mp2streamtype: super::MPEG2StreamType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2ComponentType_Impl::SetStreamType(this, core::mem::transmute_copy(&mp2streamtype)).into()
}
}
Self {
base__: ILanguageComponentType_Vtbl::new::<Identity, OFFSET>(),
StreamType: StreamType::<Identity, OFFSET>,
SetStreamType: SetStreamType::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMPEG2ComponentType as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IComponentType as windows_core::Interface>::IID || iid == &<ILanguageComponentType as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMPEG2ComponentType {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMPEG2TuneRequest, IMPEG2TuneRequest_Vtbl, 0xeb7d987f_8a01_42ad_b8ae_574deee44d1a);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMPEG2TuneRequest {
type Target = ITuneRequest;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMPEG2TuneRequest, windows_core::IUnknown, super::super::super::System::Com::IDispatch, ITuneRequest);
#[cfg(feature = "Win32_System_Com")]
impl IMPEG2TuneRequest {
pub unsafe fn TSID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TSID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetTSID(&self, tsid: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetTSID)(windows_core::Interface::as_raw(self), tsid).ok() }
}
pub unsafe fn ProgNo(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ProgNo)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetProgNo(&self, progno: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetProgNo)(windows_core::Interface::as_raw(self), progno).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMPEG2TuneRequest_Vtbl {
pub base__: ITuneRequest_Vtbl,
pub TSID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetTSID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub ProgNo: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetProgNo: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMPEG2TuneRequest_Impl: ITuneRequest_Impl {
fn TSID(&self) -> windows_core::Result<i32>;
fn SetTSID(&self, tsid: i32) -> windows_core::Result<()>;
fn ProgNo(&self) -> windows_core::Result<i32>;
fn SetProgNo(&self, progno: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMPEG2TuneRequest_Vtbl {
pub const fn new<Identity: IMPEG2TuneRequest_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn TSID<Identity: IMPEG2TuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tsid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMPEG2TuneRequest_Impl::TSID(this) {
Ok(ok__) => {
tsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTSID<Identity: IMPEG2TuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tsid: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2TuneRequest_Impl::SetTSID(this, core::mem::transmute_copy(&tsid)).into()
}
}
unsafe extern "system" fn ProgNo<Identity: IMPEG2TuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, progno: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMPEG2TuneRequest_Impl::ProgNo(this) {
Ok(ok__) => {
progno.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetProgNo<Identity: IMPEG2TuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, progno: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2TuneRequest_Impl::SetProgNo(this, core::mem::transmute_copy(&progno)).into()
}
}
Self {
base__: ITuneRequest_Vtbl::new::<Identity, OFFSET>(),
TSID: TSID::<Identity, OFFSET>,
SetTSID: SetTSID::<Identity, OFFSET>,
ProgNo: ProgNo::<Identity, OFFSET>,
SetProgNo: SetProgNo::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMPEG2TuneRequest as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<ITuneRequest as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMPEG2TuneRequest {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMPEG2TuneRequestFactory, IMPEG2TuneRequestFactory_Vtbl, 0x14e11abd_ee37_4893_9ea1_6964de933e39);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMPEG2TuneRequestFactory {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMPEG2TuneRequestFactory, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMPEG2TuneRequestFactory {
pub unsafe fn CreateTuneRequest<P0>(&self, tuningspace: P0) -> windows_core::Result<IMPEG2TuneRequest>
where
P0: windows_core::Param<ITuningSpace>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateTuneRequest)(windows_core::Interface::as_raw(self), tuningspace.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMPEG2TuneRequestFactory_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub CreateTuneRequest: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMPEG2TuneRequestFactory_Impl: super::super::super::System::Com::IDispatch_Impl {
fn CreateTuneRequest(&self, tuningspace: windows_core::Ref<ITuningSpace>) -> windows_core::Result<IMPEG2TuneRequest>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMPEG2TuneRequestFactory_Vtbl {
pub const fn new<Identity: IMPEG2TuneRequestFactory_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CreateTuneRequest<Identity: IMPEG2TuneRequestFactory_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tuningspace: *mut core::ffi::c_void, tunerequest: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMPEG2TuneRequestFactory_Impl::CreateTuneRequest(this, core::mem::transmute_copy(&tuningspace)) {
Ok(ok__) => {
tunerequest.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(), CreateTuneRequest: CreateTuneRequest::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMPEG2TuneRequestFactory as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMPEG2TuneRequestFactory {}
windows_core::imp::define_interface!(IMPEG2TuneRequestSupport, IMPEG2TuneRequestSupport_Vtbl, 0x1b9d5fc3_5bbc_4b6c_bb18_b9d10e3eeebf);
windows_core::imp::interface_hierarchy!(IMPEG2TuneRequestSupport, windows_core::IUnknown);
#[repr(C)]
#[doc(hidden)]
pub struct IMPEG2TuneRequestSupport_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
}
pub trait IMPEG2TuneRequestSupport_Impl: windows_core::IUnknownImpl {}
impl IMPEG2TuneRequestSupport_Vtbl {
pub const fn new<Identity: IMPEG2TuneRequestSupport_Impl, const OFFSET: isize>() -> Self {
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMPEG2TuneRequestSupport as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IMPEG2TuneRequestSupport {}
windows_core::imp::define_interface!(IMPEG2_TIF_CONTROL, IMPEG2_TIF_CONTROL_Vtbl, 0xf9bac2f9_4149_4916_b2ef_faa202326862);
windows_core::imp::interface_hierarchy!(IMPEG2_TIF_CONTROL, windows_core::IUnknown);
impl IMPEG2_TIF_CONTROL {
pub unsafe fn RegisterTIF<P0>(&self, punktif: P0, ppvregistrationcontext: *mut u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
unsafe { (windows_core::Interface::vtable(self).RegisterTIF)(windows_core::Interface::as_raw(self), punktif.param().abi(), ppvregistrationcontext as _).ok() }
}
pub unsafe fn UnregisterTIF(&self, pvregistrationcontext: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).UnregisterTIF)(windows_core::Interface::as_raw(self), pvregistrationcontext).ok() }
}
pub unsafe fn AddPIDs(&self, ulcpids: u32, pulpids: *const u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AddPIDs)(windows_core::Interface::as_raw(self), ulcpids, pulpids).ok() }
}
pub unsafe fn DeletePIDs(&self, ulcpids: u32, pulpids: *const u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).DeletePIDs)(windows_core::Interface::as_raw(self), ulcpids, pulpids).ok() }
}
pub unsafe fn GetPIDCount(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPIDCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetPIDs(&self, pulcpids: *mut u32, pulpids: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetPIDs)(windows_core::Interface::as_raw(self), pulcpids as _, pulpids as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMPEG2_TIF_CONTROL_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub RegisterTIF: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub UnregisterTIF: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub AddPIDs: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32) -> windows_core::HRESULT,
pub DeletePIDs: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32) -> windows_core::HRESULT,
pub GetPIDCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetPIDs: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
}
pub trait IMPEG2_TIF_CONTROL_Impl: windows_core::IUnknownImpl {
fn RegisterTIF(&self, punktif: windows_core::Ref<windows_core::IUnknown>, ppvregistrationcontext: *mut u32) -> windows_core::Result<()>;
fn UnregisterTIF(&self, pvregistrationcontext: u32) -> windows_core::Result<()>;
fn AddPIDs(&self, ulcpids: u32, pulpids: *const u32) -> windows_core::Result<()>;
fn DeletePIDs(&self, ulcpids: u32, pulpids: *const u32) -> windows_core::Result<()>;
fn GetPIDCount(&self) -> windows_core::Result<u32>;
fn GetPIDs(&self, pulcpids: *mut u32, pulpids: *mut u32) -> windows_core::Result<()>;
}
impl IMPEG2_TIF_CONTROL_Vtbl {
pub const fn new<Identity: IMPEG2_TIF_CONTROL_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn RegisterTIF<Identity: IMPEG2_TIF_CONTROL_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, punktif: *mut core::ffi::c_void, ppvregistrationcontext: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2_TIF_CONTROL_Impl::RegisterTIF(this, core::mem::transmute_copy(&punktif), core::mem::transmute_copy(&ppvregistrationcontext)).into()
}
}
unsafe extern "system" fn UnregisterTIF<Identity: IMPEG2_TIF_CONTROL_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pvregistrationcontext: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2_TIF_CONTROL_Impl::UnregisterTIF(this, core::mem::transmute_copy(&pvregistrationcontext)).into()
}
}
unsafe extern "system" fn AddPIDs<Identity: IMPEG2_TIF_CONTROL_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ulcpids: u32, pulpids: *const u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2_TIF_CONTROL_Impl::AddPIDs(this, core::mem::transmute_copy(&ulcpids), core::mem::transmute_copy(&pulpids)).into()
}
}
unsafe extern "system" fn DeletePIDs<Identity: IMPEG2_TIF_CONTROL_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ulcpids: u32, pulpids: *const u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2_TIF_CONTROL_Impl::DeletePIDs(this, core::mem::transmute_copy(&ulcpids), core::mem::transmute_copy(&pulpids)).into()
}
}
unsafe extern "system" fn GetPIDCount<Identity: IMPEG2_TIF_CONTROL_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pulcpids: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMPEG2_TIF_CONTROL_Impl::GetPIDCount(this) {
Ok(ok__) => {
pulcpids.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPIDs<Identity: IMPEG2_TIF_CONTROL_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pulcpids: *mut u32, pulpids: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMPEG2_TIF_CONTROL_Impl::GetPIDs(this, core::mem::transmute_copy(&pulcpids), core::mem::transmute_copy(&pulpids)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
RegisterTIF: RegisterTIF::<Identity, OFFSET>,
UnregisterTIF: UnregisterTIF::<Identity, OFFSET>,
AddPIDs: AddPIDs::<Identity, OFFSET>,
DeletePIDs: DeletePIDs::<Identity, OFFSET>,
GetPIDCount: GetPIDCount::<Identity, OFFSET>,
GetPIDs: GetPIDs::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMPEG2_TIF_CONTROL as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IMPEG2_TIF_CONTROL {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSEventBinder, IMSEventBinder_Vtbl, 0xc3a9f406_2222_436d_86d5_ba3229279efb);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSEventBinder {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSEventBinder, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSEventBinder {
pub unsafe fn Bind<P0>(&self, peventobject: P0, eventname: &windows_core::BSTR, eventhandler: &windows_core::BSTR) -> windows_core::Result<i32>
where
P0: windows_core::Param<super::super::super::System::Com::IDispatch>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Bind)(windows_core::Interface::as_raw(self), peventobject.param().abi(), core::mem::transmute_copy(eventname), core::mem::transmute_copy(eventhandler), &mut result__).map(|| result__)
}
}
pub unsafe fn Unbind(&self, cancelcookie: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Unbind)(windows_core::Interface::as_raw(self), cancelcookie).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSEventBinder_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Bind: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub Unbind: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSEventBinder_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Bind(&self, peventobject: windows_core::Ref<super::super::super::System::Com::IDispatch>, eventname: &windows_core::BSTR, eventhandler: &windows_core::BSTR) -> windows_core::Result<i32>;
fn Unbind(&self, cancelcookie: u32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSEventBinder_Vtbl {
pub const fn new<Identity: IMSEventBinder_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Bind<Identity: IMSEventBinder_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, peventobject: *mut core::ffi::c_void, eventname: *mut core::ffi::c_void, eventhandler: *mut core::ffi::c_void, cancelid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSEventBinder_Impl::Bind(this, core::mem::transmute_copy(&peventobject), core::mem::transmute(&eventname), core::mem::transmute(&eventhandler)) {
Ok(ok__) => {
cancelid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Unbind<Identity: IMSEventBinder_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, cancelcookie: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSEventBinder_Impl::Unbind(this, core::mem::transmute_copy(&cancelcookie)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Bind: Bind::<Identity, OFFSET>,
Unbind: Unbind::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSEventBinder as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSEventBinder {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidAnalogTuner, IMSVidAnalogTuner_Vtbl, 0x1c15d47e_911d_11d2_b632_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidAnalogTuner {
type Target = IMSVidTuner;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidAnalogTuner, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice, IMSVidVideoInputDevice, IMSVidTuner);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidAnalogTuner {
pub unsafe fn Channel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Channel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetChannel(&self, channel: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetChannel)(windows_core::Interface::as_raw(self), channel).ok() }
}
pub unsafe fn VideoFrequency(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VideoFrequency)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn AudioFrequency(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AudioFrequency)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn CountryCode(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CountryCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCountryCode(&self, lcc: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCountryCode)(windows_core::Interface::as_raw(self), lcc).ok() }
}
pub unsafe fn SAP(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SAP)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSAP(&self, fsapon: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSAP)(windows_core::Interface::as_raw(self), fsapon).ok() }
}
pub unsafe fn ChannelAvailable(&self, nchannel: i32, signalstrength: *mut i32) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ChannelAvailable)(windows_core::Interface::as_raw(self), nchannel, signalstrength as _, &mut result__).map(|| result__)
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidAnalogTuner_Vtbl {
pub base__: IMSVidTuner_Vtbl,
pub Channel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetChannel: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub VideoFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub AudioFrequency: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub CountryCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetCountryCode: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub SAP: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetSAP: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ChannelAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut i32, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidAnalogTuner_Impl: IMSVidTuner_Impl {
fn Channel(&self) -> windows_core::Result<i32>;
fn SetChannel(&self, channel: i32) -> windows_core::Result<()>;
fn VideoFrequency(&self) -> windows_core::Result<i32>;
fn AudioFrequency(&self) -> windows_core::Result<i32>;
fn CountryCode(&self) -> windows_core::Result<i32>;
fn SetCountryCode(&self, lcc: i32) -> windows_core::Result<()>;
fn SAP(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetSAP(&self, fsapon: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ChannelAvailable(&self, nchannel: i32, signalstrength: *mut i32) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidAnalogTuner_Vtbl {
pub const fn new<Identity: IMSVidAnalogTuner_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Channel<Identity: IMSVidAnalogTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, channel: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAnalogTuner_Impl::Channel(this) {
Ok(ok__) => {
channel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetChannel<Identity: IMSVidAnalogTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, channel: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAnalogTuner_Impl::SetChannel(this, core::mem::transmute_copy(&channel)).into()
}
}
unsafe extern "system" fn VideoFrequency<Identity: IMSVidAnalogTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcc: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAnalogTuner_Impl::VideoFrequency(this) {
Ok(ok__) => {
lcc.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn AudioFrequency<Identity: IMSVidAnalogTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcc: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAnalogTuner_Impl::AudioFrequency(this) {
Ok(ok__) => {
lcc.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CountryCode<Identity: IMSVidAnalogTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcc: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAnalogTuner_Impl::CountryCode(this) {
Ok(ok__) => {
lcc.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCountryCode<Identity: IMSVidAnalogTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcc: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAnalogTuner_Impl::SetCountryCode(this, core::mem::transmute_copy(&lcc)).into()
}
}
unsafe extern "system" fn SAP<Identity: IMSVidAnalogTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfsapon: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAnalogTuner_Impl::SAP(this) {
Ok(ok__) => {
pfsapon.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSAP<Identity: IMSVidAnalogTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fsapon: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAnalogTuner_Impl::SetSAP(this, core::mem::transmute_copy(&fsapon)).into()
}
}
unsafe extern "system" fn ChannelAvailable<Identity: IMSVidAnalogTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, nchannel: i32, signalstrength: *mut i32, fsignalpresent: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAnalogTuner_Impl::ChannelAvailable(this, core::mem::transmute_copy(&nchannel), core::mem::transmute_copy(&signalstrength)) {
Ok(ok__) => {
fsignalpresent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidTuner_Vtbl::new::<Identity, OFFSET>(),
Channel: Channel::<Identity, OFFSET>,
SetChannel: SetChannel::<Identity, OFFSET>,
VideoFrequency: VideoFrequency::<Identity, OFFSET>,
AudioFrequency: AudioFrequency::<Identity, OFFSET>,
CountryCode: CountryCode::<Identity, OFFSET>,
SetCountryCode: SetCountryCode::<Identity, OFFSET>,
SAP: SAP::<Identity, OFFSET>,
SetSAP: SetSAP::<Identity, OFFSET>,
ChannelAvailable: ChannelAvailable::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidAnalogTuner as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID || iid == &<IMSVidVideoInputDevice as windows_core::Interface>::IID || iid == &<IMSVidTuner as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidAnalogTuner {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidAnalogTuner2, IMSVidAnalogTuner2_Vtbl, 0x37647bf7_3dde_4cc8_a4dc_0d534d3d0037);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidAnalogTuner2 {
type Target = IMSVidAnalogTuner;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidAnalogTuner2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice, IMSVidVideoInputDevice, IMSVidTuner, IMSVidAnalogTuner);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidAnalogTuner2 {
pub unsafe fn TVFormats(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TVFormats)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn TunerModes(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TunerModes)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn NumAuxInputs(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NumAuxInputs)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidAnalogTuner2_Vtbl {
pub base__: IMSVidAnalogTuner_Vtbl,
pub TVFormats: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub TunerModes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub NumAuxInputs: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidAnalogTuner2_Impl: IMSVidAnalogTuner_Impl {
fn TVFormats(&self) -> windows_core::Result<i32>;
fn TunerModes(&self) -> windows_core::Result<i32>;
fn NumAuxInputs(&self) -> windows_core::Result<i32>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidAnalogTuner2_Vtbl {
pub const fn new<Identity: IMSVidAnalogTuner2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn TVFormats<Identity: IMSVidAnalogTuner2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, formats: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAnalogTuner2_Impl::TVFormats(this) {
Ok(ok__) => {
formats.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn TunerModes<Identity: IMSVidAnalogTuner2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, modes: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAnalogTuner2_Impl::TunerModes(this) {
Ok(ok__) => {
modes.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn NumAuxInputs<Identity: IMSVidAnalogTuner2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, inputs: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAnalogTuner2_Impl::NumAuxInputs(this) {
Ok(ok__) => {
inputs.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidAnalogTuner_Vtbl::new::<Identity, OFFSET>(),
TVFormats: TVFormats::<Identity, OFFSET>,
TunerModes: TunerModes::<Identity, OFFSET>,
NumAuxInputs: NumAuxInputs::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidAnalogTuner2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID || iid == &<IMSVidVideoInputDevice as windows_core::Interface>::IID || iid == &<IMSVidTuner as windows_core::Interface>::IID || iid == &<IMSVidAnalogTuner as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidAnalogTuner2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidAnalogTunerEvent, IMSVidAnalogTunerEvent_Vtbl, 0x1c15d486_911d_11d2_b632_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidAnalogTunerEvent {
type Target = IMSVidTunerEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidAnalogTunerEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidInputDeviceEvent, IMSVidTunerEvent);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidAnalogTunerEvent_Vtbl {
pub base__: IMSVidTunerEvent_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidAnalogTunerEvent_Impl: IMSVidTunerEvent_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidAnalogTunerEvent_Vtbl {
pub const fn new<Identity: IMSVidAnalogTunerEvent_Impl, const OFFSET: isize>() -> Self {
Self { base__: IMSVidTunerEvent_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidAnalogTunerEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidInputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidTunerEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidAnalogTunerEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidAudioRenderer, IMSVidAudioRenderer_Vtbl, 0x37b0353f_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidAudioRenderer {
type Target = IMSVidOutputDevice;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidAudioRenderer, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidOutputDevice);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidAudioRenderer {
pub unsafe fn SetVolume(&self, lvol: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetVolume)(windows_core::Interface::as_raw(self), lvol).ok() }
}
pub unsafe fn Volume(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Volume)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetBalance(&self, lbal: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBalance)(windows_core::Interface::as_raw(self), lbal).ok() }
}
pub unsafe fn Balance(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Balance)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidAudioRenderer_Vtbl {
pub base__: IMSVidOutputDevice_Vtbl,
pub SetVolume: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub Volume: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetBalance: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub Balance: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidAudioRenderer_Impl: IMSVidOutputDevice_Impl {
fn SetVolume(&self, lvol: i32) -> windows_core::Result<()>;
fn Volume(&self) -> windows_core::Result<i32>;
fn SetBalance(&self, lbal: i32) -> windows_core::Result<()>;
fn Balance(&self) -> windows_core::Result<i32>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidAudioRenderer_Vtbl {
pub const fn new<Identity: IMSVidAudioRenderer_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetVolume<Identity: IMSVidAudioRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lvol: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRenderer_Impl::SetVolume(this, core::mem::transmute_copy(&lvol)).into()
}
}
unsafe extern "system" fn Volume<Identity: IMSVidAudioRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lvol: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAudioRenderer_Impl::Volume(this) {
Ok(ok__) => {
lvol.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBalance<Identity: IMSVidAudioRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lbal: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRenderer_Impl::SetBalance(this, core::mem::transmute_copy(&lbal)).into()
}
}
unsafe extern "system" fn Balance<Identity: IMSVidAudioRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lbal: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAudioRenderer_Impl::Balance(this) {
Ok(ok__) => {
lbal.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidOutputDevice_Vtbl::new::<Identity, OFFSET>(),
SetVolume: SetVolume::<Identity, OFFSET>,
Volume: Volume::<Identity, OFFSET>,
SetBalance: SetBalance::<Identity, OFFSET>,
Balance: Balance::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidAudioRenderer as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidOutputDevice as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidAudioRenderer {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidAudioRendererDevices, IMSVidAudioRendererDevices_Vtbl, 0xc5702cd4_9b79_11d3_b654_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidAudioRendererDevices {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidAudioRendererDevices, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidAudioRendererDevices {
pub unsafe fn Count(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NewEnum)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn get_Item(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IMSVidAudioRenderer> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(v), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Add<P0>(&self, pdb: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidAudioRenderer>,
{
unsafe { (windows_core::Interface::vtable(self).Add)(windows_core::Interface::as_raw(self), pdb.param().abi()).ok() }
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Remove(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Remove)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(v)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidAudioRendererDevices_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub _NewEnum: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
_NewEnum: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub get_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
get_Item: usize,
pub Add: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Remove: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Remove: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidAudioRendererDevices_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> windows_core::Result<i32>;
fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn get_Item(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IMSVidAudioRenderer>;
fn Add(&self, pdb: windows_core::Ref<IMSVidAudioRenderer>) -> windows_core::Result<()>;
fn Remove(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidAudioRendererDevices_Vtbl {
pub const fn new<Identity: IMSVidAudioRendererDevices_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<Identity: IMSVidAudioRendererDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcount: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAudioRendererDevices_Impl::Count(this) {
Ok(ok__) => {
lcount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _NewEnum<Identity: IMSVidAudioRendererDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pd: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAudioRendererDevices_Impl::_NewEnum(this) {
Ok(ok__) => {
pd.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_Item<Identity: IMSVidAudioRendererDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: super::super::super::System::Variant::VARIANT, pdb: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidAudioRendererDevices_Impl::get_Item(this, core::mem::transmute(&v)) {
Ok(ok__) => {
pdb.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Add<Identity: IMSVidAudioRendererDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdb: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRendererDevices_Impl::Add(this, core::mem::transmute_copy(&pdb)).into()
}
}
unsafe extern "system" fn Remove<Identity: IMSVidAudioRendererDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRendererDevices_Impl::Remove(this, core::mem::transmute(&v)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
_NewEnum: _NewEnum::<Identity, OFFSET>,
get_Item: get_Item::<Identity, OFFSET>,
Add: Add::<Identity, OFFSET>,
Remove: Remove::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidAudioRendererDevices as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidAudioRendererDevices {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidAudioRendererEvent, IMSVidAudioRendererEvent_Vtbl, 0x37b03541_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidAudioRendererEvent {
type Target = IMSVidOutputDeviceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidAudioRendererEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent, IMSVidOutputDeviceEvent);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidAudioRendererEvent_Vtbl {
pub base__: IMSVidOutputDeviceEvent_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidAudioRendererEvent_Impl: IMSVidOutputDeviceEvent_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidAudioRendererEvent_Vtbl {
pub const fn new<Identity: IMSVidAudioRendererEvent_Impl, const OFFSET: isize>() -> Self {
Self { base__: IMSVidOutputDeviceEvent_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidAudioRendererEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidOutputDeviceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidAudioRendererEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidAudioRendererEvent2, IMSVidAudioRendererEvent2_Vtbl, 0xe3f55729_353b_4c43_a028_50f79aa9a907);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidAudioRendererEvent2 {
type Target = IMSVidAudioRendererEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidAudioRendererEvent2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent, IMSVidOutputDeviceEvent, IMSVidAudioRendererEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidAudioRendererEvent2 {
pub unsafe fn AVDecAudioDualMono(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AVDecAudioDualMono)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn AVAudioSampleRate(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AVAudioSampleRate)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn AVAudioChannelConfig(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AVAudioChannelConfig)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn AVAudioChannelCount(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AVAudioChannelCount)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn AVDecCommonMeanBitRate(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AVDecCommonMeanBitRate)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn AVDDSurroundMode(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AVDDSurroundMode)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn AVDecCommonInputFormat(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AVDecCommonInputFormat)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn AVDecCommonOutputFormat(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AVDecCommonOutputFormat)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidAudioRendererEvent2_Vtbl {
pub base__: IMSVidAudioRendererEvent_Vtbl,
pub AVDecAudioDualMono: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AVAudioSampleRate: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AVAudioChannelConfig: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AVAudioChannelCount: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AVDecCommonMeanBitRate: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AVDDSurroundMode: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AVDecCommonInputFormat: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AVDecCommonOutputFormat: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidAudioRendererEvent2_Impl: IMSVidAudioRendererEvent_Impl {
fn AVDecAudioDualMono(&self) -> windows_core::Result<()>;
fn AVAudioSampleRate(&self) -> windows_core::Result<()>;
fn AVAudioChannelConfig(&self) -> windows_core::Result<()>;
fn AVAudioChannelCount(&self) -> windows_core::Result<()>;
fn AVDecCommonMeanBitRate(&self) -> windows_core::Result<()>;
fn AVDDSurroundMode(&self) -> windows_core::Result<()>;
fn AVDecCommonInputFormat(&self) -> windows_core::Result<()>;
fn AVDecCommonOutputFormat(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidAudioRendererEvent2_Vtbl {
pub const fn new<Identity: IMSVidAudioRendererEvent2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn AVDecAudioDualMono<Identity: IMSVidAudioRendererEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRendererEvent2_Impl::AVDecAudioDualMono(this).into()
}
}
unsafe extern "system" fn AVAudioSampleRate<Identity: IMSVidAudioRendererEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRendererEvent2_Impl::AVAudioSampleRate(this).into()
}
}
unsafe extern "system" fn AVAudioChannelConfig<Identity: IMSVidAudioRendererEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRendererEvent2_Impl::AVAudioChannelConfig(this).into()
}
}
unsafe extern "system" fn AVAudioChannelCount<Identity: IMSVidAudioRendererEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRendererEvent2_Impl::AVAudioChannelCount(this).into()
}
}
unsafe extern "system" fn AVDecCommonMeanBitRate<Identity: IMSVidAudioRendererEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRendererEvent2_Impl::AVDecCommonMeanBitRate(this).into()
}
}
unsafe extern "system" fn AVDDSurroundMode<Identity: IMSVidAudioRendererEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRendererEvent2_Impl::AVDDSurroundMode(this).into()
}
}
unsafe extern "system" fn AVDecCommonInputFormat<Identity: IMSVidAudioRendererEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRendererEvent2_Impl::AVDecCommonInputFormat(this).into()
}
}
unsafe extern "system" fn AVDecCommonOutputFormat<Identity: IMSVidAudioRendererEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidAudioRendererEvent2_Impl::AVDecCommonOutputFormat(this).into()
}
}
Self {
base__: IMSVidAudioRendererEvent_Vtbl::new::<Identity, OFFSET>(),
AVDecAudioDualMono: AVDecAudioDualMono::<Identity, OFFSET>,
AVAudioSampleRate: AVAudioSampleRate::<Identity, OFFSET>,
AVAudioChannelConfig: AVAudioChannelConfig::<Identity, OFFSET>,
AVAudioChannelCount: AVAudioChannelCount::<Identity, OFFSET>,
AVDecCommonMeanBitRate: AVDecCommonMeanBitRate::<Identity, OFFSET>,
AVDDSurroundMode: AVDDSurroundMode::<Identity, OFFSET>,
AVDecCommonInputFormat: AVDecCommonInputFormat::<Identity, OFFSET>,
AVDecCommonOutputFormat: AVDecCommonOutputFormat::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidAudioRendererEvent2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidOutputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidAudioRendererEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidAudioRendererEvent2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidClosedCaptioning, IMSVidClosedCaptioning_Vtbl, 0x99652ea1_c1f7_414f_bb7b_1c967de75983);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidClosedCaptioning {
type Target = IMSVidFeature;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidClosedCaptioning, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidFeature);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidClosedCaptioning {
pub unsafe fn Enable(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Enable)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetEnable(&self, on: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetEnable)(windows_core::Interface::as_raw(self), on).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidClosedCaptioning_Vtbl {
pub base__: IMSVidFeature_Vtbl,
pub Enable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetEnable: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidClosedCaptioning_Impl: IMSVidFeature_Impl {
fn Enable(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetEnable(&self, on: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidClosedCaptioning_Vtbl {
pub const fn new<Identity: IMSVidClosedCaptioning_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Enable<Identity: IMSVidClosedCaptioning_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, on: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidClosedCaptioning_Impl::Enable(this) {
Ok(ok__) => {
on.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetEnable<Identity: IMSVidClosedCaptioning_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, on: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidClosedCaptioning_Impl::SetEnable(this, core::mem::transmute_copy(&on)).into()
}
}
Self { base__: IMSVidFeature_Vtbl::new::<Identity, OFFSET>(), Enable: Enable::<Identity, OFFSET>, SetEnable: SetEnable::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidClosedCaptioning as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidFeature as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidClosedCaptioning {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidClosedCaptioning2, IMSVidClosedCaptioning2_Vtbl, 0xe00cb864_a029_4310_9987_a873f5887d97);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidClosedCaptioning2 {
type Target = IMSVidClosedCaptioning;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidClosedCaptioning2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidFeature, IMSVidClosedCaptioning);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidClosedCaptioning2 {
pub unsafe fn Service(&self) -> windows_core::Result<MSVidCCService> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Service)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetService(&self, on: MSVidCCService) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetService)(windows_core::Interface::as_raw(self), on).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidClosedCaptioning2_Vtbl {
pub base__: IMSVidClosedCaptioning_Vtbl,
pub Service: unsafe extern "system" fn(*mut core::ffi::c_void, *mut MSVidCCService) -> windows_core::HRESULT,
pub SetService: unsafe extern "system" fn(*mut core::ffi::c_void, MSVidCCService) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidClosedCaptioning2_Impl: IMSVidClosedCaptioning_Impl {
fn Service(&self) -> windows_core::Result<MSVidCCService>;
fn SetService(&self, on: MSVidCCService) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidClosedCaptioning2_Vtbl {
pub const fn new<Identity: IMSVidClosedCaptioning2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Service<Identity: IMSVidClosedCaptioning2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, on: *mut MSVidCCService) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidClosedCaptioning2_Impl::Service(this) {
Ok(ok__) => {
on.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetService<Identity: IMSVidClosedCaptioning2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, on: MSVidCCService) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidClosedCaptioning2_Impl::SetService(this, core::mem::transmute_copy(&on)).into()
}
}
Self { base__: IMSVidClosedCaptioning_Vtbl::new::<Identity, OFFSET>(), Service: Service::<Identity, OFFSET>, SetService: SetService::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidClosedCaptioning2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidFeature as windows_core::Interface>::IID || iid == &<IMSVidClosedCaptioning as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidClosedCaptioning2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidClosedCaptioning3, IMSVidClosedCaptioning3_Vtbl, 0xc8638e8a_7625_4c51_9366_2f40a9831fc0);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidClosedCaptioning3 {
type Target = IMSVidClosedCaptioning2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidClosedCaptioning3, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidFeature, IMSVidClosedCaptioning, IMSVidClosedCaptioning2);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidClosedCaptioning3 {
pub unsafe fn TeleTextFilter(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TeleTextFilter)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidClosedCaptioning3_Vtbl {
pub base__: IMSVidClosedCaptioning2_Vtbl,
pub TeleTextFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidClosedCaptioning3_Impl: IMSVidClosedCaptioning2_Impl {
fn TeleTextFilter(&self) -> windows_core::Result<windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidClosedCaptioning3_Vtbl {
pub const fn new<Identity: IMSVidClosedCaptioning3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn TeleTextFilter<Identity: IMSVidClosedCaptioning3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, punkttfilter: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidClosedCaptioning3_Impl::TeleTextFilter(this) {
Ok(ok__) => {
punkttfilter.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: IMSVidClosedCaptioning2_Vtbl::new::<Identity, OFFSET>(), TeleTextFilter: TeleTextFilter::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidClosedCaptioning3 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidFeature as windows_core::Interface>::IID || iid == &<IMSVidClosedCaptioning as windows_core::Interface>::IID || iid == &<IMSVidClosedCaptioning2 as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidClosedCaptioning3 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidCompositionSegment, IMSVidCompositionSegment_Vtbl, 0x1c15d483_911d_11d2_b632_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidCompositionSegment {
type Target = IMSVidGraphSegment;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidCompositionSegment, windows_core::IUnknown, super::super::super::System::Com::IPersist, IMSVidGraphSegment);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidCompositionSegment {
pub unsafe fn Compose<P0, P1>(&self, upstream: P0, downstream: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidGraphSegment>,
P1: windows_core::Param<IMSVidGraphSegment>,
{
unsafe { (windows_core::Interface::vtable(self).Compose)(windows_core::Interface::as_raw(self), upstream.param().abi(), downstream.param().abi()).ok() }
}
pub unsafe fn Up(&self) -> windows_core::Result<IMSVidGraphSegment> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Up)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Down(&self) -> windows_core::Result<IMSVidGraphSegment> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Down)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidCompositionSegment_Vtbl {
pub base__: IMSVidGraphSegment_Vtbl,
pub Compose: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Up: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Down: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IMSVidCompositionSegment_Impl: IMSVidGraphSegment_Impl {
fn Compose(&self, upstream: windows_core::Ref<IMSVidGraphSegment>, downstream: windows_core::Ref<IMSVidGraphSegment>) -> windows_core::Result<()>;
fn Up(&self) -> windows_core::Result<IMSVidGraphSegment>;
fn Down(&self) -> windows_core::Result<IMSVidGraphSegment>;
}
#[cfg(feature = "Win32_System_Com")]
impl IMSVidCompositionSegment_Vtbl {
pub const fn new<Identity: IMSVidCompositionSegment_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Compose<Identity: IMSVidCompositionSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, upstream: *mut core::ffi::c_void, downstream: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCompositionSegment_Impl::Compose(this, core::mem::transmute_copy(&upstream), core::mem::transmute_copy(&downstream)).into()
}
}
unsafe extern "system" fn Up<Identity: IMSVidCompositionSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, upstream: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCompositionSegment_Impl::Up(this) {
Ok(ok__) => {
upstream.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Down<Identity: IMSVidCompositionSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, downstream: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCompositionSegment_Impl::Down(this) {
Ok(ok__) => {
downstream.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidGraphSegment_Vtbl::new::<Identity, OFFSET>(),
Compose: Compose::<Identity, OFFSET>,
Up: Up::<Identity, OFFSET>,
Down: Down::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidCompositionSegment as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IPersist as windows_core::Interface>::IID || iid == &<IMSVidGraphSegment as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IMSVidCompositionSegment {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidCtl, IMSVidCtl_Vtbl, 0xb0edf162_910a_11d2_b632_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidCtl {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidCtl, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidCtl {
pub unsafe fn AutoSize(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AutoSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetAutoSize(&self, vbool: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetAutoSize)(windows_core::Interface::as_raw(self), vbool).ok() }
}
pub unsafe fn BackColor(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).BackColor)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetBackColor(&self, backcolor: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBackColor)(windows_core::Interface::as_raw(self), backcolor).ok() }
}
pub unsafe fn Enabled(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Enabled)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetEnabled(&self, vbool: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetEnabled)(windows_core::Interface::as_raw(self), vbool).ok() }
}
pub unsafe fn TabStop(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TabStop)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetTabStop(&self, vbool: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetTabStop)(windows_core::Interface::as_raw(self), vbool).ok() }
}
pub unsafe fn Window(&self) -> windows_core::Result<super::super::super::Foundation::HWND> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Window)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Refresh(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Refresh)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn DisplaySize(&self) -> windows_core::Result<DisplaySizeList> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DisplaySize)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetDisplaySize(&self, newvalue: DisplaySizeList) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDisplaySize)(windows_core::Interface::as_raw(self), newvalue).ok() }
}
pub unsafe fn MaintainAspectRatio(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MaintainAspectRatio)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMaintainAspectRatio(&self, newvalue: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMaintainAspectRatio)(windows_core::Interface::as_raw(self), newvalue).ok() }
}
pub unsafe fn ColorKey(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ColorKey)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetColorKey(&self, newvalue: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetColorKey)(windows_core::Interface::as_raw(self), newvalue).ok() }
}
pub unsafe fn get_InputsAvailable(&self, categoryguid: &windows_core::BSTR) -> windows_core::Result<IMSVidInputDevices> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_InputsAvailable)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(categoryguid), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn get_OutputsAvailable(&self, categoryguid: &windows_core::BSTR) -> windows_core::Result<IMSVidOutputDevices> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_OutputsAvailable)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(categoryguid), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn get__InputsAvailable(&self, categoryguid: *const windows_core::GUID) -> windows_core::Result<IMSVidInputDevices> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get__InputsAvailable)(windows_core::Interface::as_raw(self), categoryguid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn get__OutputsAvailable(&self, categoryguid: *const windows_core::GUID) -> windows_core::Result<IMSVidOutputDevices> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get__OutputsAvailable)(windows_core::Interface::as_raw(self), categoryguid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn VideoRenderersAvailable(&self) -> windows_core::Result<IMSVidVideoRendererDevices> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VideoRenderersAvailable)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn AudioRenderersAvailable(&self) -> windows_core::Result<IMSVidAudioRendererDevices> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AudioRenderersAvailable)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn FeaturesAvailable(&self) -> windows_core::Result<IMSVidFeatures> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FeaturesAvailable)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn InputActive(&self) -> windows_core::Result<IMSVidInputDevice> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).InputActive)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetInputActive<P0>(&self, pval: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidInputDevice>,
{
unsafe { (windows_core::Interface::vtable(self).SetInputActive)(windows_core::Interface::as_raw(self), pval.param().abi()).ok() }
}
pub unsafe fn OutputsActive(&self) -> windows_core::Result<IMSVidOutputDevices> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OutputsActive)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetOutputsActive<P0>(&self, pval: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidOutputDevices>,
{
unsafe { (windows_core::Interface::vtable(self).SetOutputsActive)(windows_core::Interface::as_raw(self), pval.param().abi()).ok() }
}
pub unsafe fn VideoRendererActive(&self) -> windows_core::Result<IMSVidVideoRenderer> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VideoRendererActive)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetVideoRendererActive<P0>(&self, pval: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidVideoRenderer>,
{
unsafe { (windows_core::Interface::vtable(self).SetVideoRendererActive)(windows_core::Interface::as_raw(self), pval.param().abi()).ok() }
}
pub unsafe fn AudioRendererActive(&self) -> windows_core::Result<IMSVidAudioRenderer> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AudioRendererActive)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetAudioRendererActive<P0>(&self, pval: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidAudioRenderer>,
{
unsafe { (windows_core::Interface::vtable(self).SetAudioRendererActive)(windows_core::Interface::as_raw(self), pval.param().abi()).ok() }
}
pub unsafe fn FeaturesActive(&self) -> windows_core::Result<IMSVidFeatures> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FeaturesActive)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetFeaturesActive<P0>(&self, pval: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidFeatures>,
{
unsafe { (windows_core::Interface::vtable(self).SetFeaturesActive)(windows_core::Interface::as_raw(self), pval.param().abi()).ok() }
}
pub unsafe fn State(&self) -> windows_core::Result<MSVidCtlStateList> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).State)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn View(&self, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).View)(windows_core::Interface::as_raw(self), core::mem::transmute(v)).ok() }
}
pub unsafe fn Build(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Build)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Pause(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Pause)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Run(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Run)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Stop(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Stop)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Decompose(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Decompose)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn DisableVideo(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).DisableVideo)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn DisableAudio(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).DisableAudio)(windows_core::Interface::as_raw(self)).ok() }
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn ViewNext(&self, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ViewNext)(windows_core::Interface::as_raw(self), core::mem::transmute(v)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidCtl_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub AutoSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetAutoSize: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub BackColor: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetBackColor: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Enabled: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetEnabled: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub TabStop: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetTabStop: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub Window: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::HWND) -> windows_core::HRESULT,
pub Refresh: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DisplaySize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut DisplaySizeList) -> windows_core::HRESULT,
pub SetDisplaySize: unsafe extern "system" fn(*mut core::ffi::c_void, DisplaySizeList) -> windows_core::HRESULT,
pub MaintainAspectRatio: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetMaintainAspectRatio: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ColorKey: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetColorKey: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub get_InputsAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub get_OutputsAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub get__InputsAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub get__OutputsAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub VideoRenderersAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AudioRenderersAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FeaturesAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub InputActive: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInputActive: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub OutputsActive: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputsActive: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub VideoRendererActive: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetVideoRendererActive: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AudioRendererActive: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetAudioRendererActive: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FeaturesActive: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetFeaturesActive: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub State: unsafe extern "system" fn(*mut core::ffi::c_void, *mut MSVidCtlStateList) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub View: unsafe extern "system" fn(*mut core::ffi::c_void, *const super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
View: usize,
pub Build: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Pause: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Run: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Stop: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Decompose: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DisableVideo: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DisableAudio: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub ViewNext: unsafe extern "system" fn(*mut core::ffi::c_void, *const super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
ViewNext: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidCtl_Impl: super::super::super::System::Com::IDispatch_Impl {
fn AutoSize(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetAutoSize(&self, vbool: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn BackColor(&self) -> windows_core::Result<u32>;
fn SetBackColor(&self, backcolor: u32) -> windows_core::Result<()>;
fn Enabled(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetEnabled(&self, vbool: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn TabStop(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetTabStop(&self, vbool: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn Window(&self) -> windows_core::Result<super::super::super::Foundation::HWND>;
fn Refresh(&self) -> windows_core::Result<()>;
fn DisplaySize(&self) -> windows_core::Result<DisplaySizeList>;
fn SetDisplaySize(&self, newvalue: DisplaySizeList) -> windows_core::Result<()>;
fn MaintainAspectRatio(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetMaintainAspectRatio(&self, newvalue: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ColorKey(&self) -> windows_core::Result<u32>;
fn SetColorKey(&self, newvalue: u32) -> windows_core::Result<()>;
fn get_InputsAvailable(&self, categoryguid: &windows_core::BSTR) -> windows_core::Result<IMSVidInputDevices>;
fn get_OutputsAvailable(&self, categoryguid: &windows_core::BSTR) -> windows_core::Result<IMSVidOutputDevices>;
fn get__InputsAvailable(&self, categoryguid: *const windows_core::GUID) -> windows_core::Result<IMSVidInputDevices>;
fn get__OutputsAvailable(&self, categoryguid: *const windows_core::GUID) -> windows_core::Result<IMSVidOutputDevices>;
fn VideoRenderersAvailable(&self) -> windows_core::Result<IMSVidVideoRendererDevices>;
fn AudioRenderersAvailable(&self) -> windows_core::Result<IMSVidAudioRendererDevices>;
fn FeaturesAvailable(&self) -> windows_core::Result<IMSVidFeatures>;
fn InputActive(&self) -> windows_core::Result<IMSVidInputDevice>;
fn SetInputActive(&self, pval: windows_core::Ref<IMSVidInputDevice>) -> windows_core::Result<()>;
fn OutputsActive(&self) -> windows_core::Result<IMSVidOutputDevices>;
fn SetOutputsActive(&self, pval: windows_core::Ref<IMSVidOutputDevices>) -> windows_core::Result<()>;
fn VideoRendererActive(&self) -> windows_core::Result<IMSVidVideoRenderer>;
fn SetVideoRendererActive(&self, pval: windows_core::Ref<IMSVidVideoRenderer>) -> windows_core::Result<()>;
fn AudioRendererActive(&self) -> windows_core::Result<IMSVidAudioRenderer>;
fn SetAudioRendererActive(&self, pval: windows_core::Ref<IMSVidAudioRenderer>) -> windows_core::Result<()>;
fn FeaturesActive(&self) -> windows_core::Result<IMSVidFeatures>;
fn SetFeaturesActive(&self, pval: windows_core::Ref<IMSVidFeatures>) -> windows_core::Result<()>;
fn State(&self) -> windows_core::Result<MSVidCtlStateList>;
fn View(&self, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn Build(&self) -> windows_core::Result<()>;
fn Pause(&self) -> windows_core::Result<()>;
fn Run(&self) -> windows_core::Result<()>;
fn Stop(&self) -> windows_core::Result<()>;
fn Decompose(&self) -> windows_core::Result<()>;
fn DisableVideo(&self) -> windows_core::Result<()>;
fn DisableAudio(&self) -> windows_core::Result<()>;
fn ViewNext(&self, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidCtl_Vtbl {
pub const fn new<Identity: IMSVidCtl_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn AutoSize<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbool: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::AutoSize(this) {
Ok(ok__) => {
pbool.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAutoSize<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, vbool: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetAutoSize(this, core::mem::transmute_copy(&vbool)).into()
}
}
unsafe extern "system" fn BackColor<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, backcolor: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::BackColor(this) {
Ok(ok__) => {
backcolor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBackColor<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, backcolor: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetBackColor(this, core::mem::transmute_copy(&backcolor)).into()
}
}
unsafe extern "system" fn Enabled<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbool: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::Enabled(this) {
Ok(ok__) => {
pbool.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetEnabled<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, vbool: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetEnabled(this, core::mem::transmute_copy(&vbool)).into()
}
}
unsafe extern "system" fn TabStop<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbool: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::TabStop(this) {
Ok(ok__) => {
pbool.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTabStop<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, vbool: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetTabStop(this, core::mem::transmute_copy(&vbool)).into()
}
}
unsafe extern "system" fn Window<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, phwnd: *mut super::super::super::Foundation::HWND) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::Window(this) {
Ok(ok__) => {
phwnd.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Refresh<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::Refresh(this).into()
}
}
unsafe extern "system" fn DisplaySize<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentvalue: *mut DisplaySizeList) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::DisplaySize(this) {
Ok(ok__) => {
currentvalue.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDisplaySize<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newvalue: DisplaySizeList) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetDisplaySize(this, core::mem::transmute_copy(&newvalue)).into()
}
}
unsafe extern "system" fn MaintainAspectRatio<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentvalue: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::MaintainAspectRatio(this) {
Ok(ok__) => {
currentvalue.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMaintainAspectRatio<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newvalue: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetMaintainAspectRatio(this, core::mem::transmute_copy(&newvalue)).into()
}
}
unsafe extern "system" fn ColorKey<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentvalue: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::ColorKey(this) {
Ok(ok__) => {
currentvalue.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetColorKey<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newvalue: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetColorKey(this, core::mem::transmute_copy(&newvalue)).into()
}
}
unsafe extern "system" fn get_InputsAvailable<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, categoryguid: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::get_InputsAvailable(this, core::mem::transmute(&categoryguid)) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_OutputsAvailable<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, categoryguid: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::get_OutputsAvailable(this, core::mem::transmute(&categoryguid)) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get__InputsAvailable<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, categoryguid: *const windows_core::GUID, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::get__InputsAvailable(this, core::mem::transmute_copy(&categoryguid)) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get__OutputsAvailable<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, categoryguid: *const windows_core::GUID, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::get__OutputsAvailable(this, core::mem::transmute_copy(&categoryguid)) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn VideoRenderersAvailable<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::VideoRenderersAvailable(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn AudioRenderersAvailable<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::AudioRenderersAvailable(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn FeaturesAvailable<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::FeaturesAvailable(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn InputActive<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::InputActive(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetInputActive<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetInputActive(this, core::mem::transmute_copy(&pval)).into()
}
}
unsafe extern "system" fn OutputsActive<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::OutputsActive(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetOutputsActive<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetOutputsActive(this, core::mem::transmute_copy(&pval)).into()
}
}
unsafe extern "system" fn VideoRendererActive<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::VideoRendererActive(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetVideoRendererActive<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetVideoRendererActive(this, core::mem::transmute_copy(&pval)).into()
}
}
unsafe extern "system" fn AudioRendererActive<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::AudioRendererActive(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAudioRendererActive<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetAudioRendererActive(this, core::mem::transmute_copy(&pval)).into()
}
}
unsafe extern "system" fn FeaturesActive<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::FeaturesActive(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetFeaturesActive<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::SetFeaturesActive(this, core::mem::transmute_copy(&pval)).into()
}
}
unsafe extern "system" fn State<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lstate: *mut MSVidCtlStateList) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidCtl_Impl::State(this) {
Ok(ok__) => {
lstate.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn View<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::View(this, core::mem::transmute_copy(&v)).into()
}
}
unsafe extern "system" fn Build<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::Build(this).into()
}
}
unsafe extern "system" fn Pause<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::Pause(this).into()
}
}
unsafe extern "system" fn Run<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::Run(this).into()
}
}
unsafe extern "system" fn Stop<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::Stop(this).into()
}
}
unsafe extern "system" fn Decompose<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::Decompose(this).into()
}
}
unsafe extern "system" fn DisableVideo<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::DisableVideo(this).into()
}
}
unsafe extern "system" fn DisableAudio<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::DisableAudio(this).into()
}
}
unsafe extern "system" fn ViewNext<Identity: IMSVidCtl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidCtl_Impl::ViewNext(this, core::mem::transmute_copy(&v)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
AutoSize: AutoSize::<Identity, OFFSET>,
SetAutoSize: SetAutoSize::<Identity, OFFSET>,
BackColor: BackColor::<Identity, OFFSET>,
SetBackColor: SetBackColor::<Identity, OFFSET>,
Enabled: Enabled::<Identity, OFFSET>,
SetEnabled: SetEnabled::<Identity, OFFSET>,
TabStop: TabStop::<Identity, OFFSET>,
SetTabStop: SetTabStop::<Identity, OFFSET>,
Window: Window::<Identity, OFFSET>,
Refresh: Refresh::<Identity, OFFSET>,
DisplaySize: DisplaySize::<Identity, OFFSET>,
SetDisplaySize: SetDisplaySize::<Identity, OFFSET>,
MaintainAspectRatio: MaintainAspectRatio::<Identity, OFFSET>,
SetMaintainAspectRatio: SetMaintainAspectRatio::<Identity, OFFSET>,
ColorKey: ColorKey::<Identity, OFFSET>,
SetColorKey: SetColorKey::<Identity, OFFSET>,
get_InputsAvailable: get_InputsAvailable::<Identity, OFFSET>,
get_OutputsAvailable: get_OutputsAvailable::<Identity, OFFSET>,
get__InputsAvailable: get__InputsAvailable::<Identity, OFFSET>,
get__OutputsAvailable: get__OutputsAvailable::<Identity, OFFSET>,
VideoRenderersAvailable: VideoRenderersAvailable::<Identity, OFFSET>,
AudioRenderersAvailable: AudioRenderersAvailable::<Identity, OFFSET>,
FeaturesAvailable: FeaturesAvailable::<Identity, OFFSET>,
InputActive: InputActive::<Identity, OFFSET>,
SetInputActive: SetInputActive::<Identity, OFFSET>,
OutputsActive: OutputsActive::<Identity, OFFSET>,
SetOutputsActive: SetOutputsActive::<Identity, OFFSET>,
VideoRendererActive: VideoRendererActive::<Identity, OFFSET>,
SetVideoRendererActive: SetVideoRendererActive::<Identity, OFFSET>,
AudioRendererActive: AudioRendererActive::<Identity, OFFSET>,
SetAudioRendererActive: SetAudioRendererActive::<Identity, OFFSET>,
FeaturesActive: FeaturesActive::<Identity, OFFSET>,
SetFeaturesActive: SetFeaturesActive::<Identity, OFFSET>,
State: State::<Identity, OFFSET>,
View: View::<Identity, OFFSET>,
Build: Build::<Identity, OFFSET>,
Pause: Pause::<Identity, OFFSET>,
Run: Run::<Identity, OFFSET>,
Stop: Stop::<Identity, OFFSET>,
Decompose: Decompose::<Identity, OFFSET>,
DisableVideo: DisableVideo::<Identity, OFFSET>,
DisableAudio: DisableAudio::<Identity, OFFSET>,
ViewNext: ViewNext::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidCtl as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidCtl {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidDataServices, IMSVidDataServices_Vtbl, 0x334125c1_77e5_11d3_b653_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidDataServices {
type Target = IMSVidFeature;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidDataServices, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidFeature);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidDataServices_Vtbl {
pub base__: IMSVidFeature_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidDataServices_Impl: IMSVidFeature_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidDataServices_Vtbl {
pub const fn new<Identity: IMSVidDataServices_Impl, const OFFSET: isize>() -> Self {
Self { base__: IMSVidFeature_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidDataServices as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidFeature as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidDataServices {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidDataServicesEvent, IMSVidDataServicesEvent_Vtbl, 0x334125c2_77e5_11d3_b653_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidDataServicesEvent {
type Target = IMSVidDeviceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidDataServicesEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidDataServicesEvent_Vtbl {
pub base__: IMSVidDeviceEvent_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidDataServicesEvent_Impl: IMSVidDeviceEvent_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidDataServicesEvent_Vtbl {
pub const fn new<Identity: IMSVidDataServicesEvent_Impl, const OFFSET: isize>() -> Self {
Self { base__: IMSVidDeviceEvent_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidDataServicesEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidDataServicesEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidDevice, IMSVidDevice_Vtbl, 0x1c15d47c_911d_11d2_b632_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidDevice {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidDevice, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidDevice {
pub unsafe fn Name(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Name)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn Status(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Status)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetPower(&self, power: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetPower)(windows_core::Interface::as_raw(self), power).ok() }
}
pub unsafe fn Power(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Power)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Category(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Category)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn ClassID(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ClassID)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn _Category(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._Category)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn _ClassID(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._ClassID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn IsEqualDevice<P0>(&self, device: P0) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>
where
P0: windows_core::Param<IMSVidDevice>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsEqualDevice)(windows_core::Interface::as_raw(self), device.param().abi(), &mut result__).map(|| result__)
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidDevice_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Name: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Status: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetPower: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub Power: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub Category: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub ClassID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub _Category: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub _ClassID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub IsEqualDevice: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidDevice_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Name(&self) -> windows_core::Result<windows_core::BSTR>;
fn Status(&self) -> windows_core::Result<i32>;
fn SetPower(&self, power: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn Power(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn Category(&self) -> windows_core::Result<windows_core::BSTR>;
fn ClassID(&self) -> windows_core::Result<windows_core::BSTR>;
fn _Category(&self) -> windows_core::Result<windows_core::GUID>;
fn _ClassID(&self) -> windows_core::Result<windows_core::GUID>;
fn IsEqualDevice(&self, device: windows_core::Ref<IMSVidDevice>) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidDevice_Vtbl {
pub const fn new<Identity: IMSVidDevice_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Name<Identity: IMSVidDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, name: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidDevice_Impl::Name(this) {
Ok(ok__) => {
name.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Status<Identity: IMSVidDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, status: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidDevice_Impl::Status(this) {
Ok(ok__) => {
status.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPower<Identity: IMSVidDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, power: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidDevice_Impl::SetPower(this, core::mem::transmute_copy(&power)).into()
}
}
unsafe extern "system" fn Power<Identity: IMSVidDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, power: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidDevice_Impl::Power(this) {
Ok(ok__) => {
power.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Category<Identity: IMSVidDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guid: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidDevice_Impl::Category(this) {
Ok(ok__) => {
guid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ClassID<Identity: IMSVidDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, clsid: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidDevice_Impl::ClassID(this) {
Ok(ok__) => {
clsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _Category<Identity: IMSVidDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidDevice_Impl::_Category(this) {
Ok(ok__) => {
guid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _ClassID<Identity: IMSVidDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, clsid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidDevice_Impl::_ClassID(this) {
Ok(ok__) => {
clsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn IsEqualDevice<Identity: IMSVidDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, device: *mut core::ffi::c_void, isequal: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidDevice_Impl::IsEqualDevice(this, core::mem::transmute_copy(&device)) {
Ok(ok__) => {
isequal.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Name: Name::<Identity, OFFSET>,
Status: Status::<Identity, OFFSET>,
SetPower: SetPower::<Identity, OFFSET>,
Power: Power::<Identity, OFFSET>,
Category: Category::<Identity, OFFSET>,
ClassID: ClassID::<Identity, OFFSET>,
_Category: _Category::<Identity, OFFSET>,
_ClassID: _ClassID::<Identity, OFFSET>,
IsEqualDevice: IsEqualDevice::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidDevice {}
windows_core::imp::define_interface!(IMSVidDevice2, IMSVidDevice2_Vtbl, 0x87bd2783_ebc0_478c_b4a0_e8e7f43ab78e);
windows_core::imp::interface_hierarchy!(IMSVidDevice2, windows_core::IUnknown);
impl IMSVidDevice2 {
pub unsafe fn DevicePath(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DevicePath)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidDevice2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub DevicePath: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IMSVidDevice2_Impl: windows_core::IUnknownImpl {
fn DevicePath(&self) -> windows_core::Result<windows_core::BSTR>;
}
impl IMSVidDevice2_Vtbl {
pub const fn new<Identity: IMSVidDevice2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn DevicePath<Identity: IMSVidDevice2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, devpath: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidDevice2_Impl::DevicePath(this) {
Ok(ok__) => {
devpath.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), DevicePath: DevicePath::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidDevice2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IMSVidDevice2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidDeviceEvent, IMSVidDeviceEvent_Vtbl, 0x1c15d480_911d_11d2_b632_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidDeviceEvent {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidDeviceEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidDeviceEvent {
pub unsafe fn StateChange<P0>(&self, lpd: P0, oldstate: i32, newstate: i32) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidDevice>,
{
unsafe { (windows_core::Interface::vtable(self).StateChange)(windows_core::Interface::as_raw(self), lpd.param().abi(), oldstate, newstate).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidDeviceEvent_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub StateChange: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, i32, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidDeviceEvent_Impl: super::super::super::System::Com::IDispatch_Impl {
fn StateChange(&self, lpd: windows_core::Ref<IMSVidDevice>, oldstate: i32, newstate: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidDeviceEvent_Vtbl {
pub const fn new<Identity: IMSVidDeviceEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn StateChange<Identity: IMSVidDeviceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lpd: *mut core::ffi::c_void, oldstate: i32, newstate: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidDeviceEvent_Impl::StateChange(this, core::mem::transmute_copy(&lpd), core::mem::transmute_copy(&oldstate), core::mem::transmute_copy(&newstate)).into()
}
}
Self { base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(), StateChange: StateChange::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidDeviceEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidEVR, IMSVidEVR_Vtbl, 0x15e496ae_82a8_4cf9_a6b6_c561dc60398f);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidEVR {
type Target = IMSVidVideoRenderer;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidEVR, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidOutputDevice, IMSVidVideoRenderer);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidEVR {
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub unsafe fn Presenter(&self) -> windows_core::Result<super::super::MediaFoundation::IMFVideoPresenter> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Presenter)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub unsafe fn SetPresenter<P0>(&self, pallocpresent: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<super::super::MediaFoundation::IMFVideoPresenter>,
{
unsafe { (windows_core::Interface::vtable(self).SetPresenter)(windows_core::Interface::as_raw(self), pallocpresent.param().abi()).ok() }
}
pub unsafe fn SetSuppressEffects(&self, bsuppress: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSuppressEffects)(windows_core::Interface::as_raw(self), bsuppress).ok() }
}
pub unsafe fn SuppressEffects(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SuppressEffects)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidEVR_Vtbl {
pub base__: IMSVidVideoRenderer_Vtbl,
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub Presenter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_Media_MediaFoundation"))]
Presenter: usize,
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub SetPresenter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_Media_MediaFoundation"))]
SetPresenter: usize,
pub SetSuppressEffects: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SuppressEffects: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidEVR_Impl: IMSVidVideoRenderer_Impl {
fn Presenter(&self) -> windows_core::Result<super::super::MediaFoundation::IMFVideoPresenter>;
fn SetPresenter(&self, pallocpresent: windows_core::Ref<super::super::MediaFoundation::IMFVideoPresenter>) -> windows_core::Result<()>;
fn SetSuppressEffects(&self, bsuppress: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn SuppressEffects(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidEVR_Vtbl {
pub const fn new<Identity: IMSVidEVR_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Presenter<Identity: IMSVidEVR_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppallocpresent: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidEVR_Impl::Presenter(this) {
Ok(ok__) => {
ppallocpresent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPresenter<Identity: IMSVidEVR_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pallocpresent: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidEVR_Impl::SetPresenter(this, core::mem::transmute_copy(&pallocpresent)).into()
}
}
unsafe extern "system" fn SetSuppressEffects<Identity: IMSVidEVR_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bsuppress: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidEVR_Impl::SetSuppressEffects(this, core::mem::transmute_copy(&bsuppress)).into()
}
}
unsafe extern "system" fn SuppressEffects<Identity: IMSVidEVR_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bsuppress: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidEVR_Impl::SuppressEffects(this) {
Ok(ok__) => {
bsuppress.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidVideoRenderer_Vtbl::new::<Identity, OFFSET>(),
Presenter: Presenter::<Identity, OFFSET>,
SetPresenter: SetPresenter::<Identity, OFFSET>,
SetSuppressEffects: SetSuppressEffects::<Identity, OFFSET>,
SuppressEffects: SuppressEffects::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidEVR as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidOutputDevice as windows_core::Interface>::IID || iid == &<IMSVidVideoRenderer as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidEVR {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidEVREvent, IMSVidEVREvent_Vtbl, 0x349abb10_883c_4f22_8714_cecaeee45d62);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidEVREvent {
type Target = IMSVidOutputDeviceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidEVREvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent, IMSVidOutputDeviceEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidEVREvent {
pub unsafe fn OnUserEvent(&self, leventcode: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).OnUserEvent)(windows_core::Interface::as_raw(self), leventcode).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidEVREvent_Vtbl {
pub base__: IMSVidOutputDeviceEvent_Vtbl,
pub OnUserEvent: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidEVREvent_Impl: IMSVidOutputDeviceEvent_Impl {
fn OnUserEvent(&self, leventcode: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidEVREvent_Vtbl {
pub const fn new<Identity: IMSVidEVREvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn OnUserEvent<Identity: IMSVidEVREvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, leventcode: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidEVREvent_Impl::OnUserEvent(this, core::mem::transmute_copy(&leventcode)).into()
}
}
Self { base__: IMSVidOutputDeviceEvent_Vtbl::new::<Identity, OFFSET>(), OnUserEvent: OnUserEvent::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidEVREvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidOutputDeviceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidEVREvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidEncoder, IMSVidEncoder_Vtbl, 0xc0020fd4_bee7_43d9_a495_9f213117103d);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidEncoder {
type Target = IMSVidFeature;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidEncoder, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidFeature);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidEncoder {
pub unsafe fn VideoEncoderInterface(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VideoEncoderInterface)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn AudioEncoderInterface(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AudioEncoderInterface)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidEncoder_Vtbl {
pub base__: IMSVidFeature_Vtbl,
pub VideoEncoderInterface: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AudioEncoderInterface: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidEncoder_Impl: IMSVidFeature_Impl {
fn VideoEncoderInterface(&self) -> windows_core::Result<windows_core::IUnknown>;
fn AudioEncoderInterface(&self) -> windows_core::Result<windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidEncoder_Vtbl {
pub const fn new<Identity: IMSVidEncoder_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn VideoEncoderInterface<Identity: IMSVidEncoder_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppencint: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidEncoder_Impl::VideoEncoderInterface(this) {
Ok(ok__) => {
ppencint.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn AudioEncoderInterface<Identity: IMSVidEncoder_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppencint: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidEncoder_Impl::AudioEncoderInterface(this) {
Ok(ok__) => {
ppencint.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidFeature_Vtbl::new::<Identity, OFFSET>(),
VideoEncoderInterface: VideoEncoderInterface::<Identity, OFFSET>,
AudioEncoderInterface: AudioEncoderInterface::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidEncoder as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidFeature as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidEncoder {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidFeature, IMSVidFeature_Vtbl, 0x37b03547_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidFeature {
type Target = IMSVidDevice;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidFeature, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidFeature_Vtbl {
pub base__: IMSVidDevice_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidFeature_Impl: IMSVidDevice_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidFeature_Vtbl {
pub const fn new<Identity: IMSVidFeature_Impl, const OFFSET: isize>() -> Self {
Self { base__: IMSVidDevice_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidFeature as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidFeature {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidFeatureEvent, IMSVidFeatureEvent_Vtbl, 0x3dd2903c_e0aa_11d2_b63a_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidFeatureEvent {
type Target = IMSVidDeviceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidFeatureEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidFeatureEvent_Vtbl {
pub base__: IMSVidDeviceEvent_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidFeatureEvent_Impl: IMSVidDeviceEvent_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidFeatureEvent_Vtbl {
pub const fn new<Identity: IMSVidFeatureEvent_Impl, const OFFSET: isize>() -> Self {
Self { base__: IMSVidDeviceEvent_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidFeatureEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidFeatureEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidFeatures, IMSVidFeatures_Vtbl, 0xc5702cd5_9b79_11d3_b654_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidFeatures {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidFeatures, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidFeatures {
pub unsafe fn Count(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NewEnum)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn get_Item(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IMSVidFeature> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(v), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Add<P0>(&self, pdb: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidFeature>,
{
unsafe { (windows_core::Interface::vtable(self).Add)(windows_core::Interface::as_raw(self), pdb.param().abi()).ok() }
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Remove(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Remove)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(v)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidFeatures_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub _NewEnum: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
_NewEnum: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub get_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
get_Item: usize,
pub Add: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Remove: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Remove: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidFeatures_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> windows_core::Result<i32>;
fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn get_Item(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IMSVidFeature>;
fn Add(&self, pdb: windows_core::Ref<IMSVidFeature>) -> windows_core::Result<()>;
fn Remove(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidFeatures_Vtbl {
pub const fn new<Identity: IMSVidFeatures_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<Identity: IMSVidFeatures_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcount: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidFeatures_Impl::Count(this) {
Ok(ok__) => {
lcount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _NewEnum<Identity: IMSVidFeatures_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pd: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidFeatures_Impl::_NewEnum(this) {
Ok(ok__) => {
pd.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_Item<Identity: IMSVidFeatures_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: super::super::super::System::Variant::VARIANT, pdb: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidFeatures_Impl::get_Item(this, core::mem::transmute(&v)) {
Ok(ok__) => {
pdb.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Add<Identity: IMSVidFeatures_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdb: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidFeatures_Impl::Add(this, core::mem::transmute_copy(&pdb)).into()
}
}
unsafe extern "system" fn Remove<Identity: IMSVidFeatures_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidFeatures_Impl::Remove(this, core::mem::transmute(&v)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
_NewEnum: _NewEnum::<Identity, OFFSET>,
get_Item: get_Item::<Identity, OFFSET>,
Add: Add::<Identity, OFFSET>,
Remove: Remove::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidFeatures as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidFeatures {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidFilePlayback, IMSVidFilePlayback_Vtbl, 0x37b03539_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidFilePlayback {
type Target = IMSVidPlayback;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidFilePlayback, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice, IMSVidPlayback);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidFilePlayback {
pub unsafe fn FileName(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FileName)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetFileName(&self, filename: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetFileName)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(filename)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidFilePlayback_Vtbl {
pub base__: IMSVidPlayback_Vtbl,
pub FileName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetFileName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidFilePlayback_Impl: IMSVidPlayback_Impl {
fn FileName(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetFileName(&self, filename: &windows_core::BSTR) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidFilePlayback_Vtbl {
pub const fn new<Identity: IMSVidFilePlayback_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn FileName<Identity: IMSVidFilePlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, filename: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidFilePlayback_Impl::FileName(this) {
Ok(ok__) => {
filename.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetFileName<Identity: IMSVidFilePlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, filename: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidFilePlayback_Impl::SetFileName(this, core::mem::transmute(&filename)).into()
}
}
Self { base__: IMSVidPlayback_Vtbl::new::<Identity, OFFSET>(), FileName: FileName::<Identity, OFFSET>, SetFileName: SetFileName::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidFilePlayback as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID || iid == &<IMSVidPlayback as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidFilePlayback {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidFilePlayback2, IMSVidFilePlayback2_Vtbl, 0x2f7e44af_6e52_4660_bc08_d8d542587d72);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidFilePlayback2 {
type Target = IMSVidFilePlayback;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidFilePlayback2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice, IMSVidPlayback, IMSVidFilePlayback);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidFilePlayback2 {
pub unsafe fn Set_SourceFilter(&self, filename: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_SourceFilter)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(filename)).ok() }
}
pub unsafe fn Set__SourceFilter(&self, filename: windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set__SourceFilter)(windows_core::Interface::as_raw(self), core::mem::transmute(filename)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidFilePlayback2_Vtbl {
pub base__: IMSVidFilePlayback_Vtbl,
pub Set_SourceFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Set__SourceFilter: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::GUID) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidFilePlayback2_Impl: IMSVidFilePlayback_Impl {
fn Set_SourceFilter(&self, filename: &windows_core::BSTR) -> windows_core::Result<()>;
fn Set__SourceFilter(&self, filename: &windows_core::GUID) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidFilePlayback2_Vtbl {
pub const fn new<Identity: IMSVidFilePlayback2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Set_SourceFilter<Identity: IMSVidFilePlayback2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, filename: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidFilePlayback2_Impl::Set_SourceFilter(this, core::mem::transmute(&filename)).into()
}
}
unsafe extern "system" fn Set__SourceFilter<Identity: IMSVidFilePlayback2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, filename: windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidFilePlayback2_Impl::Set__SourceFilter(this, core::mem::transmute(&filename)).into()
}
}
Self {
base__: IMSVidFilePlayback_Vtbl::new::<Identity, OFFSET>(),
Set_SourceFilter: Set_SourceFilter::<Identity, OFFSET>,
Set__SourceFilter: Set__SourceFilter::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidFilePlayback2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID || iid == &<IMSVidPlayback as windows_core::Interface>::IID || iid == &<IMSVidFilePlayback as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidFilePlayback2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidFilePlaybackEvent, IMSVidFilePlaybackEvent_Vtbl, 0x37b0353a_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidFilePlaybackEvent {
type Target = IMSVidPlaybackEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidFilePlaybackEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidInputDeviceEvent, IMSVidPlaybackEvent);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidFilePlaybackEvent_Vtbl {
pub base__: IMSVidPlaybackEvent_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidFilePlaybackEvent_Impl: IMSVidPlaybackEvent_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidFilePlaybackEvent_Vtbl {
pub const fn new<Identity: IMSVidFilePlaybackEvent_Impl, const OFFSET: isize>() -> Self {
Self { base__: IMSVidPlaybackEvent_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidFilePlaybackEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidInputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidPlaybackEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidFilePlaybackEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidGenericSink, IMSVidGenericSink_Vtbl, 0x6c29b41d_455b_4c33_963a_0d28e5e555ea);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidGenericSink {
type Target = IMSVidOutputDevice;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidGenericSink, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidOutputDevice);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidGenericSink {
pub unsafe fn SetSinkFilter(&self, bstrname: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSinkFilter)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(bstrname)).ok() }
}
pub unsafe fn SinkStreams(&self) -> windows_core::Result<MSVidSinkStreams> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SinkStreams)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSinkStreams(&self, streams: MSVidSinkStreams) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSinkStreams)(windows_core::Interface::as_raw(self), streams).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidGenericSink_Vtbl {
pub base__: IMSVidOutputDevice_Vtbl,
pub SetSinkFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SinkStreams: unsafe extern "system" fn(*mut core::ffi::c_void, *mut MSVidSinkStreams) -> windows_core::HRESULT,
pub SetSinkStreams: unsafe extern "system" fn(*mut core::ffi::c_void, MSVidSinkStreams) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidGenericSink_Impl: IMSVidOutputDevice_Impl {
fn SetSinkFilter(&self, bstrname: &windows_core::BSTR) -> windows_core::Result<()>;
fn SinkStreams(&self) -> windows_core::Result<MSVidSinkStreams>;
fn SetSinkStreams(&self, streams: MSVidSinkStreams) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidGenericSink_Vtbl {
pub const fn new<Identity: IMSVidGenericSink_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetSinkFilter<Identity: IMSVidGenericSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bstrname: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGenericSink_Impl::SetSinkFilter(this, core::mem::transmute(&bstrname)).into()
}
}
unsafe extern "system" fn SinkStreams<Identity: IMSVidGenericSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pstreams: *mut MSVidSinkStreams) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGenericSink_Impl::SinkStreams(this) {
Ok(ok__) => {
pstreams.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSinkStreams<Identity: IMSVidGenericSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, streams: MSVidSinkStreams) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGenericSink_Impl::SetSinkStreams(this, core::mem::transmute_copy(&streams)).into()
}
}
Self {
base__: IMSVidOutputDevice_Vtbl::new::<Identity, OFFSET>(),
SetSinkFilter: SetSinkFilter::<Identity, OFFSET>,
SinkStreams: SinkStreams::<Identity, OFFSET>,
SetSinkStreams: SetSinkStreams::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidGenericSink as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidOutputDevice as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidGenericSink {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidGenericSink2, IMSVidGenericSink2_Vtbl, 0x6b5a28f3_47f1_4092_b168_60cabec08f1c);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidGenericSink2 {
type Target = IMSVidGenericSink;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidGenericSink2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidOutputDevice, IMSVidGenericSink);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidGenericSink2 {
pub unsafe fn AddFilter(&self, bstrname: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AddFilter)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(bstrname)).ok() }
}
pub unsafe fn ResetFilterList(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ResetFilterList)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidGenericSink2_Vtbl {
pub base__: IMSVidGenericSink_Vtbl,
pub AddFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub ResetFilterList: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidGenericSink2_Impl: IMSVidGenericSink_Impl {
fn AddFilter(&self, bstrname: &windows_core::BSTR) -> windows_core::Result<()>;
fn ResetFilterList(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidGenericSink2_Vtbl {
pub const fn new<Identity: IMSVidGenericSink2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn AddFilter<Identity: IMSVidGenericSink2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bstrname: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGenericSink2_Impl::AddFilter(this, core::mem::transmute(&bstrname)).into()
}
}
unsafe extern "system" fn ResetFilterList<Identity: IMSVidGenericSink2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGenericSink2_Impl::ResetFilterList(this).into()
}
}
Self {
base__: IMSVidGenericSink_Vtbl::new::<Identity, OFFSET>(),
AddFilter: AddFilter::<Identity, OFFSET>,
ResetFilterList: ResetFilterList::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidGenericSink2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidOutputDevice as windows_core::Interface>::IID || iid == &<IMSVidGenericSink as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidGenericSink2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidGraphSegment, IMSVidGraphSegment_Vtbl, 0x238dec54_adeb_4005_a349_f772b9afebc4);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidGraphSegment {
type Target = super::super::super::System::Com::IPersist;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidGraphSegment, windows_core::IUnknown, super::super::super::System::Com::IPersist);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidGraphSegment {
pub unsafe fn Init(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Init)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetInit<P0>(&self, pinit: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
unsafe { (windows_core::Interface::vtable(self).SetInit)(windows_core::Interface::as_raw(self), pinit.param().abi()).ok() }
}
pub unsafe fn EnumFilters(&self) -> windows_core::Result<super::IEnumFilters> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumFilters)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Container(&self) -> windows_core::Result<IMSVidGraphSegmentContainer> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Container)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetContainer<P0>(&self, pctl: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidGraphSegmentContainer>,
{
unsafe { (windows_core::Interface::vtable(self).SetContainer)(windows_core::Interface::as_raw(self), pctl.param().abi()).ok() }
}
pub unsafe fn Type(&self) -> windows_core::Result<MSVidSegmentType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Type)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Category(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Category)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Build(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Build)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn PostBuild(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PostBuild)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn PreRun(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PreRun)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn PostRun(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PostRun)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn PreStop(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PreStop)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn PostStop(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PostStop)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn OnEventNotify(&self, leventcode: i32, leventparm1: isize, leventparm2: isize) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).OnEventNotify)(windows_core::Interface::as_raw(self), leventcode, leventparm1, leventparm2).ok() }
}
pub unsafe fn Decompose(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Decompose)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidGraphSegment_Vtbl {
pub base__: super::super::super::System::Com::IPersist_Vtbl,
pub Init: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInit: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumFilters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Container: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetContainer: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Type: unsafe extern "system" fn(*mut core::ffi::c_void, *mut MSVidSegmentType) -> windows_core::HRESULT,
pub Category: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub Build: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub PostBuild: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub PreRun: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub PostRun: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub PreStop: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub PostStop: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub OnEventNotify: unsafe extern "system" fn(*mut core::ffi::c_void, i32, isize, isize) -> windows_core::HRESULT,
pub Decompose: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IMSVidGraphSegment_Impl: super::super::super::System::Com::IPersist_Impl {
fn Init(&self) -> windows_core::Result<windows_core::IUnknown>;
fn SetInit(&self, pinit: windows_core::Ref<windows_core::IUnknown>) -> windows_core::Result<()>;
fn EnumFilters(&self) -> windows_core::Result<super::IEnumFilters>;
fn Container(&self) -> windows_core::Result<IMSVidGraphSegmentContainer>;
fn SetContainer(&self, pctl: windows_core::Ref<IMSVidGraphSegmentContainer>) -> windows_core::Result<()>;
fn Type(&self) -> windows_core::Result<MSVidSegmentType>;
fn Category(&self) -> windows_core::Result<windows_core::GUID>;
fn Build(&self) -> windows_core::Result<()>;
fn PostBuild(&self) -> windows_core::Result<()>;
fn PreRun(&self) -> windows_core::Result<()>;
fn PostRun(&self) -> windows_core::Result<()>;
fn PreStop(&self) -> windows_core::Result<()>;
fn PostStop(&self) -> windows_core::Result<()>;
fn OnEventNotify(&self, leventcode: i32, leventparm1: isize, leventparm2: isize) -> windows_core::Result<()>;
fn Decompose(&self) -> windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl IMSVidGraphSegment_Vtbl {
pub const fn new<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Init<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pinit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegment_Impl::Init(this) {
Ok(ok__) => {
pinit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetInit<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pinit: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegment_Impl::SetInit(this, core::mem::transmute_copy(&pinit)).into()
}
}
unsafe extern "system" fn EnumFilters<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pnewenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegment_Impl::EnumFilters(this) {
Ok(ok__) => {
pnewenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Container<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppctl: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegment_Impl::Container(this) {
Ok(ok__) => {
ppctl.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetContainer<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pctl: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegment_Impl::SetContainer(this, core::mem::transmute_copy(&pctl)).into()
}
}
unsafe extern "system" fn Type<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ptype: *mut MSVidSegmentType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegment_Impl::Type(this) {
Ok(ok__) => {
ptype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Category<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pguid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegment_Impl::Category(this) {
Ok(ok__) => {
pguid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Build<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegment_Impl::Build(this).into()
}
}
unsafe extern "system" fn PostBuild<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegment_Impl::PostBuild(this).into()
}
}
unsafe extern "system" fn PreRun<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegment_Impl::PreRun(this).into()
}
}
unsafe extern "system" fn PostRun<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegment_Impl::PostRun(this).into()
}
}
unsafe extern "system" fn PreStop<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegment_Impl::PreStop(this).into()
}
}
unsafe extern "system" fn PostStop<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegment_Impl::PostStop(this).into()
}
}
unsafe extern "system" fn OnEventNotify<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, leventcode: i32, leventparm1: isize, leventparm2: isize) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegment_Impl::OnEventNotify(this, core::mem::transmute_copy(&leventcode), core::mem::transmute_copy(&leventparm1), core::mem::transmute_copy(&leventparm2)).into()
}
}
unsafe extern "system" fn Decompose<Identity: IMSVidGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegment_Impl::Decompose(this).into()
}
}
Self {
base__: super::super::super::System::Com::IPersist_Vtbl::new::<Identity, OFFSET>(),
Init: Init::<Identity, OFFSET>,
SetInit: SetInit::<Identity, OFFSET>,
EnumFilters: EnumFilters::<Identity, OFFSET>,
Container: Container::<Identity, OFFSET>,
SetContainer: SetContainer::<Identity, OFFSET>,
Type: Type::<Identity, OFFSET>,
Category: Category::<Identity, OFFSET>,
Build: Build::<Identity, OFFSET>,
PostBuild: PostBuild::<Identity, OFFSET>,
PreRun: PreRun::<Identity, OFFSET>,
PostRun: PostRun::<Identity, OFFSET>,
PreStop: PreStop::<Identity, OFFSET>,
PostStop: PostStop::<Identity, OFFSET>,
OnEventNotify: OnEventNotify::<Identity, OFFSET>,
Decompose: Decompose::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidGraphSegment as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IPersist as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IMSVidGraphSegment {}
windows_core::imp::define_interface!(IMSVidGraphSegmentContainer, IMSVidGraphSegmentContainer_Vtbl, 0x3dd2903d_e0aa_11d2_b63a_00c04f79498e);
windows_core::imp::interface_hierarchy!(IMSVidGraphSegmentContainer, windows_core::IUnknown);
impl IMSVidGraphSegmentContainer {
pub unsafe fn Graph(&self) -> windows_core::Result<super::IGraphBuilder> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Graph)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Input(&self) -> windows_core::Result<IMSVidGraphSegment> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Input)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Outputs(&self) -> windows_core::Result<IEnumMSVidGraphSegment> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Outputs)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn VideoRenderer(&self) -> windows_core::Result<IMSVidGraphSegment> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VideoRenderer)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn AudioRenderer(&self) -> windows_core::Result<IMSVidGraphSegment> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AudioRenderer)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Features(&self) -> windows_core::Result<IEnumMSVidGraphSegment> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Features)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Composites(&self) -> windows_core::Result<IEnumMSVidGraphSegment> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Composites)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn ParentContainer(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ParentContainer)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Decompose<P0>(&self, psegment: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidGraphSegment>,
{
unsafe { (windows_core::Interface::vtable(self).Decompose)(windows_core::Interface::as_raw(self), psegment.param().abi()).ok() }
}
pub unsafe fn IsWindowless(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).IsWindowless)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn GetFocus(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetFocus)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidGraphSegmentContainer_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Graph: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub Input: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Input: usize,
pub Outputs: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub VideoRenderer: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
VideoRenderer: usize,
#[cfg(feature = "Win32_System_Com")]
pub AudioRenderer: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
AudioRenderer: usize,
pub Features: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Composites: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub ParentContainer: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub Decompose: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Decompose: usize,
pub IsWindowless: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetFocus: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IMSVidGraphSegmentContainer_Impl: windows_core::IUnknownImpl {
fn Graph(&self) -> windows_core::Result<super::IGraphBuilder>;
fn Input(&self) -> windows_core::Result<IMSVidGraphSegment>;
fn Outputs(&self) -> windows_core::Result<IEnumMSVidGraphSegment>;
fn VideoRenderer(&self) -> windows_core::Result<IMSVidGraphSegment>;
fn AudioRenderer(&self) -> windows_core::Result<IMSVidGraphSegment>;
fn Features(&self) -> windows_core::Result<IEnumMSVidGraphSegment>;
fn Composites(&self) -> windows_core::Result<IEnumMSVidGraphSegment>;
fn ParentContainer(&self) -> windows_core::Result<windows_core::IUnknown>;
fn Decompose(&self, psegment: windows_core::Ref<IMSVidGraphSegment>) -> windows_core::Result<()>;
fn IsWindowless(&self) -> windows_core::Result<()>;
fn GetFocus(&self) -> windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl IMSVidGraphSegmentContainer_Vtbl {
pub const fn new<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Graph<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppgraph: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegmentContainer_Impl::Graph(this) {
Ok(ok__) => {
ppgraph.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Input<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppinput: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegmentContainer_Impl::Input(this) {
Ok(ok__) => {
ppinput.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Outputs<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppoutputs: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegmentContainer_Impl::Outputs(this) {
Ok(ok__) => {
ppoutputs.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn VideoRenderer<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppvr: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegmentContainer_Impl::VideoRenderer(this) {
Ok(ok__) => {
ppvr.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn AudioRenderer<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppar: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegmentContainer_Impl::AudioRenderer(this) {
Ok(ok__) => {
ppar.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Features<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppfeatures: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegmentContainer_Impl::Features(this) {
Ok(ok__) => {
ppfeatures.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Composites<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppcomposites: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegmentContainer_Impl::Composites(this) {
Ok(ok__) => {
ppcomposites.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ParentContainer<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppcontainer: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidGraphSegmentContainer_Impl::ParentContainer(this) {
Ok(ok__) => {
ppcontainer.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Decompose<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psegment: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentContainer_Impl::Decompose(this, core::mem::transmute_copy(&psegment)).into()
}
}
unsafe extern "system" fn IsWindowless<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentContainer_Impl::IsWindowless(this).into()
}
}
unsafe extern "system" fn GetFocus<Identity: IMSVidGraphSegmentContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentContainer_Impl::GetFocus(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Graph: Graph::<Identity, OFFSET>,
Input: Input::<Identity, OFFSET>,
Outputs: Outputs::<Identity, OFFSET>,
VideoRenderer: VideoRenderer::<Identity, OFFSET>,
AudioRenderer: AudioRenderer::<Identity, OFFSET>,
Features: Features::<Identity, OFFSET>,
Composites: Composites::<Identity, OFFSET>,
ParentContainer: ParentContainer::<Identity, OFFSET>,
Decompose: Decompose::<Identity, OFFSET>,
IsWindowless: IsWindowless::<Identity, OFFSET>,
GetFocus: GetFocus::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidGraphSegmentContainer as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IMSVidGraphSegmentContainer {}
windows_core::imp::define_interface!(IMSVidGraphSegmentUserInput, IMSVidGraphSegmentUserInput_Vtbl, 0x301c060e_20d9_4587_9b03_f82ed9a9943c);
windows_core::imp::interface_hierarchy!(IMSVidGraphSegmentUserInput, windows_core::IUnknown);
impl IMSVidGraphSegmentUserInput {
pub unsafe fn Click(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Click)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn DblClick(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).DblClick)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn KeyDown(&self, keycode: *const i16, shiftstate: i16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).KeyDown)(windows_core::Interface::as_raw(self), keycode, shiftstate).ok() }
}
pub unsafe fn KeyPress(&self, keyascii: *const i16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).KeyPress)(windows_core::Interface::as_raw(self), keyascii).ok() }
}
pub unsafe fn KeyUp(&self, keycode: *const i16, shiftstate: i16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).KeyUp)(windows_core::Interface::as_raw(self), keycode, shiftstate).ok() }
}
pub unsafe fn MouseDown(&self, buttonstate: i16, shiftstate: i16, x: i32, y: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).MouseDown)(windows_core::Interface::as_raw(self), buttonstate, shiftstate, x, y).ok() }
}
pub unsafe fn MouseMove(&self, buttonstate: i16, shiftstate: i16, x: i32, y: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).MouseMove)(windows_core::Interface::as_raw(self), buttonstate, shiftstate, x, y).ok() }
}
pub unsafe fn MouseUp(&self, buttonstate: i16, shiftstate: i16, x: i32, y: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).MouseUp)(windows_core::Interface::as_raw(self), buttonstate, shiftstate, x, y).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidGraphSegmentUserInput_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Click: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DblClick: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub KeyDown: unsafe extern "system" fn(*mut core::ffi::c_void, *const i16, i16) -> windows_core::HRESULT,
pub KeyPress: unsafe extern "system" fn(*mut core::ffi::c_void, *const i16) -> windows_core::HRESULT,
pub KeyUp: unsafe extern "system" fn(*mut core::ffi::c_void, *const i16, i16) -> windows_core::HRESULT,
pub MouseDown: unsafe extern "system" fn(*mut core::ffi::c_void, i16, i16, i32, i32) -> windows_core::HRESULT,
pub MouseMove: unsafe extern "system" fn(*mut core::ffi::c_void, i16, i16, i32, i32) -> windows_core::HRESULT,
pub MouseUp: unsafe extern "system" fn(*mut core::ffi::c_void, i16, i16, i32, i32) -> windows_core::HRESULT,
}
pub trait IMSVidGraphSegmentUserInput_Impl: windows_core::IUnknownImpl {
fn Click(&self) -> windows_core::Result<()>;
fn DblClick(&self) -> windows_core::Result<()>;
fn KeyDown(&self, keycode: *const i16, shiftstate: i16) -> windows_core::Result<()>;
fn KeyPress(&self, keyascii: *const i16) -> windows_core::Result<()>;
fn KeyUp(&self, keycode: *const i16, shiftstate: i16) -> windows_core::Result<()>;
fn MouseDown(&self, buttonstate: i16, shiftstate: i16, x: i32, y: i32) -> windows_core::Result<()>;
fn MouseMove(&self, buttonstate: i16, shiftstate: i16, x: i32, y: i32) -> windows_core::Result<()>;
fn MouseUp(&self, buttonstate: i16, shiftstate: i16, x: i32, y: i32) -> windows_core::Result<()>;
}
impl IMSVidGraphSegmentUserInput_Vtbl {
pub const fn new<Identity: IMSVidGraphSegmentUserInput_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Click<Identity: IMSVidGraphSegmentUserInput_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentUserInput_Impl::Click(this).into()
}
}
unsafe extern "system" fn DblClick<Identity: IMSVidGraphSegmentUserInput_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentUserInput_Impl::DblClick(this).into()
}
}
unsafe extern "system" fn KeyDown<Identity: IMSVidGraphSegmentUserInput_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, keycode: *const i16, shiftstate: i16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentUserInput_Impl::KeyDown(this, core::mem::transmute_copy(&keycode), core::mem::transmute_copy(&shiftstate)).into()
}
}
unsafe extern "system" fn KeyPress<Identity: IMSVidGraphSegmentUserInput_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, keyascii: *const i16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentUserInput_Impl::KeyPress(this, core::mem::transmute_copy(&keyascii)).into()
}
}
unsafe extern "system" fn KeyUp<Identity: IMSVidGraphSegmentUserInput_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, keycode: *const i16, shiftstate: i16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentUserInput_Impl::KeyUp(this, core::mem::transmute_copy(&keycode), core::mem::transmute_copy(&shiftstate)).into()
}
}
unsafe extern "system" fn MouseDown<Identity: IMSVidGraphSegmentUserInput_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, buttonstate: i16, shiftstate: i16, x: i32, y: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentUserInput_Impl::MouseDown(this, core::mem::transmute_copy(&buttonstate), core::mem::transmute_copy(&shiftstate), core::mem::transmute_copy(&x), core::mem::transmute_copy(&y)).into()
}
}
unsafe extern "system" fn MouseMove<Identity: IMSVidGraphSegmentUserInput_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, buttonstate: i16, shiftstate: i16, x: i32, y: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentUserInput_Impl::MouseMove(this, core::mem::transmute_copy(&buttonstate), core::mem::transmute_copy(&shiftstate), core::mem::transmute_copy(&x), core::mem::transmute_copy(&y)).into()
}
}
unsafe extern "system" fn MouseUp<Identity: IMSVidGraphSegmentUserInput_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, buttonstate: i16, shiftstate: i16, x: i32, y: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidGraphSegmentUserInput_Impl::MouseUp(this, core::mem::transmute_copy(&buttonstate), core::mem::transmute_copy(&shiftstate), core::mem::transmute_copy(&x), core::mem::transmute_copy(&y)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Click: Click::<Identity, OFFSET>,
DblClick: DblClick::<Identity, OFFSET>,
KeyDown: KeyDown::<Identity, OFFSET>,
KeyPress: KeyPress::<Identity, OFFSET>,
KeyUp: KeyUp::<Identity, OFFSET>,
MouseDown: MouseDown::<Identity, OFFSET>,
MouseMove: MouseMove::<Identity, OFFSET>,
MouseUp: MouseUp::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidGraphSegmentUserInput as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IMSVidGraphSegmentUserInput {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidInputDevice, IMSVidInputDevice_Vtbl, 0x37b0353d_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidInputDevice {
type Target = IMSVidDevice;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidInputDevice, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidInputDevice {
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn IsViewable(&self, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsViewable)(windows_core::Interface::as_raw(self), core::mem::transmute(v), &mut result__).map(|| result__)
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn View(&self, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).View)(windows_core::Interface::as_raw(self), core::mem::transmute(v)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidInputDevice_Vtbl {
pub base__: IMSVidDevice_Vtbl,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub IsViewable: unsafe extern "system" fn(*mut core::ffi::c_void, *const super::super::super::System::Variant::VARIANT, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
IsViewable: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub View: unsafe extern "system" fn(*mut core::ffi::c_void, *const super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
View: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidInputDevice_Impl: IMSVidDevice_Impl {
fn IsViewable(&self, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn View(&self, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidInputDevice_Vtbl {
pub const fn new<Identity: IMSVidInputDevice_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn IsViewable<Identity: IMSVidInputDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: *const super::super::super::System::Variant::VARIANT, pfviewable: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidInputDevice_Impl::IsViewable(this, core::mem::transmute_copy(&v)) {
Ok(ok__) => {
pfviewable.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn View<Identity: IMSVidInputDevice_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: *const super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidInputDevice_Impl::View(this, core::mem::transmute_copy(&v)).into()
}
}
Self { base__: IMSVidDevice_Vtbl::new::<Identity, OFFSET>(), IsViewable: IsViewable::<Identity, OFFSET>, View: View::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidInputDevice as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidInputDevice {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidInputDeviceEvent, IMSVidInputDeviceEvent_Vtbl, 0x37b0353e_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidInputDeviceEvent {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidInputDeviceEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidInputDeviceEvent_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidInputDeviceEvent_Impl: super::super::super::System::Com::IDispatch_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidInputDeviceEvent_Vtbl {
pub const fn new<Identity: IMSVidInputDeviceEvent_Impl, const OFFSET: isize>() -> Self {
Self { base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidInputDeviceEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidInputDeviceEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidInputDevices, IMSVidInputDevices_Vtbl, 0xc5702cd1_9b79_11d3_b654_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidInputDevices {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidInputDevices, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidInputDevices {
pub unsafe fn Count(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NewEnum)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn get_Item(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IMSVidInputDevice> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(v), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Add<P0>(&self, pdb: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidInputDevice>,
{
unsafe { (windows_core::Interface::vtable(self).Add)(windows_core::Interface::as_raw(self), pdb.param().abi()).ok() }
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Remove(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Remove)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(v)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidInputDevices_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub _NewEnum: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
_NewEnum: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub get_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
get_Item: usize,
pub Add: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Remove: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Remove: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidInputDevices_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> windows_core::Result<i32>;
fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn get_Item(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IMSVidInputDevice>;
fn Add(&self, pdb: windows_core::Ref<IMSVidInputDevice>) -> windows_core::Result<()>;
fn Remove(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidInputDevices_Vtbl {
pub const fn new<Identity: IMSVidInputDevices_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<Identity: IMSVidInputDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcount: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidInputDevices_Impl::Count(this) {
Ok(ok__) => {
lcount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _NewEnum<Identity: IMSVidInputDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pd: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidInputDevices_Impl::_NewEnum(this) {
Ok(ok__) => {
pd.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_Item<Identity: IMSVidInputDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: super::super::super::System::Variant::VARIANT, pdb: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidInputDevices_Impl::get_Item(this, core::mem::transmute(&v)) {
Ok(ok__) => {
pdb.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Add<Identity: IMSVidInputDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdb: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidInputDevices_Impl::Add(this, core::mem::transmute_copy(&pdb)).into()
}
}
unsafe extern "system" fn Remove<Identity: IMSVidInputDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidInputDevices_Impl::Remove(this, core::mem::transmute(&v)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
_NewEnum: _NewEnum::<Identity, OFFSET>,
get_Item: get_Item::<Identity, OFFSET>,
Add: Add::<Identity, OFFSET>,
Remove: Remove::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidInputDevices as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidInputDevices {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidOutputDevice, IMSVidOutputDevice_Vtbl, 0x37b03546_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidOutputDevice {
type Target = IMSVidDevice;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidOutputDevice, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidOutputDevice_Vtbl {
pub base__: IMSVidDevice_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidOutputDevice_Impl: IMSVidDevice_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidOutputDevice_Vtbl {
pub const fn new<Identity: IMSVidOutputDevice_Impl, const OFFSET: isize>() -> Self {
Self { base__: IMSVidDevice_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidOutputDevice as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidOutputDevice {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidOutputDeviceEvent, IMSVidOutputDeviceEvent_Vtbl, 0x2e6a14e2_571c_11d3_b652_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidOutputDeviceEvent {
type Target = IMSVidDeviceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidOutputDeviceEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidOutputDeviceEvent_Vtbl {
pub base__: IMSVidDeviceEvent_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidOutputDeviceEvent_Impl: IMSVidDeviceEvent_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidOutputDeviceEvent_Vtbl {
pub const fn new<Identity: IMSVidOutputDeviceEvent_Impl, const OFFSET: isize>() -> Self {
Self { base__: IMSVidDeviceEvent_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidOutputDeviceEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidOutputDeviceEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidOutputDevices, IMSVidOutputDevices_Vtbl, 0xc5702cd2_9b79_11d3_b654_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidOutputDevices {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidOutputDevices, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidOutputDevices {
pub unsafe fn Count(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NewEnum)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn get_Item(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IMSVidOutputDevice> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(v), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Add<P0>(&self, pdb: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidOutputDevice>,
{
unsafe { (windows_core::Interface::vtable(self).Add)(windows_core::Interface::as_raw(self), pdb.param().abi()).ok() }
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Remove(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Remove)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(v)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidOutputDevices_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub _NewEnum: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
_NewEnum: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub get_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
get_Item: usize,
pub Add: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Remove: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Remove: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidOutputDevices_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> windows_core::Result<i32>;
fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn get_Item(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IMSVidOutputDevice>;
fn Add(&self, pdb: windows_core::Ref<IMSVidOutputDevice>) -> windows_core::Result<()>;
fn Remove(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidOutputDevices_Vtbl {
pub const fn new<Identity: IMSVidOutputDevices_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<Identity: IMSVidOutputDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcount: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidOutputDevices_Impl::Count(this) {
Ok(ok__) => {
lcount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _NewEnum<Identity: IMSVidOutputDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pd: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidOutputDevices_Impl::_NewEnum(this) {
Ok(ok__) => {
pd.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_Item<Identity: IMSVidOutputDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: super::super::super::System::Variant::VARIANT, pdb: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidOutputDevices_Impl::get_Item(this, core::mem::transmute(&v)) {
Ok(ok__) => {
pdb.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Add<Identity: IMSVidOutputDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdb: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidOutputDevices_Impl::Add(this, core::mem::transmute_copy(&pdb)).into()
}
}
unsafe extern "system" fn Remove<Identity: IMSVidOutputDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidOutputDevices_Impl::Remove(this, core::mem::transmute(&v)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
_NewEnum: _NewEnum::<Identity, OFFSET>,
get_Item: get_Item::<Identity, OFFSET>,
Add: Add::<Identity, OFFSET>,
Remove: Remove::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidOutputDevices as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidOutputDevices {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidPlayback, IMSVidPlayback_Vtbl, 0x37b03538_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidPlayback {
type Target = IMSVidInputDevice;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidPlayback, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidPlayback {
pub unsafe fn EnableResetOnStop(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnableResetOnStop)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetEnableResetOnStop(&self, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetEnableResetOnStop)(windows_core::Interface::as_raw(self), newval).ok() }
}
pub unsafe fn Run(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Run)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Pause(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Pause)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Stop(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Stop)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn get_CanStep(&self, fbackwards: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_CanStep)(windows_core::Interface::as_raw(self), fbackwards, &mut result__).map(|| result__)
}
}
pub unsafe fn Step(&self, lstep: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Step)(windows_core::Interface::as_raw(self), lstep).ok() }
}
pub unsafe fn SetRate(&self, plrate: f64) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetRate)(windows_core::Interface::as_raw(self), plrate).ok() }
}
pub unsafe fn Rate(&self) -> windows_core::Result<f64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Rate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCurrentPosition(&self, lposition: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCurrentPosition)(windows_core::Interface::as_raw(self), lposition).ok() }
}
pub unsafe fn CurrentPosition(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentPosition)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetPositionMode(&self, lpositionmode: PositionModeList) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetPositionMode)(windows_core::Interface::as_raw(self), lpositionmode).ok() }
}
pub unsafe fn PositionMode(&self) -> windows_core::Result<PositionModeList> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PositionMode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Length(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Length)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidPlayback_Vtbl {
pub base__: IMSVidInputDevice_Vtbl,
pub EnableResetOnStop: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetEnableResetOnStop: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub Run: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Pause: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Stop: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub get_CanStep: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub Step: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub SetRate: unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT,
pub Rate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut f64) -> windows_core::HRESULT,
pub SetCurrentPosition: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub CurrentPosition: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetPositionMode: unsafe extern "system" fn(*mut core::ffi::c_void, PositionModeList) -> windows_core::HRESULT,
pub PositionMode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut PositionModeList) -> windows_core::HRESULT,
pub Length: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidPlayback_Impl: IMSVidInputDevice_Impl {
fn EnableResetOnStop(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetEnableResetOnStop(&self, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn Run(&self) -> windows_core::Result<()>;
fn Pause(&self) -> windows_core::Result<()>;
fn Stop(&self) -> windows_core::Result<()>;
fn get_CanStep(&self, fbackwards: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn Step(&self, lstep: i32) -> windows_core::Result<()>;
fn SetRate(&self, plrate: f64) -> windows_core::Result<()>;
fn Rate(&self) -> windows_core::Result<f64>;
fn SetCurrentPosition(&self, lposition: i32) -> windows_core::Result<()>;
fn CurrentPosition(&self) -> windows_core::Result<i32>;
fn SetPositionMode(&self, lpositionmode: PositionModeList) -> windows_core::Result<()>;
fn PositionMode(&self) -> windows_core::Result<PositionModeList>;
fn Length(&self) -> windows_core::Result<i32>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidPlayback_Vtbl {
pub const fn new<Identity: IMSVidPlayback_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn EnableResetOnStop<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidPlayback_Impl::EnableResetOnStop(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetEnableResetOnStop<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidPlayback_Impl::SetEnableResetOnStop(this, core::mem::transmute_copy(&newval)).into()
}
}
unsafe extern "system" fn Run<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidPlayback_Impl::Run(this).into()
}
}
unsafe extern "system" fn Pause<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidPlayback_Impl::Pause(this).into()
}
}
unsafe extern "system" fn Stop<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidPlayback_Impl::Stop(this).into()
}
}
unsafe extern "system" fn get_CanStep<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fbackwards: super::super::super::Foundation::VARIANT_BOOL, pfcan: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidPlayback_Impl::get_CanStep(this, core::mem::transmute_copy(&fbackwards)) {
Ok(ok__) => {
pfcan.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Step<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lstep: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidPlayback_Impl::Step(this, core::mem::transmute_copy(&lstep)).into()
}
}
unsafe extern "system" fn SetRate<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, plrate: f64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidPlayback_Impl::SetRate(this, core::mem::transmute_copy(&plrate)).into()
}
}
unsafe extern "system" fn Rate<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, plrate: *mut f64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidPlayback_Impl::Rate(this) {
Ok(ok__) => {
plrate.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCurrentPosition<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lposition: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidPlayback_Impl::SetCurrentPosition(this, core::mem::transmute_copy(&lposition)).into()
}
}
unsafe extern "system" fn CurrentPosition<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lposition: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidPlayback_Impl::CurrentPosition(this) {
Ok(ok__) => {
lposition.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPositionMode<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lpositionmode: PositionModeList) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidPlayback_Impl::SetPositionMode(this, core::mem::transmute_copy(&lpositionmode)).into()
}
}
unsafe extern "system" fn PositionMode<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lpositionmode: *mut PositionModeList) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidPlayback_Impl::PositionMode(this) {
Ok(ok__) => {
lpositionmode.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Length<Identity: IMSVidPlayback_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, llength: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidPlayback_Impl::Length(this) {
Ok(ok__) => {
llength.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidInputDevice_Vtbl::new::<Identity, OFFSET>(),
EnableResetOnStop: EnableResetOnStop::<Identity, OFFSET>,
SetEnableResetOnStop: SetEnableResetOnStop::<Identity, OFFSET>,
Run: Run::<Identity, OFFSET>,
Pause: Pause::<Identity, OFFSET>,
Stop: Stop::<Identity, OFFSET>,
get_CanStep: get_CanStep::<Identity, OFFSET>,
Step: Step::<Identity, OFFSET>,
SetRate: SetRate::<Identity, OFFSET>,
Rate: Rate::<Identity, OFFSET>,
SetCurrentPosition: SetCurrentPosition::<Identity, OFFSET>,
CurrentPosition: CurrentPosition::<Identity, OFFSET>,
SetPositionMode: SetPositionMode::<Identity, OFFSET>,
PositionMode: PositionMode::<Identity, OFFSET>,
Length: Length::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidPlayback as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidPlayback {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidPlaybackEvent, IMSVidPlaybackEvent_Vtbl, 0x37b0353b_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidPlaybackEvent {
type Target = IMSVidInputDeviceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidPlaybackEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidInputDeviceEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidPlaybackEvent {
pub unsafe fn EndOfMedia<P0>(&self, lpd: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidPlayback>,
{
unsafe { (windows_core::Interface::vtable(self).EndOfMedia)(windows_core::Interface::as_raw(self), lpd.param().abi()).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidPlaybackEvent_Vtbl {
pub base__: IMSVidInputDeviceEvent_Vtbl,
pub EndOfMedia: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidPlaybackEvent_Impl: IMSVidInputDeviceEvent_Impl {
fn EndOfMedia(&self, lpd: windows_core::Ref<IMSVidPlayback>) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidPlaybackEvent_Vtbl {
pub const fn new<Identity: IMSVidPlaybackEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn EndOfMedia<Identity: IMSVidPlaybackEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lpd: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidPlaybackEvent_Impl::EndOfMedia(this, core::mem::transmute_copy(&lpd)).into()
}
}
Self { base__: IMSVidInputDeviceEvent_Vtbl::new::<Identity, OFFSET>(), EndOfMedia: EndOfMedia::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidPlaybackEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidInputDeviceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidPlaybackEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidRect, IMSVidRect_Vtbl, 0x7f5000a6_a440_47ca_8acc_c0e75531a2c2);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidRect {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidRect, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidRect {
pub unsafe fn Top(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Top)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetTop(&self, topval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetTop)(windows_core::Interface::as_raw(self), topval).ok() }
}
pub unsafe fn Left(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Left)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetLeft(&self, leftval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetLeft)(windows_core::Interface::as_raw(self), leftval).ok() }
}
pub unsafe fn Width(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Width)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetWidth(&self, widthval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetWidth)(windows_core::Interface::as_raw(self), widthval).ok() }
}
pub unsafe fn Height(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Height)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetHeight(&self, heightval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetHeight)(windows_core::Interface::as_raw(self), heightval).ok() }
}
pub unsafe fn HWnd(&self) -> windows_core::Result<super::super::super::Foundation::HWND> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).HWnd)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetHWnd(&self, hwndval: super::super::super::Foundation::HWND) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetHWnd)(windows_core::Interface::as_raw(self), hwndval).ok() }
}
pub unsafe fn SetRect<P0>(&self, rectval: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidRect>,
{
unsafe { (windows_core::Interface::vtable(self).SetRect)(windows_core::Interface::as_raw(self), rectval.param().abi()).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidRect_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Top: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetTop: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub Left: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetLeft: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub Width: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetWidth: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub Height: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetHeight: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub HWnd: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::HWND) -> windows_core::HRESULT,
pub SetHWnd: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HWND) -> windows_core::HRESULT,
pub SetRect: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidRect_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Top(&self) -> windows_core::Result<i32>;
fn SetTop(&self, topval: i32) -> windows_core::Result<()>;
fn Left(&self) -> windows_core::Result<i32>;
fn SetLeft(&self, leftval: i32) -> windows_core::Result<()>;
fn Width(&self) -> windows_core::Result<i32>;
fn SetWidth(&self, widthval: i32) -> windows_core::Result<()>;
fn Height(&self) -> windows_core::Result<i32>;
fn SetHeight(&self, heightval: i32) -> windows_core::Result<()>;
fn HWnd(&self) -> windows_core::Result<super::super::super::Foundation::HWND>;
fn SetHWnd(&self, hwndval: super::super::super::Foundation::HWND) -> windows_core::Result<()>;
fn SetRect(&self, rectval: windows_core::Ref<IMSVidRect>) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidRect_Vtbl {
pub const fn new<Identity: IMSVidRect_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Top<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, topval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidRect_Impl::Top(this) {
Ok(ok__) => {
topval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTop<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, topval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidRect_Impl::SetTop(this, core::mem::transmute_copy(&topval)).into()
}
}
unsafe extern "system" fn Left<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, leftval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidRect_Impl::Left(this) {
Ok(ok__) => {
leftval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLeft<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, leftval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidRect_Impl::SetLeft(this, core::mem::transmute_copy(&leftval)).into()
}
}
unsafe extern "system" fn Width<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, widthval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidRect_Impl::Width(this) {
Ok(ok__) => {
widthval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetWidth<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, widthval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidRect_Impl::SetWidth(this, core::mem::transmute_copy(&widthval)).into()
}
}
unsafe extern "system" fn Height<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, heightval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidRect_Impl::Height(this) {
Ok(ok__) => {
heightval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetHeight<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, heightval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidRect_Impl::SetHeight(this, core::mem::transmute_copy(&heightval)).into()
}
}
unsafe extern "system" fn HWnd<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hwndval: *mut super::super::super::Foundation::HWND) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidRect_Impl::HWnd(this) {
Ok(ok__) => {
hwndval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetHWnd<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hwndval: super::super::super::Foundation::HWND) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidRect_Impl::SetHWnd(this, core::mem::transmute_copy(&hwndval)).into()
}
}
unsafe extern "system" fn SetRect<Identity: IMSVidRect_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rectval: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidRect_Impl::SetRect(this, core::mem::transmute_copy(&rectval)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Top: Top::<Identity, OFFSET>,
SetTop: SetTop::<Identity, OFFSET>,
Left: Left::<Identity, OFFSET>,
SetLeft: SetLeft::<Identity, OFFSET>,
Width: Width::<Identity, OFFSET>,
SetWidth: SetWidth::<Identity, OFFSET>,
Height: Height::<Identity, OFFSET>,
SetHeight: SetHeight::<Identity, OFFSET>,
HWnd: HWnd::<Identity, OFFSET>,
SetHWnd: SetHWnd::<Identity, OFFSET>,
SetRect: SetRect::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidRect as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidRect {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferRecordingControl, IMSVidStreamBufferRecordingControl_Vtbl, 0x160621aa_bbbc_4326_a824_c395aebc6e74);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferRecordingControl {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferRecordingControl, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferRecordingControl {
pub unsafe fn StartTime(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetStartTime(&self, rtstart: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetStartTime)(windows_core::Interface::as_raw(self), rtstart).ok() }
}
pub unsafe fn StopTime(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StopTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetStopTime(&self, rtstop: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetStopTime)(windows_core::Interface::as_raw(self), rtstop).ok() }
}
pub unsafe fn RecordingStopped(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).RecordingStopped)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn RecordingStarted(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).RecordingStarted)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn RecordingType(&self) -> windows_core::Result<RecordingType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).RecordingType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn RecordingAttribute(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).RecordingAttribute)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferRecordingControl_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub StartTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetStartTime: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub StopTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetStopTime: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub RecordingStopped: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub RecordingStarted: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub RecordingType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut RecordingType) -> windows_core::HRESULT,
pub RecordingAttribute: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferRecordingControl_Impl: super::super::super::System::Com::IDispatch_Impl {
fn StartTime(&self) -> windows_core::Result<i32>;
fn SetStartTime(&self, rtstart: i32) -> windows_core::Result<()>;
fn StopTime(&self) -> windows_core::Result<i32>;
fn SetStopTime(&self, rtstop: i32) -> windows_core::Result<()>;
fn RecordingStopped(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn RecordingStarted(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn RecordingType(&self) -> windows_core::Result<RecordingType>;
fn RecordingAttribute(&self) -> windows_core::Result<windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferRecordingControl_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferRecordingControl_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn StartTime<Identity: IMSVidStreamBufferRecordingControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rtstart: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferRecordingControl_Impl::StartTime(this) {
Ok(ok__) => {
rtstart.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetStartTime<Identity: IMSVidStreamBufferRecordingControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rtstart: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferRecordingControl_Impl::SetStartTime(this, core::mem::transmute_copy(&rtstart)).into()
}
}
unsafe extern "system" fn StopTime<Identity: IMSVidStreamBufferRecordingControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rtstop: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferRecordingControl_Impl::StopTime(this) {
Ok(ok__) => {
rtstop.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetStopTime<Identity: IMSVidStreamBufferRecordingControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rtstop: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferRecordingControl_Impl::SetStopTime(this, core::mem::transmute_copy(&rtstop)).into()
}
}
unsafe extern "system" fn RecordingStopped<Identity: IMSVidStreamBufferRecordingControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, phresult: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferRecordingControl_Impl::RecordingStopped(this) {
Ok(ok__) => {
phresult.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RecordingStarted<Identity: IMSVidStreamBufferRecordingControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, phresult: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferRecordingControl_Impl::RecordingStarted(this) {
Ok(ok__) => {
phresult.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RecordingType<Identity: IMSVidStreamBufferRecordingControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwtype: *mut RecordingType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferRecordingControl_Impl::RecordingType(this) {
Ok(ok__) => {
dwtype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RecordingAttribute<Identity: IMSVidStreamBufferRecordingControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, precordingattribute: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferRecordingControl_Impl::RecordingAttribute(this) {
Ok(ok__) => {
precordingattribute.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
StartTime: StartTime::<Identity, OFFSET>,
SetStartTime: SetStartTime::<Identity, OFFSET>,
StopTime: StopTime::<Identity, OFFSET>,
SetStopTime: SetStopTime::<Identity, OFFSET>,
RecordingStopped: RecordingStopped::<Identity, OFFSET>,
RecordingStarted: RecordingStarted::<Identity, OFFSET>,
RecordingType: RecordingType::<Identity, OFFSET>,
RecordingAttribute: RecordingAttribute::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferRecordingControl as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferRecordingControl {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSink, IMSVidStreamBufferSink_Vtbl, 0x159dbb45_cd1b_4dab_83ea_5cb1f4f21d07);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSink {
type Target = IMSVidOutputDevice;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSink, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidOutputDevice);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSink {
pub unsafe fn get_ContentRecorder(&self, pszfilename: &windows_core::BSTR) -> windows_core::Result<IMSVidStreamBufferRecordingControl> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_ContentRecorder)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(pszfilename), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn get_ReferenceRecorder(&self, pszfilename: &windows_core::BSTR) -> windows_core::Result<IMSVidStreamBufferRecordingControl> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_ReferenceRecorder)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(pszfilename), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SinkName(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SinkName)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetSinkName(&self, name: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSinkName)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(name)).ok() }
}
pub unsafe fn NameSetLock(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).NameSetLock)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SBESink(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SBESink)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSink_Vtbl {
pub base__: IMSVidOutputDevice_Vtbl,
pub get_ContentRecorder: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub get_ReferenceRecorder: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SinkName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetSinkName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub NameSetLock: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SBESink: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSink_Impl: IMSVidOutputDevice_Impl {
fn get_ContentRecorder(&self, pszfilename: &windows_core::BSTR) -> windows_core::Result<IMSVidStreamBufferRecordingControl>;
fn get_ReferenceRecorder(&self, pszfilename: &windows_core::BSTR) -> windows_core::Result<IMSVidStreamBufferRecordingControl>;
fn SinkName(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetSinkName(&self, name: &windows_core::BSTR) -> windows_core::Result<()>;
fn NameSetLock(&self) -> windows_core::Result<()>;
fn SBESink(&self) -> windows_core::Result<windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSink_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSink_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn get_ContentRecorder<Identity: IMSVidStreamBufferSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszfilename: *mut core::ffi::c_void, precordingiunknown: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink_Impl::get_ContentRecorder(this, core::mem::transmute(&pszfilename)) {
Ok(ok__) => {
precordingiunknown.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_ReferenceRecorder<Identity: IMSVidStreamBufferSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszfilename: *mut core::ffi::c_void, precordingiunknown: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink_Impl::get_ReferenceRecorder(this, core::mem::transmute(&pszfilename)) {
Ok(ok__) => {
precordingiunknown.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SinkName<Identity: IMSVidStreamBufferSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pname: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink_Impl::SinkName(this) {
Ok(ok__) => {
pname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSinkName<Identity: IMSVidStreamBufferSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, name: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSink_Impl::SetSinkName(this, core::mem::transmute(&name)).into()
}
}
unsafe extern "system" fn NameSetLock<Identity: IMSVidStreamBufferSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSink_Impl::NameSetLock(this).into()
}
}
unsafe extern "system" fn SBESink<Identity: IMSVidStreamBufferSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, sbeconfig: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink_Impl::SBESink(this) {
Ok(ok__) => {
sbeconfig.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidOutputDevice_Vtbl::new::<Identity, OFFSET>(),
get_ContentRecorder: get_ContentRecorder::<Identity, OFFSET>,
get_ReferenceRecorder: get_ReferenceRecorder::<Identity, OFFSET>,
SinkName: SinkName::<Identity, OFFSET>,
SetSinkName: SetSinkName::<Identity, OFFSET>,
NameSetLock: NameSetLock::<Identity, OFFSET>,
SBESink: SBESink::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSink as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidOutputDevice as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSink {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSink2, IMSVidStreamBufferSink2_Vtbl, 0x2ca9fc63_c131_4e5a_955a_544a47c67146);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSink2 {
type Target = IMSVidStreamBufferSink;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSink2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidOutputDevice, IMSVidStreamBufferSink);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSink2 {
pub unsafe fn UnlockProfile(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).UnlockProfile)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSink2_Vtbl {
pub base__: IMSVidStreamBufferSink_Vtbl,
pub UnlockProfile: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSink2_Impl: IMSVidStreamBufferSink_Impl {
fn UnlockProfile(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSink2_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSink2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn UnlockProfile<Identity: IMSVidStreamBufferSink2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSink2_Impl::UnlockProfile(this).into()
}
}
Self { base__: IMSVidStreamBufferSink_Vtbl::new::<Identity, OFFSET>(), UnlockProfile: UnlockProfile::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSink2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidOutputDevice as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSink as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSink2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSink3, IMSVidStreamBufferSink3_Vtbl, 0x4f8721d7_7d59_4d8b_99f5_a77775586bd5);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSink3 {
type Target = IMSVidStreamBufferSink2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSink3, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidOutputDevice, IMSVidStreamBufferSink, IMSVidStreamBufferSink2);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSink3 {
pub unsafe fn SetMinSeek(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SetMinSeek)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn AudioCounter(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AudioCounter)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn VideoCounter(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VideoCounter)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn CCCounter(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CCCounter)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn WSTCounter(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).WSTCounter)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetAudioAnalysisFilter(&self, szclsid: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetAudioAnalysisFilter)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(szclsid)).ok() }
}
pub unsafe fn AudioAnalysisFilter(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AudioAnalysisFilter)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn Set_AudioAnalysisFilter(&self, guid: windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_AudioAnalysisFilter)(windows_core::Interface::as_raw(self), core::mem::transmute(guid)).ok() }
}
pub unsafe fn _AudioAnalysisFilter(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._AudioAnalysisFilter)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetVideoAnalysisFilter(&self, szclsid: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetVideoAnalysisFilter)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(szclsid)).ok() }
}
pub unsafe fn VideoAnalysisFilter(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VideoAnalysisFilter)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn Set_VideoAnalysisFilter(&self, guid: windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_VideoAnalysisFilter)(windows_core::Interface::as_raw(self), core::mem::transmute(guid)).ok() }
}
pub unsafe fn _VideoAnalysisFilter(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._VideoAnalysisFilter)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetDataAnalysisFilter(&self, szclsid: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDataAnalysisFilter)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(szclsid)).ok() }
}
pub unsafe fn DataAnalysisFilter(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DataAnalysisFilter)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn Set_DataAnalysisFilter(&self, guid: windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_DataAnalysisFilter)(windows_core::Interface::as_raw(self), core::mem::transmute(guid)).ok() }
}
pub unsafe fn _DataAnalysisFilter(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._DataAnalysisFilter)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn LicenseErrorCode(&self) -> windows_core::Result<windows_core::HRESULT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LicenseErrorCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSink3_Vtbl {
pub base__: IMSVidStreamBufferSink2_Vtbl,
pub SetMinSeek: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub AudioCounter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub VideoCounter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CCCounter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub WSTCounter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetAudioAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AudioAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Set_AudioAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::GUID) -> windows_core::HRESULT,
pub _AudioAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub SetVideoAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub VideoAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Set_VideoAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::GUID) -> windows_core::HRESULT,
pub _VideoAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub SetDataAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub DataAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Set_DataAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::GUID) -> windows_core::HRESULT,
pub _DataAnalysisFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub LicenseErrorCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::HRESULT) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSink3_Impl: IMSVidStreamBufferSink2_Impl {
fn SetMinSeek(&self) -> windows_core::Result<i32>;
fn AudioCounter(&self) -> windows_core::Result<windows_core::IUnknown>;
fn VideoCounter(&self) -> windows_core::Result<windows_core::IUnknown>;
fn CCCounter(&self) -> windows_core::Result<windows_core::IUnknown>;
fn WSTCounter(&self) -> windows_core::Result<windows_core::IUnknown>;
fn SetAudioAnalysisFilter(&self, szclsid: &windows_core::BSTR) -> windows_core::Result<()>;
fn AudioAnalysisFilter(&self) -> windows_core::Result<windows_core::BSTR>;
fn Set_AudioAnalysisFilter(&self, guid: &windows_core::GUID) -> windows_core::Result<()>;
fn _AudioAnalysisFilter(&self) -> windows_core::Result<windows_core::GUID>;
fn SetVideoAnalysisFilter(&self, szclsid: &windows_core::BSTR) -> windows_core::Result<()>;
fn VideoAnalysisFilter(&self) -> windows_core::Result<windows_core::BSTR>;
fn Set_VideoAnalysisFilter(&self, guid: &windows_core::GUID) -> windows_core::Result<()>;
fn _VideoAnalysisFilter(&self) -> windows_core::Result<windows_core::GUID>;
fn SetDataAnalysisFilter(&self, szclsid: &windows_core::BSTR) -> windows_core::Result<()>;
fn DataAnalysisFilter(&self) -> windows_core::Result<windows_core::BSTR>;
fn Set_DataAnalysisFilter(&self, guid: &windows_core::GUID) -> windows_core::Result<()>;
fn _DataAnalysisFilter(&self) -> windows_core::Result<windows_core::GUID>;
fn LicenseErrorCode(&self) -> windows_core::Result<windows_core::HRESULT>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSink3_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetMinSeek<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwmin: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::SetMinSeek(this) {
Ok(ok__) => {
pdwmin.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn AudioCounter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunk: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::AudioCounter(this) {
Ok(ok__) => {
ppunk.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn VideoCounter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunk: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::VideoCounter(this) {
Ok(ok__) => {
ppunk.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CCCounter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunk: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::CCCounter(this) {
Ok(ok__) => {
ppunk.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn WSTCounter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunk: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::WSTCounter(this) {
Ok(ok__) => {
ppunk.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAudioAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, szclsid: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSink3_Impl::SetAudioAnalysisFilter(this, core::mem::transmute(&szclsid)).into()
}
}
unsafe extern "system" fn AudioAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszclsid: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::AudioAnalysisFilter(this) {
Ok(ok__) => {
pszclsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Set_AudioAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guid: windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSink3_Impl::Set_AudioAnalysisFilter(this, core::mem::transmute(&guid)).into()
}
}
unsafe extern "system" fn _AudioAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pguid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::_AudioAnalysisFilter(this) {
Ok(ok__) => {
pguid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetVideoAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, szclsid: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSink3_Impl::SetVideoAnalysisFilter(this, core::mem::transmute(&szclsid)).into()
}
}
unsafe extern "system" fn VideoAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszclsid: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::VideoAnalysisFilter(this) {
Ok(ok__) => {
pszclsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Set_VideoAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guid: windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSink3_Impl::Set_VideoAnalysisFilter(this, core::mem::transmute(&guid)).into()
}
}
unsafe extern "system" fn _VideoAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pguid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::_VideoAnalysisFilter(this) {
Ok(ok__) => {
pguid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDataAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, szclsid: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSink3_Impl::SetDataAnalysisFilter(this, core::mem::transmute(&szclsid)).into()
}
}
unsafe extern "system" fn DataAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszclsid: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::DataAnalysisFilter(this) {
Ok(ok__) => {
pszclsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Set_DataAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guid: windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSink3_Impl::Set_DataAnalysisFilter(this, core::mem::transmute(&guid)).into()
}
}
unsafe extern "system" fn _DataAnalysisFilter<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pguid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::_DataAnalysisFilter(this) {
Ok(ok__) => {
pguid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn LicenseErrorCode<Identity: IMSVidStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hres: *mut windows_core::HRESULT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSink3_Impl::LicenseErrorCode(this) {
Ok(ok__) => {
hres.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidStreamBufferSink2_Vtbl::new::<Identity, OFFSET>(),
SetMinSeek: SetMinSeek::<Identity, OFFSET>,
AudioCounter: AudioCounter::<Identity, OFFSET>,
VideoCounter: VideoCounter::<Identity, OFFSET>,
CCCounter: CCCounter::<Identity, OFFSET>,
WSTCounter: WSTCounter::<Identity, OFFSET>,
SetAudioAnalysisFilter: SetAudioAnalysisFilter::<Identity, OFFSET>,
AudioAnalysisFilter: AudioAnalysisFilter::<Identity, OFFSET>,
Set_AudioAnalysisFilter: Set_AudioAnalysisFilter::<Identity, OFFSET>,
_AudioAnalysisFilter: _AudioAnalysisFilter::<Identity, OFFSET>,
SetVideoAnalysisFilter: SetVideoAnalysisFilter::<Identity, OFFSET>,
VideoAnalysisFilter: VideoAnalysisFilter::<Identity, OFFSET>,
Set_VideoAnalysisFilter: Set_VideoAnalysisFilter::<Identity, OFFSET>,
_VideoAnalysisFilter: _VideoAnalysisFilter::<Identity, OFFSET>,
SetDataAnalysisFilter: SetDataAnalysisFilter::<Identity, OFFSET>,
DataAnalysisFilter: DataAnalysisFilter::<Identity, OFFSET>,
Set_DataAnalysisFilter: Set_DataAnalysisFilter::<Identity, OFFSET>,
_DataAnalysisFilter: _DataAnalysisFilter::<Identity, OFFSET>,
LicenseErrorCode: LicenseErrorCode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSink3 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidOutputDevice as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSink as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSink2 as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSink3 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSinkEvent, IMSVidStreamBufferSinkEvent_Vtbl, 0xf798a36b_b05b_4bbe_9703_eaea7d61cd51);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSinkEvent {
type Target = IMSVidOutputDeviceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSinkEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent, IMSVidOutputDeviceEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSinkEvent {
pub unsafe fn CertificateFailure(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).CertificateFailure)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn CertificateSuccess(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).CertificateSuccess)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn WriteFailure(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).WriteFailure)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSinkEvent_Vtbl {
pub base__: IMSVidOutputDeviceEvent_Vtbl,
pub CertificateFailure: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub CertificateSuccess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub WriteFailure: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSinkEvent_Impl: IMSVidOutputDeviceEvent_Impl {
fn CertificateFailure(&self) -> windows_core::Result<()>;
fn CertificateSuccess(&self) -> windows_core::Result<()>;
fn WriteFailure(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSinkEvent_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSinkEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CertificateFailure<Identity: IMSVidStreamBufferSinkEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSinkEvent_Impl::CertificateFailure(this).into()
}
}
unsafe extern "system" fn CertificateSuccess<Identity: IMSVidStreamBufferSinkEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSinkEvent_Impl::CertificateSuccess(this).into()
}
}
unsafe extern "system" fn WriteFailure<Identity: IMSVidStreamBufferSinkEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSinkEvent_Impl::WriteFailure(this).into()
}
}
Self {
base__: IMSVidOutputDeviceEvent_Vtbl::new::<Identity, OFFSET>(),
CertificateFailure: CertificateFailure::<Identity, OFFSET>,
CertificateSuccess: CertificateSuccess::<Identity, OFFSET>,
WriteFailure: WriteFailure::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSinkEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidOutputDeviceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSinkEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSinkEvent2, IMSVidStreamBufferSinkEvent2_Vtbl, 0x3d7a5166_72d7_484b_a06f_286187b80ca1);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSinkEvent2 {
type Target = IMSVidStreamBufferSinkEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSinkEvent2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent, IMSVidOutputDeviceEvent, IMSVidStreamBufferSinkEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSinkEvent2 {
pub unsafe fn EncryptionOn(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).EncryptionOn)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn EncryptionOff(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).EncryptionOff)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSinkEvent2_Vtbl {
pub base__: IMSVidStreamBufferSinkEvent_Vtbl,
pub EncryptionOn: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub EncryptionOff: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSinkEvent2_Impl: IMSVidStreamBufferSinkEvent_Impl {
fn EncryptionOn(&self) -> windows_core::Result<()>;
fn EncryptionOff(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSinkEvent2_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSinkEvent2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn EncryptionOn<Identity: IMSVidStreamBufferSinkEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSinkEvent2_Impl::EncryptionOn(this).into()
}
}
unsafe extern "system" fn EncryptionOff<Identity: IMSVidStreamBufferSinkEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSinkEvent2_Impl::EncryptionOff(this).into()
}
}
Self {
base__: IMSVidStreamBufferSinkEvent_Vtbl::new::<Identity, OFFSET>(),
EncryptionOn: EncryptionOn::<Identity, OFFSET>,
EncryptionOff: EncryptionOff::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSinkEvent2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidOutputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSinkEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSinkEvent2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSinkEvent3, IMSVidStreamBufferSinkEvent3_Vtbl, 0x735ad8d5_c259_48e9_81e7_d27953665b23);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSinkEvent3 {
type Target = IMSVidStreamBufferSinkEvent2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSinkEvent3, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent, IMSVidOutputDeviceEvent, IMSVidStreamBufferSinkEvent, IMSVidStreamBufferSinkEvent2);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSinkEvent3 {
pub unsafe fn LicenseChange(&self, dwprot: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).LicenseChange)(windows_core::Interface::as_raw(self), dwprot).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSinkEvent3_Vtbl {
pub base__: IMSVidStreamBufferSinkEvent2_Vtbl,
pub LicenseChange: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSinkEvent3_Impl: IMSVidStreamBufferSinkEvent2_Impl {
fn LicenseChange(&self, dwprot: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSinkEvent3_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSinkEvent3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn LicenseChange<Identity: IMSVidStreamBufferSinkEvent3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwprot: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSinkEvent3_Impl::LicenseChange(this, core::mem::transmute_copy(&dwprot)).into()
}
}
Self { base__: IMSVidStreamBufferSinkEvent2_Vtbl::new::<Identity, OFFSET>(), LicenseChange: LicenseChange::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSinkEvent3 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidOutputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSinkEvent as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSinkEvent2 as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSinkEvent3 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSinkEvent4, IMSVidStreamBufferSinkEvent4_Vtbl, 0x1b01dcb0_daf0_412c_a5d1_590c7f62e2b8);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSinkEvent4 {
type Target = IMSVidStreamBufferSinkEvent3;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSinkEvent4, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent, IMSVidOutputDeviceEvent, IMSVidStreamBufferSinkEvent, IMSVidStreamBufferSinkEvent2, IMSVidStreamBufferSinkEvent3);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSinkEvent4 {
pub unsafe fn WriteFailureClear(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).WriteFailureClear)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSinkEvent4_Vtbl {
pub base__: IMSVidStreamBufferSinkEvent3_Vtbl,
pub WriteFailureClear: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSinkEvent4_Impl: IMSVidStreamBufferSinkEvent3_Impl {
fn WriteFailureClear(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSinkEvent4_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSinkEvent4_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn WriteFailureClear<Identity: IMSVidStreamBufferSinkEvent4_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSinkEvent4_Impl::WriteFailureClear(this).into()
}
}
Self { base__: IMSVidStreamBufferSinkEvent3_Vtbl::new::<Identity, OFFSET>(), WriteFailureClear: WriteFailureClear::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSinkEvent4 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidOutputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSinkEvent as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSinkEvent2 as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSinkEvent3 as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSinkEvent4 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSource, IMSVidStreamBufferSource_Vtbl, 0xeb0c8cf9_6950_4772_87b1_47d11cf3a02f);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSource {
type Target = IMSVidFilePlayback;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSource, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice, IMSVidPlayback, IMSVidFilePlayback);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSource {
pub unsafe fn Start(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Start)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn RecordingAttribute(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).RecordingAttribute)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn CurrentRatings(&self, pensystem: *mut EnTvRat_System, penrating: *mut EnTvRat_GenericLevel, pbfenattr: *mut i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).CurrentRatings)(windows_core::Interface::as_raw(self), pensystem as _, penrating as _, pbfenattr as _).ok() }
}
pub unsafe fn MaxRatingsLevel(&self, ensystem: EnTvRat_System, enrating: EnTvRat_GenericLevel, lbfenattr: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).MaxRatingsLevel)(windows_core::Interface::as_raw(self), ensystem, enrating, lbfenattr).ok() }
}
pub unsafe fn SetBlockUnrated(&self, bblock: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBlockUnrated)(windows_core::Interface::as_raw(self), bblock).ok() }
}
pub unsafe fn SetUnratedDelay(&self, dwdelay: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetUnratedDelay)(windows_core::Interface::as_raw(self), dwdelay).ok() }
}
pub unsafe fn SBESource(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SBESource)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSource_Vtbl {
pub base__: IMSVidFilePlayback_Vtbl,
pub Start: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub RecordingAttribute: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CurrentRatings: unsafe extern "system" fn(*mut core::ffi::c_void, *mut EnTvRat_System, *mut EnTvRat_GenericLevel, *mut i32) -> windows_core::HRESULT,
pub MaxRatingsLevel: unsafe extern "system" fn(*mut core::ffi::c_void, EnTvRat_System, EnTvRat_GenericLevel, i32) -> windows_core::HRESULT,
pub SetBlockUnrated: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetUnratedDelay: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub SBESource: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSource_Impl: IMSVidFilePlayback_Impl {
fn Start(&self) -> windows_core::Result<i32>;
fn RecordingAttribute(&self) -> windows_core::Result<windows_core::IUnknown>;
fn CurrentRatings(&self, pensystem: *mut EnTvRat_System, penrating: *mut EnTvRat_GenericLevel, pbfenattr: *mut i32) -> windows_core::Result<()>;
fn MaxRatingsLevel(&self, ensystem: EnTvRat_System, enrating: EnTvRat_GenericLevel, lbfenattr: i32) -> windows_core::Result<()>;
fn SetBlockUnrated(&self, bblock: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn SetUnratedDelay(&self, dwdelay: i32) -> windows_core::Result<()>;
fn SBESource(&self) -> windows_core::Result<windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSource_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSource_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Start<Identity: IMSVidStreamBufferSource_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lstart: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSource_Impl::Start(this) {
Ok(ok__) => {
lstart.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RecordingAttribute<Identity: IMSVidStreamBufferSource_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, precordingattribute: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSource_Impl::RecordingAttribute(this) {
Ok(ok__) => {
precordingattribute.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentRatings<Identity: IMSVidStreamBufferSource_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pensystem: *mut EnTvRat_System, penrating: *mut EnTvRat_GenericLevel, pbfenattr: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSource_Impl::CurrentRatings(this, core::mem::transmute_copy(&pensystem), core::mem::transmute_copy(&penrating), core::mem::transmute_copy(&pbfenattr)).into()
}
}
unsafe extern "system" fn MaxRatingsLevel<Identity: IMSVidStreamBufferSource_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ensystem: EnTvRat_System, enrating: EnTvRat_GenericLevel, lbfenattr: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSource_Impl::MaxRatingsLevel(this, core::mem::transmute_copy(&ensystem), core::mem::transmute_copy(&enrating), core::mem::transmute_copy(&lbfenattr)).into()
}
}
unsafe extern "system" fn SetBlockUnrated<Identity: IMSVidStreamBufferSource_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bblock: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSource_Impl::SetBlockUnrated(this, core::mem::transmute_copy(&bblock)).into()
}
}
unsafe extern "system" fn SetUnratedDelay<Identity: IMSVidStreamBufferSource_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwdelay: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSource_Impl::SetUnratedDelay(this, core::mem::transmute_copy(&dwdelay)).into()
}
}
unsafe extern "system" fn SBESource<Identity: IMSVidStreamBufferSource_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, sbefilter: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSource_Impl::SBESource(this) {
Ok(ok__) => {
sbefilter.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidFilePlayback_Vtbl::new::<Identity, OFFSET>(),
Start: Start::<Identity, OFFSET>,
RecordingAttribute: RecordingAttribute::<Identity, OFFSET>,
CurrentRatings: CurrentRatings::<Identity, OFFSET>,
MaxRatingsLevel: MaxRatingsLevel::<Identity, OFFSET>,
SetBlockUnrated: SetBlockUnrated::<Identity, OFFSET>,
SetUnratedDelay: SetUnratedDelay::<Identity, OFFSET>,
SBESource: SBESource::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSource as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID || iid == &<IMSVidPlayback as windows_core::Interface>::IID || iid == &<IMSVidFilePlayback as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSource {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSource2, IMSVidStreamBufferSource2_Vtbl, 0xe4ba9059_b1ce_40d8_b9a0_d4ea4a9989d3);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSource2 {
type Target = IMSVidStreamBufferSource;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSource2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice, IMSVidPlayback, IMSVidFilePlayback, IMSVidStreamBufferSource);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSource2 {
pub unsafe fn put_RateEx(&self, dwrate: f64, dwframespersecond: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).put_RateEx)(windows_core::Interface::as_raw(self), dwrate, dwframespersecond).ok() }
}
pub unsafe fn AudioCounter(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AudioCounter)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn VideoCounter(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VideoCounter)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn CCCounter(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CCCounter)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn WSTCounter(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).WSTCounter)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSource2_Vtbl {
pub base__: IMSVidStreamBufferSource_Vtbl,
pub put_RateEx: unsafe extern "system" fn(*mut core::ffi::c_void, f64, u32) -> windows_core::HRESULT,
pub AudioCounter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub VideoCounter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CCCounter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub WSTCounter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSource2_Impl: IMSVidStreamBufferSource_Impl {
fn put_RateEx(&self, dwrate: f64, dwframespersecond: u32) -> windows_core::Result<()>;
fn AudioCounter(&self) -> windows_core::Result<windows_core::IUnknown>;
fn VideoCounter(&self) -> windows_core::Result<windows_core::IUnknown>;
fn CCCounter(&self) -> windows_core::Result<windows_core::IUnknown>;
fn WSTCounter(&self) -> windows_core::Result<windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSource2_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSource2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn put_RateEx<Identity: IMSVidStreamBufferSource2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrate: f64, dwframespersecond: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSource2_Impl::put_RateEx(this, core::mem::transmute_copy(&dwrate), core::mem::transmute_copy(&dwframespersecond)).into()
}
}
unsafe extern "system" fn AudioCounter<Identity: IMSVidStreamBufferSource2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunk: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSource2_Impl::AudioCounter(this) {
Ok(ok__) => {
ppunk.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn VideoCounter<Identity: IMSVidStreamBufferSource2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunk: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSource2_Impl::VideoCounter(this) {
Ok(ok__) => {
ppunk.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CCCounter<Identity: IMSVidStreamBufferSource2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunk: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSource2_Impl::CCCounter(this) {
Ok(ok__) => {
ppunk.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn WSTCounter<Identity: IMSVidStreamBufferSource2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunk: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidStreamBufferSource2_Impl::WSTCounter(this) {
Ok(ok__) => {
ppunk.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidStreamBufferSource_Vtbl::new::<Identity, OFFSET>(),
put_RateEx: put_RateEx::<Identity, OFFSET>,
AudioCounter: AudioCounter::<Identity, OFFSET>,
VideoCounter: VideoCounter::<Identity, OFFSET>,
CCCounter: CCCounter::<Identity, OFFSET>,
WSTCounter: WSTCounter::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSource2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID || iid == &<IMSVidPlayback as windows_core::Interface>::IID || iid == &<IMSVidFilePlayback as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSource as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSource2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSourceEvent, IMSVidStreamBufferSourceEvent_Vtbl, 0x50ce8a7d_9c28_4da8_9042_cdfa7116f979);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSourceEvent {
type Target = IMSVidFilePlaybackEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSourceEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidInputDeviceEvent, IMSVidPlaybackEvent, IMSVidFilePlaybackEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSourceEvent {
pub unsafe fn CertificateFailure(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).CertificateFailure)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn CertificateSuccess(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).CertificateSuccess)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn RatingsBlocked(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RatingsBlocked)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn RatingsUnblocked(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RatingsUnblocked)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn RatingsChanged(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RatingsChanged)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn TimeHole(&self, streamoffsetms: i32, sizems: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).TimeHole)(windows_core::Interface::as_raw(self), streamoffsetms, sizems).ok() }
}
pub unsafe fn StaleDataRead(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).StaleDataRead)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn ContentBecomingStale(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ContentBecomingStale)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn StaleFileDeleted(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).StaleFileDeleted)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSourceEvent_Vtbl {
pub base__: IMSVidFilePlaybackEvent_Vtbl,
pub CertificateFailure: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub CertificateSuccess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub RatingsBlocked: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub RatingsUnblocked: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub RatingsChanged: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub TimeHole: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32) -> windows_core::HRESULT,
pub StaleDataRead: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ContentBecomingStale: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub StaleFileDeleted: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSourceEvent_Impl: IMSVidFilePlaybackEvent_Impl {
fn CertificateFailure(&self) -> windows_core::Result<()>;
fn CertificateSuccess(&self) -> windows_core::Result<()>;
fn RatingsBlocked(&self) -> windows_core::Result<()>;
fn RatingsUnblocked(&self) -> windows_core::Result<()>;
fn RatingsChanged(&self) -> windows_core::Result<()>;
fn TimeHole(&self, streamoffsetms: i32, sizems: i32) -> windows_core::Result<()>;
fn StaleDataRead(&self) -> windows_core::Result<()>;
fn ContentBecomingStale(&self) -> windows_core::Result<()>;
fn StaleFileDeleted(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSourceEvent_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSourceEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CertificateFailure<Identity: IMSVidStreamBufferSourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent_Impl::CertificateFailure(this).into()
}
}
unsafe extern "system" fn CertificateSuccess<Identity: IMSVidStreamBufferSourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent_Impl::CertificateSuccess(this).into()
}
}
unsafe extern "system" fn RatingsBlocked<Identity: IMSVidStreamBufferSourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent_Impl::RatingsBlocked(this).into()
}
}
unsafe extern "system" fn RatingsUnblocked<Identity: IMSVidStreamBufferSourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent_Impl::RatingsUnblocked(this).into()
}
}
unsafe extern "system" fn RatingsChanged<Identity: IMSVidStreamBufferSourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent_Impl::RatingsChanged(this).into()
}
}
unsafe extern "system" fn TimeHole<Identity: IMSVidStreamBufferSourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, streamoffsetms: i32, sizems: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent_Impl::TimeHole(this, core::mem::transmute_copy(&streamoffsetms), core::mem::transmute_copy(&sizems)).into()
}
}
unsafe extern "system" fn StaleDataRead<Identity: IMSVidStreamBufferSourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent_Impl::StaleDataRead(this).into()
}
}
unsafe extern "system" fn ContentBecomingStale<Identity: IMSVidStreamBufferSourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent_Impl::ContentBecomingStale(this).into()
}
}
unsafe extern "system" fn StaleFileDeleted<Identity: IMSVidStreamBufferSourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent_Impl::StaleFileDeleted(this).into()
}
}
Self {
base__: IMSVidFilePlaybackEvent_Vtbl::new::<Identity, OFFSET>(),
CertificateFailure: CertificateFailure::<Identity, OFFSET>,
CertificateSuccess: CertificateSuccess::<Identity, OFFSET>,
RatingsBlocked: RatingsBlocked::<Identity, OFFSET>,
RatingsUnblocked: RatingsUnblocked::<Identity, OFFSET>,
RatingsChanged: RatingsChanged::<Identity, OFFSET>,
TimeHole: TimeHole::<Identity, OFFSET>,
StaleDataRead: StaleDataRead::<Identity, OFFSET>,
ContentBecomingStale: ContentBecomingStale::<Identity, OFFSET>,
StaleFileDeleted: StaleFileDeleted::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSourceEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidInputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidPlaybackEvent as windows_core::Interface>::IID || iid == &<IMSVidFilePlaybackEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSourceEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSourceEvent2, IMSVidStreamBufferSourceEvent2_Vtbl, 0x7aef50ce_8e22_4ba8_bc06_a92a458b4ef2);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSourceEvent2 {
type Target = IMSVidStreamBufferSourceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSourceEvent2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidInputDeviceEvent, IMSVidPlaybackEvent, IMSVidFilePlaybackEvent, IMSVidStreamBufferSourceEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSourceEvent2 {
pub unsafe fn RateChange(&self, qwnewrate: f64, qwoldrate: f64) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RateChange)(windows_core::Interface::as_raw(self), qwnewrate, qwoldrate).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSourceEvent2_Vtbl {
pub base__: IMSVidStreamBufferSourceEvent_Vtbl,
pub RateChange: unsafe extern "system" fn(*mut core::ffi::c_void, f64, f64) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSourceEvent2_Impl: IMSVidStreamBufferSourceEvent_Impl {
fn RateChange(&self, qwnewrate: f64, qwoldrate: f64) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSourceEvent2_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSourceEvent2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn RateChange<Identity: IMSVidStreamBufferSourceEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, qwnewrate: f64, qwoldrate: f64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent2_Impl::RateChange(this, core::mem::transmute_copy(&qwnewrate), core::mem::transmute_copy(&qwoldrate)).into()
}
}
Self { base__: IMSVidStreamBufferSourceEvent_Vtbl::new::<Identity, OFFSET>(), RateChange: RateChange::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSourceEvent2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidInputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidPlaybackEvent as windows_core::Interface>::IID || iid == &<IMSVidFilePlaybackEvent as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSourceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSourceEvent2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferSourceEvent3, IMSVidStreamBufferSourceEvent3_Vtbl, 0xceabd6ab_9b90_4570_adf1_3ce76e00a763);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferSourceEvent3 {
type Target = IMSVidStreamBufferSourceEvent2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferSourceEvent3, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidInputDeviceEvent, IMSVidPlaybackEvent, IMSVidFilePlaybackEvent, IMSVidStreamBufferSourceEvent, IMSVidStreamBufferSourceEvent2);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferSourceEvent3 {
pub unsafe fn BroadcastEvent(&self, guid: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).BroadcastEvent)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(guid)).ok() }
}
pub unsafe fn BroadcastEventEx(&self, guid: &windows_core::BSTR, param1: u32, param2: u32, param3: u32, param4: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).BroadcastEventEx)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(guid), param1, param2, param3, param4).ok() }
}
pub unsafe fn COPPBlocked(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).COPPBlocked)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn COPPUnblocked(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).COPPUnblocked)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn ContentPrimarilyAudio(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ContentPrimarilyAudio)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferSourceEvent3_Vtbl {
pub base__: IMSVidStreamBufferSourceEvent2_Vtbl,
pub BroadcastEvent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub BroadcastEventEx: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32, u32, u32, u32) -> windows_core::HRESULT,
pub COPPBlocked: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub COPPUnblocked: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ContentPrimarilyAudio: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferSourceEvent3_Impl: IMSVidStreamBufferSourceEvent2_Impl {
fn BroadcastEvent(&self, guid: &windows_core::BSTR) -> windows_core::Result<()>;
fn BroadcastEventEx(&self, guid: &windows_core::BSTR, param1: u32, param2: u32, param3: u32, param4: u32) -> windows_core::Result<()>;
fn COPPBlocked(&self) -> windows_core::Result<()>;
fn COPPUnblocked(&self) -> windows_core::Result<()>;
fn ContentPrimarilyAudio(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferSourceEvent3_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferSourceEvent3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn BroadcastEvent<Identity: IMSVidStreamBufferSourceEvent3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guid: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent3_Impl::BroadcastEvent(this, core::mem::transmute(&guid)).into()
}
}
unsafe extern "system" fn BroadcastEventEx<Identity: IMSVidStreamBufferSourceEvent3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guid: *mut core::ffi::c_void, param1: u32, param2: u32, param3: u32, param4: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent3_Impl::BroadcastEventEx(this, core::mem::transmute(&guid), core::mem::transmute_copy(¶m1), core::mem::transmute_copy(¶m2), core::mem::transmute_copy(¶m3), core::mem::transmute_copy(¶m4)).into()
}
}
unsafe extern "system" fn COPPBlocked<Identity: IMSVidStreamBufferSourceEvent3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent3_Impl::COPPBlocked(this).into()
}
}
unsafe extern "system" fn COPPUnblocked<Identity: IMSVidStreamBufferSourceEvent3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent3_Impl::COPPUnblocked(this).into()
}
}
unsafe extern "system" fn ContentPrimarilyAudio<Identity: IMSVidStreamBufferSourceEvent3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferSourceEvent3_Impl::ContentPrimarilyAudio(this).into()
}
}
Self {
base__: IMSVidStreamBufferSourceEvent2_Vtbl::new::<Identity, OFFSET>(),
BroadcastEvent: BroadcastEvent::<Identity, OFFSET>,
BroadcastEventEx: BroadcastEventEx::<Identity, OFFSET>,
COPPBlocked: COPPBlocked::<Identity, OFFSET>,
COPPUnblocked: COPPUnblocked::<Identity, OFFSET>,
ContentPrimarilyAudio: ContentPrimarilyAudio::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferSourceEvent3 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidInputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidPlaybackEvent as windows_core::Interface>::IID || iid == &<IMSVidFilePlaybackEvent as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSourceEvent as windows_core::Interface>::IID || iid == &<IMSVidStreamBufferSourceEvent2 as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferSourceEvent3 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidStreamBufferV2SourceEvent, IMSVidStreamBufferV2SourceEvent_Vtbl, 0x49c771f9_41b2_4cf7_9f9a_a313a8f6027e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidStreamBufferV2SourceEvent {
type Target = IMSVidFilePlaybackEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidStreamBufferV2SourceEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidInputDeviceEvent, IMSVidPlaybackEvent, IMSVidFilePlaybackEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidStreamBufferV2SourceEvent {
pub unsafe fn RatingsChanged(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RatingsChanged)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn TimeHole(&self, streamoffsetms: i32, sizems: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).TimeHole)(windows_core::Interface::as_raw(self), streamoffsetms, sizems).ok() }
}
pub unsafe fn StaleDataRead(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).StaleDataRead)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn ContentBecomingStale(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ContentBecomingStale)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn StaleFileDeleted(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).StaleFileDeleted)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn RateChange(&self, qwnewrate: f64, qwoldrate: f64) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RateChange)(windows_core::Interface::as_raw(self), qwnewrate, qwoldrate).ok() }
}
pub unsafe fn BroadcastEvent(&self, guid: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).BroadcastEvent)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(guid)).ok() }
}
pub unsafe fn BroadcastEventEx(&self, guid: &windows_core::BSTR, param1: u32, param2: u32, param3: u32, param4: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).BroadcastEventEx)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(guid), param1, param2, param3, param4).ok() }
}
pub unsafe fn ContentPrimarilyAudio(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ContentPrimarilyAudio)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidStreamBufferV2SourceEvent_Vtbl {
pub base__: IMSVidFilePlaybackEvent_Vtbl,
pub RatingsChanged: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub TimeHole: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32) -> windows_core::HRESULT,
pub StaleDataRead: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ContentBecomingStale: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub StaleFileDeleted: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub RateChange: unsafe extern "system" fn(*mut core::ffi::c_void, f64, f64) -> windows_core::HRESULT,
pub BroadcastEvent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub BroadcastEventEx: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32, u32, u32, u32) -> windows_core::HRESULT,
pub ContentPrimarilyAudio: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidStreamBufferV2SourceEvent_Impl: IMSVidFilePlaybackEvent_Impl {
fn RatingsChanged(&self) -> windows_core::Result<()>;
fn TimeHole(&self, streamoffsetms: i32, sizems: i32) -> windows_core::Result<()>;
fn StaleDataRead(&self) -> windows_core::Result<()>;
fn ContentBecomingStale(&self) -> windows_core::Result<()>;
fn StaleFileDeleted(&self) -> windows_core::Result<()>;
fn RateChange(&self, qwnewrate: f64, qwoldrate: f64) -> windows_core::Result<()>;
fn BroadcastEvent(&self, guid: &windows_core::BSTR) -> windows_core::Result<()>;
fn BroadcastEventEx(&self, guid: &windows_core::BSTR, param1: u32, param2: u32, param3: u32, param4: u32) -> windows_core::Result<()>;
fn ContentPrimarilyAudio(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidStreamBufferV2SourceEvent_Vtbl {
pub const fn new<Identity: IMSVidStreamBufferV2SourceEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn RatingsChanged<Identity: IMSVidStreamBufferV2SourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferV2SourceEvent_Impl::RatingsChanged(this).into()
}
}
unsafe extern "system" fn TimeHole<Identity: IMSVidStreamBufferV2SourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, streamoffsetms: i32, sizems: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferV2SourceEvent_Impl::TimeHole(this, core::mem::transmute_copy(&streamoffsetms), core::mem::transmute_copy(&sizems)).into()
}
}
unsafe extern "system" fn StaleDataRead<Identity: IMSVidStreamBufferV2SourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferV2SourceEvent_Impl::StaleDataRead(this).into()
}
}
unsafe extern "system" fn ContentBecomingStale<Identity: IMSVidStreamBufferV2SourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferV2SourceEvent_Impl::ContentBecomingStale(this).into()
}
}
unsafe extern "system" fn StaleFileDeleted<Identity: IMSVidStreamBufferV2SourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferV2SourceEvent_Impl::StaleFileDeleted(this).into()
}
}
unsafe extern "system" fn RateChange<Identity: IMSVidStreamBufferV2SourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, qwnewrate: f64, qwoldrate: f64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferV2SourceEvent_Impl::RateChange(this, core::mem::transmute_copy(&qwnewrate), core::mem::transmute_copy(&qwoldrate)).into()
}
}
unsafe extern "system" fn BroadcastEvent<Identity: IMSVidStreamBufferV2SourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guid: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferV2SourceEvent_Impl::BroadcastEvent(this, core::mem::transmute(&guid)).into()
}
}
unsafe extern "system" fn BroadcastEventEx<Identity: IMSVidStreamBufferV2SourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, guid: *mut core::ffi::c_void, param1: u32, param2: u32, param3: u32, param4: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferV2SourceEvent_Impl::BroadcastEventEx(this, core::mem::transmute(&guid), core::mem::transmute_copy(¶m1), core::mem::transmute_copy(¶m2), core::mem::transmute_copy(¶m3), core::mem::transmute_copy(¶m4)).into()
}
}
unsafe extern "system" fn ContentPrimarilyAudio<Identity: IMSVidStreamBufferV2SourceEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidStreamBufferV2SourceEvent_Impl::ContentPrimarilyAudio(this).into()
}
}
Self {
base__: IMSVidFilePlaybackEvent_Vtbl::new::<Identity, OFFSET>(),
RatingsChanged: RatingsChanged::<Identity, OFFSET>,
TimeHole: TimeHole::<Identity, OFFSET>,
StaleDataRead: StaleDataRead::<Identity, OFFSET>,
ContentBecomingStale: ContentBecomingStale::<Identity, OFFSET>,
StaleFileDeleted: StaleFileDeleted::<Identity, OFFSET>,
RateChange: RateChange::<Identity, OFFSET>,
BroadcastEvent: BroadcastEvent::<Identity, OFFSET>,
BroadcastEventEx: BroadcastEventEx::<Identity, OFFSET>,
ContentPrimarilyAudio: ContentPrimarilyAudio::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidStreamBufferV2SourceEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidInputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidPlaybackEvent as windows_core::Interface>::IID || iid == &<IMSVidFilePlaybackEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidStreamBufferV2SourceEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidTuner, IMSVidTuner_Vtbl, 0x1c15d47d_911d_11d2_b632_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidTuner {
type Target = IMSVidVideoInputDevice;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidTuner, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice, IMSVidVideoInputDevice);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidTuner {
pub unsafe fn Tune(&self) -> windows_core::Result<ITuneRequest> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Tune)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetTune<P0>(&self, ptr: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe { (windows_core::Interface::vtable(self).SetTune)(windows_core::Interface::as_raw(self), ptr.param().abi()).ok() }
}
pub unsafe fn TuningSpace(&self) -> windows_core::Result<ITuningSpace> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TuningSpace)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetTuningSpace<P0>(&self, plts: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ITuningSpace>,
{
unsafe { (windows_core::Interface::vtable(self).SetTuningSpace)(windows_core::Interface::as_raw(self), plts.param().abi()).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidTuner_Vtbl {
pub base__: IMSVidVideoInputDevice_Vtbl,
pub Tune: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetTune: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub TuningSpace: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetTuningSpace: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidTuner_Impl: IMSVidVideoInputDevice_Impl {
fn Tune(&self) -> windows_core::Result<ITuneRequest>;
fn SetTune(&self, ptr: windows_core::Ref<ITuneRequest>) -> windows_core::Result<()>;
fn TuningSpace(&self) -> windows_core::Result<ITuningSpace>;
fn SetTuningSpace(&self, plts: windows_core::Ref<ITuningSpace>) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidTuner_Vtbl {
pub const fn new<Identity: IMSVidTuner_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Tune<Identity: IMSVidTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pptr: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidTuner_Impl::Tune(this) {
Ok(ok__) => {
pptr.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTune<Identity: IMSVidTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ptr: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidTuner_Impl::SetTune(this, core::mem::transmute_copy(&ptr)).into()
}
}
unsafe extern "system" fn TuningSpace<Identity: IMSVidTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, plts: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidTuner_Impl::TuningSpace(this) {
Ok(ok__) => {
plts.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTuningSpace<Identity: IMSVidTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, plts: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidTuner_Impl::SetTuningSpace(this, core::mem::transmute_copy(&plts)).into()
}
}
Self {
base__: IMSVidVideoInputDevice_Vtbl::new::<Identity, OFFSET>(),
Tune: Tune::<Identity, OFFSET>,
SetTune: SetTune::<Identity, OFFSET>,
TuningSpace: TuningSpace::<Identity, OFFSET>,
SetTuningSpace: SetTuningSpace::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidTuner as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID || iid == &<IMSVidVideoInputDevice as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidTuner {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidTunerEvent, IMSVidTunerEvent_Vtbl, 0x1c15d485_911d_11d2_b632_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidTunerEvent {
type Target = IMSVidInputDeviceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidTunerEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidInputDeviceEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidTunerEvent {
pub unsafe fn TuneChanged<P0>(&self, lpd: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidTuner>,
{
unsafe { (windows_core::Interface::vtable(self).TuneChanged)(windows_core::Interface::as_raw(self), lpd.param().abi()).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidTunerEvent_Vtbl {
pub base__: IMSVidInputDeviceEvent_Vtbl,
pub TuneChanged: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidTunerEvent_Impl: IMSVidInputDeviceEvent_Impl {
fn TuneChanged(&self, lpd: windows_core::Ref<IMSVidTuner>) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidTunerEvent_Vtbl {
pub const fn new<Identity: IMSVidTunerEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn TuneChanged<Identity: IMSVidTunerEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lpd: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidTunerEvent_Impl::TuneChanged(this, core::mem::transmute_copy(&lpd)).into()
}
}
Self { base__: IMSVidInputDeviceEvent_Vtbl::new::<Identity, OFFSET>(), TuneChanged: TuneChanged::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidTunerEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidInputDeviceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidTunerEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidVMR9, IMSVidVMR9_Vtbl, 0xd58b0015_ebef_44bb_bbdd_3f3699d76ea1);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidVMR9 {
type Target = IMSVidVideoRenderer;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidVMR9, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidOutputDevice, IMSVidVideoRenderer);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidVMR9 {
pub unsafe fn Allocator_ID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Allocator_ID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetAllocator<P0>(&self, allocpresent: P0, id: i32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
unsafe { (windows_core::Interface::vtable(self).SetAllocator)(windows_core::Interface::as_raw(self), allocpresent.param().abi(), id).ok() }
}
pub unsafe fn SetSuppressEffects(&self, bsuppress: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSuppressEffects)(windows_core::Interface::as_raw(self), bsuppress).ok() }
}
pub unsafe fn SuppressEffects(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SuppressEffects)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Allocator(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Allocator)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidVMR9_Vtbl {
pub base__: IMSVidVideoRenderer_Vtbl,
pub Allocator_ID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetAllocator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub SetSuppressEffects: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SuppressEffects: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub Allocator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidVMR9_Impl: IMSVidVideoRenderer_Impl {
fn Allocator_ID(&self) -> windows_core::Result<i32>;
fn SetAllocator(&self, allocpresent: windows_core::Ref<windows_core::IUnknown>, id: i32) -> windows_core::Result<()>;
fn SetSuppressEffects(&self, bsuppress: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn SuppressEffects(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn Allocator(&self) -> windows_core::Result<windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidVMR9_Vtbl {
pub const fn new<Identity: IMSVidVMR9_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Allocator_ID<Identity: IMSVidVMR9_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, id: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVMR9_Impl::Allocator_ID(this) {
Ok(ok__) => {
id.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAllocator<Identity: IMSVidVMR9_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, allocpresent: *mut core::ffi::c_void, id: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVMR9_Impl::SetAllocator(this, core::mem::transmute_copy(&allocpresent), core::mem::transmute_copy(&id)).into()
}
}
unsafe extern "system" fn SetSuppressEffects<Identity: IMSVidVMR9_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bsuppress: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVMR9_Impl::SetSuppressEffects(this, core::mem::transmute_copy(&bsuppress)).into()
}
}
unsafe extern "system" fn SuppressEffects<Identity: IMSVidVMR9_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bsuppress: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVMR9_Impl::SuppressEffects(this) {
Ok(ok__) => {
bsuppress.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Allocator<Identity: IMSVidVMR9_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, allocpresent: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVMR9_Impl::Allocator(this) {
Ok(ok__) => {
allocpresent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidVideoRenderer_Vtbl::new::<Identity, OFFSET>(),
Allocator_ID: Allocator_ID::<Identity, OFFSET>,
SetAllocator: SetAllocator::<Identity, OFFSET>,
SetSuppressEffects: SetSuppressEffects::<Identity, OFFSET>,
SuppressEffects: SuppressEffects::<Identity, OFFSET>,
Allocator: Allocator::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidVMR9 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidOutputDevice as windows_core::Interface>::IID || iid == &<IMSVidVideoRenderer as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidVMR9 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidVRGraphSegment, IMSVidVRGraphSegment_Vtbl, 0xdd47de3f_9874_4f7b_8b22_7cb2688461e7);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidVRGraphSegment {
type Target = IMSVidGraphSegment;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidVRGraphSegment, windows_core::IUnknown, super::super::super::System::Com::IPersist, IMSVidGraphSegment);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidVRGraphSegment {
pub unsafe fn Set_VMRendererMode(&self, dwmode: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_VMRendererMode)(windows_core::Interface::as_raw(self), dwmode).ok() }
}
pub unsafe fn SetOwner(&self, window: super::super::super::Foundation::HWND) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetOwner)(windows_core::Interface::as_raw(self), window).ok() }
}
pub unsafe fn Owner(&self) -> windows_core::Result<super::super::super::Foundation::HWND> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Owner)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn UseOverlay(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).UseOverlay)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetUseOverlay(&self, useoverlayval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetUseOverlay)(windows_core::Interface::as_raw(self), useoverlayval).ok() }
}
pub unsafe fn Visible(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Visible)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetVisible(&self, visible: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetVisible)(windows_core::Interface::as_raw(self), visible).ok() }
}
pub unsafe fn ColorKey(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ColorKey)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetColorKey(&self, colorkey: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetColorKey)(windows_core::Interface::as_raw(self), colorkey).ok() }
}
pub unsafe fn Source(&self) -> windows_core::Result<super::super::super::Foundation::RECT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Source)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSource(&self, r: super::super::super::Foundation::RECT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSource)(windows_core::Interface::as_raw(self), core::mem::transmute(r)).ok() }
}
pub unsafe fn Destination(&self) -> windows_core::Result<super::super::super::Foundation::RECT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Destination)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetDestination(&self, r: super::super::super::Foundation::RECT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDestination)(windows_core::Interface::as_raw(self), core::mem::transmute(r)).ok() }
}
pub unsafe fn get_NativeSize(&self, sizeval: *mut super::super::super::Foundation::SIZE, aspectratio: *mut super::super::super::Foundation::SIZE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).get_NativeSize)(windows_core::Interface::as_raw(self), sizeval as _, aspectratio as _).ok() }
}
pub unsafe fn BorderColor(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).BorderColor)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetBorderColor(&self, color: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBorderColor)(windows_core::Interface::as_raw(self), color).ok() }
}
pub unsafe fn MaintainAspectRatio(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MaintainAspectRatio)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMaintainAspectRatio(&self, fmaintain: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMaintainAspectRatio)(windows_core::Interface::as_raw(self), fmaintain).ok() }
}
pub unsafe fn Refresh(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Refresh)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn DisplayChange(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).DisplayChange)(windows_core::Interface::as_raw(self)).ok() }
}
#[cfg(feature = "Win32_Graphics_Gdi")]
pub unsafe fn RePaint(&self, hdc: super::super::super::Graphics::Gdi::HDC) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RePaint)(windows_core::Interface::as_raw(self), hdc).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidVRGraphSegment_Vtbl {
pub base__: IMSVidGraphSegment_Vtbl,
pub Set_VMRendererMode: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub SetOwner: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HWND) -> windows_core::HRESULT,
pub Owner: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::HWND) -> windows_core::HRESULT,
pub UseOverlay: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetUseOverlay: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub Visible: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetVisible: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ColorKey: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetColorKey: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Source: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::RECT) -> windows_core::HRESULT,
pub SetSource: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::RECT) -> windows_core::HRESULT,
pub Destination: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::RECT) -> windows_core::HRESULT,
pub SetDestination: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::RECT) -> windows_core::HRESULT,
pub get_NativeSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::SIZE, *mut super::super::super::Foundation::SIZE) -> windows_core::HRESULT,
pub BorderColor: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetBorderColor: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub MaintainAspectRatio: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetMaintainAspectRatio: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub Refresh: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DisplayChange: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(feature = "Win32_Graphics_Gdi")]
pub RePaint: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Graphics::Gdi::HDC) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_Graphics_Gdi"))]
RePaint: usize,
}
#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))]
pub trait IMSVidVRGraphSegment_Impl: IMSVidGraphSegment_Impl {
fn Set_VMRendererMode(&self, dwmode: i32) -> windows_core::Result<()>;
fn SetOwner(&self, window: super::super::super::Foundation::HWND) -> windows_core::Result<()>;
fn Owner(&self) -> windows_core::Result<super::super::super::Foundation::HWND>;
fn UseOverlay(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetUseOverlay(&self, useoverlayval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn Visible(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetVisible(&self, visible: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ColorKey(&self) -> windows_core::Result<u32>;
fn SetColorKey(&self, colorkey: u32) -> windows_core::Result<()>;
fn Source(&self) -> windows_core::Result<super::super::super::Foundation::RECT>;
fn SetSource(&self, r: &super::super::super::Foundation::RECT) -> windows_core::Result<()>;
fn Destination(&self) -> windows_core::Result<super::super::super::Foundation::RECT>;
fn SetDestination(&self, r: &super::super::super::Foundation::RECT) -> windows_core::Result<()>;
fn get_NativeSize(&self, sizeval: *mut super::super::super::Foundation::SIZE, aspectratio: *mut super::super::super::Foundation::SIZE) -> windows_core::Result<()>;
fn BorderColor(&self) -> windows_core::Result<u32>;
fn SetBorderColor(&self, color: u32) -> windows_core::Result<()>;
fn MaintainAspectRatio(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetMaintainAspectRatio(&self, fmaintain: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn Refresh(&self) -> windows_core::Result<()>;
fn DisplayChange(&self) -> windows_core::Result<()>;
fn RePaint(&self, hdc: super::super::super::Graphics::Gdi::HDC) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))]
impl IMSVidVRGraphSegment_Vtbl {
pub const fn new<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Set_VMRendererMode<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwmode: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::Set_VMRendererMode(this, core::mem::transmute_copy(&dwmode)).into()
}
}
unsafe extern "system" fn SetOwner<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, window: super::super::super::Foundation::HWND) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::SetOwner(this, core::mem::transmute_copy(&window)).into()
}
}
unsafe extern "system" fn Owner<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, window: *mut super::super::super::Foundation::HWND) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVRGraphSegment_Impl::Owner(this) {
Ok(ok__) => {
window.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn UseOverlay<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, useoverlayval: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVRGraphSegment_Impl::UseOverlay(this) {
Ok(ok__) => {
useoverlayval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetUseOverlay<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, useoverlayval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::SetUseOverlay(this, core::mem::transmute_copy(&useoverlayval)).into()
}
}
unsafe extern "system" fn Visible<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, visible: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVRGraphSegment_Impl::Visible(this) {
Ok(ok__) => {
visible.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetVisible<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, visible: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::SetVisible(this, core::mem::transmute_copy(&visible)).into()
}
}
unsafe extern "system" fn ColorKey<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, colorkey: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVRGraphSegment_Impl::ColorKey(this) {
Ok(ok__) => {
colorkey.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetColorKey<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, colorkey: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::SetColorKey(this, core::mem::transmute_copy(&colorkey)).into()
}
}
unsafe extern "system" fn Source<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, r: *mut super::super::super::Foundation::RECT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVRGraphSegment_Impl::Source(this) {
Ok(ok__) => {
r.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSource<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, r: super::super::super::Foundation::RECT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::SetSource(this, core::mem::transmute(&r)).into()
}
}
unsafe extern "system" fn Destination<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, r: *mut super::super::super::Foundation::RECT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVRGraphSegment_Impl::Destination(this) {
Ok(ok__) => {
r.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDestination<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, r: super::super::super::Foundation::RECT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::SetDestination(this, core::mem::transmute(&r)).into()
}
}
unsafe extern "system" fn get_NativeSize<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, sizeval: *mut super::super::super::Foundation::SIZE, aspectratio: *mut super::super::super::Foundation::SIZE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::get_NativeSize(this, core::mem::transmute_copy(&sizeval), core::mem::transmute_copy(&aspectratio)).into()
}
}
unsafe extern "system" fn BorderColor<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, color: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVRGraphSegment_Impl::BorderColor(this) {
Ok(ok__) => {
color.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBorderColor<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, color: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::SetBorderColor(this, core::mem::transmute_copy(&color)).into()
}
}
unsafe extern "system" fn MaintainAspectRatio<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fmaintain: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVRGraphSegment_Impl::MaintainAspectRatio(this) {
Ok(ok__) => {
fmaintain.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMaintainAspectRatio<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fmaintain: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::SetMaintainAspectRatio(this, core::mem::transmute_copy(&fmaintain)).into()
}
}
unsafe extern "system" fn Refresh<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::Refresh(this).into()
}
}
unsafe extern "system" fn DisplayChange<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::DisplayChange(this).into()
}
}
unsafe extern "system" fn RePaint<Identity: IMSVidVRGraphSegment_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hdc: super::super::super::Graphics::Gdi::HDC) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVRGraphSegment_Impl::RePaint(this, core::mem::transmute_copy(&hdc)).into()
}
}
Self {
base__: IMSVidGraphSegment_Vtbl::new::<Identity, OFFSET>(),
Set_VMRendererMode: Set_VMRendererMode::<Identity, OFFSET>,
SetOwner: SetOwner::<Identity, OFFSET>,
Owner: Owner::<Identity, OFFSET>,
UseOverlay: UseOverlay::<Identity, OFFSET>,
SetUseOverlay: SetUseOverlay::<Identity, OFFSET>,
Visible: Visible::<Identity, OFFSET>,
SetVisible: SetVisible::<Identity, OFFSET>,
ColorKey: ColorKey::<Identity, OFFSET>,
SetColorKey: SetColorKey::<Identity, OFFSET>,
Source: Source::<Identity, OFFSET>,
SetSource: SetSource::<Identity, OFFSET>,
Destination: Destination::<Identity, OFFSET>,
SetDestination: SetDestination::<Identity, OFFSET>,
get_NativeSize: get_NativeSize::<Identity, OFFSET>,
BorderColor: BorderColor::<Identity, OFFSET>,
SetBorderColor: SetBorderColor::<Identity, OFFSET>,
MaintainAspectRatio: MaintainAspectRatio::<Identity, OFFSET>,
SetMaintainAspectRatio: SetMaintainAspectRatio::<Identity, OFFSET>,
Refresh: Refresh::<Identity, OFFSET>,
DisplayChange: DisplayChange::<Identity, OFFSET>,
RePaint: RePaint::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidVRGraphSegment as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IPersist as windows_core::Interface>::IID || iid == &<IMSVidGraphSegment as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))]
impl windows_core::RuntimeName for IMSVidVRGraphSegment {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidVideoInputDevice, IMSVidVideoInputDevice_Vtbl, 0x1c15d47f_911d_11d2_b632_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidVideoInputDevice {
type Target = IMSVidInputDevice;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidVideoInputDevice, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidVideoInputDevice_Vtbl {
pub base__: IMSVidInputDevice_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidVideoInputDevice_Impl: IMSVidInputDevice_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidVideoInputDevice_Vtbl {
pub const fn new<Identity: IMSVidVideoInputDevice_Impl, const OFFSET: isize>() -> Self {
Self { base__: IMSVidInputDevice_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidVideoInputDevice as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidVideoInputDevice {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidVideoRenderer, IMSVidVideoRenderer_Vtbl, 0x37b03540_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidVideoRenderer {
type Target = IMSVidOutputDevice;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidVideoRenderer, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidOutputDevice);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidVideoRenderer {
pub unsafe fn CustomCompositorClass(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CustomCompositorClass)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetCustomCompositorClass(&self, compositorclsid: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCustomCompositorClass)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(compositorclsid)).ok() }
}
pub unsafe fn _CustomCompositorClass(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._CustomCompositorClass)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Set_CustomCompositorClass(&self, compositorclsid: *const windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_CustomCompositorClass)(windows_core::Interface::as_raw(self), compositorclsid).ok() }
}
pub unsafe fn _CustomCompositor(&self) -> windows_core::Result<super::IVMRImageCompositor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._CustomCompositor)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Set_CustomCompositor<P0>(&self, compositor: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<super::IVMRImageCompositor>,
{
unsafe { (windows_core::Interface::vtable(self).Set_CustomCompositor)(windows_core::Interface::as_raw(self), compositor.param().abi()).ok() }
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn MixerBitmap(&self) -> windows_core::Result<super::super::super::System::Ole::IPictureDisp> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MixerBitmap)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn _MixerBitmap(&self) -> windows_core::Result<super::IVMRMixerBitmap> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._MixerBitmap)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn SetMixerBitmap<P0>(&self, mixerpicturedisp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<super::super::super::System::Ole::IPictureDisp>,
{
unsafe { (windows_core::Interface::vtable(self).SetMixerBitmap)(windows_core::Interface::as_raw(self), mixerpicturedisp.param().abi()).ok() }
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
pub unsafe fn Set_MixerBitmap(&self, mixerpicture: *const super::VMRALPHABITMAP) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_MixerBitmap)(windows_core::Interface::as_raw(self), core::mem::transmute(mixerpicture)).ok() }
}
pub unsafe fn MixerBitmapPositionRect(&self) -> windows_core::Result<IMSVidRect> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MixerBitmapPositionRect)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetMixerBitmapPositionRect<P0>(&self, rdest: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidRect>,
{
unsafe { (windows_core::Interface::vtable(self).SetMixerBitmapPositionRect)(windows_core::Interface::as_raw(self), rdest.param().abi()).ok() }
}
pub unsafe fn MixerBitmapOpacity(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MixerBitmapOpacity)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMixerBitmapOpacity(&self, opacity: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMixerBitmapOpacity)(windows_core::Interface::as_raw(self), opacity).ok() }
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn SetupMixerBitmap<P0, P2>(&self, mixerpicturedisp: P0, opacity: i32, rdest: P2) -> windows_core::Result<()>
where
P0: windows_core::Param<super::super::super::System::Ole::IPictureDisp>,
P2: windows_core::Param<IMSVidRect>,
{
unsafe { (windows_core::Interface::vtable(self).SetupMixerBitmap)(windows_core::Interface::as_raw(self), mixerpicturedisp.param().abi(), opacity, rdest.param().abi()).ok() }
}
pub unsafe fn SourceSize(&self) -> windows_core::Result<SourceSizeList> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SourceSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSourceSize(&self, newsize: SourceSizeList) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSourceSize)(windows_core::Interface::as_raw(self), newsize).ok() }
}
pub unsafe fn OverScan(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OverScan)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetOverScan(&self, lpercent: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetOverScan)(windows_core::Interface::as_raw(self), lpercent).ok() }
}
pub unsafe fn AvailableSourceRect(&self) -> windows_core::Result<IMSVidRect> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AvailableSourceRect)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn MaxVidRect(&self) -> windows_core::Result<IMSVidRect> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MaxVidRect)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn MinVidRect(&self) -> windows_core::Result<IMSVidRect> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MinVidRect)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn ClippedSourceRect(&self) -> windows_core::Result<IMSVidRect> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ClippedSourceRect)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetClippedSourceRect<P0>(&self, prect: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidRect>,
{
unsafe { (windows_core::Interface::vtable(self).SetClippedSourceRect)(windows_core::Interface::as_raw(self), prect.param().abi()).ok() }
}
pub unsafe fn UsingOverlay(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).UsingOverlay)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetUsingOverlay(&self, useoverlayval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetUsingOverlay)(windows_core::Interface::as_raw(self), useoverlayval).ok() }
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn Capture(&self) -> windows_core::Result<super::super::super::System::Ole::IPictureDisp> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Capture)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn FramesPerSecond(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FramesPerSecond)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn DecimateInput(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DecimateInput)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetDecimateInput(&self, pdeci: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDecimateInput)(windows_core::Interface::as_raw(self), pdeci).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidVideoRenderer_Vtbl {
pub base__: IMSVidOutputDevice_Vtbl,
pub CustomCompositorClass: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetCustomCompositorClass: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub _CustomCompositorClass: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub Set_CustomCompositorClass: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID) -> windows_core::HRESULT,
pub _CustomCompositor: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Set_CustomCompositor: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub MixerBitmap: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
MixerBitmap: usize,
pub _MixerBitmap: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub SetMixerBitmap: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
SetMixerBitmap: usize,
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
pub Set_MixerBitmap: unsafe extern "system" fn(*mut core::ffi::c_void, *const super::VMRALPHABITMAP) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi")))]
Set_MixerBitmap: usize,
pub MixerBitmapPositionRect: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetMixerBitmapPositionRect: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub MixerBitmapOpacity: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMixerBitmapOpacity: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub SetupMixerBitmap: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, i32, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
SetupMixerBitmap: usize,
pub SourceSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut SourceSizeList) -> windows_core::HRESULT,
pub SetSourceSize: unsafe extern "system" fn(*mut core::ffi::c_void, SourceSizeList) -> windows_core::HRESULT,
pub OverScan: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetOverScan: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub AvailableSourceRect: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub MaxVidRect: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub MinVidRect: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub ClippedSourceRect: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetClippedSourceRect: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub UsingOverlay: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetUsingOverlay: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub Capture: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
Capture: usize,
pub FramesPerSecond: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub DecimateInput: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetDecimateInput: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidVideoRenderer_Impl: IMSVidOutputDevice_Impl {
fn CustomCompositorClass(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetCustomCompositorClass(&self, compositorclsid: &windows_core::BSTR) -> windows_core::Result<()>;
fn _CustomCompositorClass(&self) -> windows_core::Result<windows_core::GUID>;
fn Set_CustomCompositorClass(&self, compositorclsid: *const windows_core::GUID) -> windows_core::Result<()>;
fn _CustomCompositor(&self) -> windows_core::Result<super::IVMRImageCompositor>;
fn Set_CustomCompositor(&self, compositor: windows_core::Ref<super::IVMRImageCompositor>) -> windows_core::Result<()>;
fn MixerBitmap(&self) -> windows_core::Result<super::super::super::System::Ole::IPictureDisp>;
fn _MixerBitmap(&self) -> windows_core::Result<super::IVMRMixerBitmap>;
fn SetMixerBitmap(&self, mixerpicturedisp: windows_core::Ref<super::super::super::System::Ole::IPictureDisp>) -> windows_core::Result<()>;
fn Set_MixerBitmap(&self, mixerpicture: *const super::VMRALPHABITMAP) -> windows_core::Result<()>;
fn MixerBitmapPositionRect(&self) -> windows_core::Result<IMSVidRect>;
fn SetMixerBitmapPositionRect(&self, rdest: windows_core::Ref<IMSVidRect>) -> windows_core::Result<()>;
fn MixerBitmapOpacity(&self) -> windows_core::Result<i32>;
fn SetMixerBitmapOpacity(&self, opacity: i32) -> windows_core::Result<()>;
fn SetupMixerBitmap(&self, mixerpicturedisp: windows_core::Ref<super::super::super::System::Ole::IPictureDisp>, opacity: i32, rdest: windows_core::Ref<IMSVidRect>) -> windows_core::Result<()>;
fn SourceSize(&self) -> windows_core::Result<SourceSizeList>;
fn SetSourceSize(&self, newsize: SourceSizeList) -> windows_core::Result<()>;
fn OverScan(&self) -> windows_core::Result<i32>;
fn SetOverScan(&self, lpercent: i32) -> windows_core::Result<()>;
fn AvailableSourceRect(&self) -> windows_core::Result<IMSVidRect>;
fn MaxVidRect(&self) -> windows_core::Result<IMSVidRect>;
fn MinVidRect(&self) -> windows_core::Result<IMSVidRect>;
fn ClippedSourceRect(&self) -> windows_core::Result<IMSVidRect>;
fn SetClippedSourceRect(&self, prect: windows_core::Ref<IMSVidRect>) -> windows_core::Result<()>;
fn UsingOverlay(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetUsingOverlay(&self, useoverlayval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn Capture(&self) -> windows_core::Result<super::super::super::System::Ole::IPictureDisp>;
fn FramesPerSecond(&self) -> windows_core::Result<i32>;
fn DecimateInput(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetDecimateInput(&self, pdeci: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidVideoRenderer_Vtbl {
pub const fn new<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CustomCompositorClass<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, compositorclsid: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::CustomCompositorClass(this) {
Ok(ok__) => {
compositorclsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCustomCompositorClass<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, compositorclsid: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::SetCustomCompositorClass(this, core::mem::transmute(&compositorclsid)).into()
}
}
unsafe extern "system" fn _CustomCompositorClass<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, compositorclsid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::_CustomCompositorClass(this) {
Ok(ok__) => {
compositorclsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Set_CustomCompositorClass<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, compositorclsid: *const windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::Set_CustomCompositorClass(this, core::mem::transmute_copy(&compositorclsid)).into()
}
}
unsafe extern "system" fn _CustomCompositor<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, compositor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::_CustomCompositor(this) {
Ok(ok__) => {
compositor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Set_CustomCompositor<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, compositor: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::Set_CustomCompositor(this, core::mem::transmute_copy(&compositor)).into()
}
}
unsafe extern "system" fn MixerBitmap<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mixerpicturedisp: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::MixerBitmap(this) {
Ok(ok__) => {
mixerpicturedisp.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _MixerBitmap<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mixerpicture: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::_MixerBitmap(this) {
Ok(ok__) => {
mixerpicture.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMixerBitmap<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mixerpicturedisp: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::SetMixerBitmap(this, core::mem::transmute_copy(&mixerpicturedisp)).into()
}
}
unsafe extern "system" fn Set_MixerBitmap<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mixerpicture: *const super::VMRALPHABITMAP) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::Set_MixerBitmap(this, core::mem::transmute_copy(&mixerpicture)).into()
}
}
unsafe extern "system" fn MixerBitmapPositionRect<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rdest: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::MixerBitmapPositionRect(this) {
Ok(ok__) => {
rdest.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMixerBitmapPositionRect<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rdest: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::SetMixerBitmapPositionRect(this, core::mem::transmute_copy(&rdest)).into()
}
}
unsafe extern "system" fn MixerBitmapOpacity<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, opacity: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::MixerBitmapOpacity(this) {
Ok(ok__) => {
opacity.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMixerBitmapOpacity<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, opacity: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::SetMixerBitmapOpacity(this, core::mem::transmute_copy(&opacity)).into()
}
}
unsafe extern "system" fn SetupMixerBitmap<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mixerpicturedisp: *mut core::ffi::c_void, opacity: i32, rdest: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::SetupMixerBitmap(this, core::mem::transmute_copy(&mixerpicturedisp), core::mem::transmute_copy(&opacity), core::mem::transmute_copy(&rdest)).into()
}
}
unsafe extern "system" fn SourceSize<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentsize: *mut SourceSizeList) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::SourceSize(this) {
Ok(ok__) => {
currentsize.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSourceSize<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newsize: SourceSizeList) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::SetSourceSize(this, core::mem::transmute_copy(&newsize)).into()
}
}
unsafe extern "system" fn OverScan<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, plpercent: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::OverScan(this) {
Ok(ok__) => {
plpercent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetOverScan<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lpercent: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::SetOverScan(this, core::mem::transmute_copy(&lpercent)).into()
}
}
unsafe extern "system" fn AvailableSourceRect<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prect: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::AvailableSourceRect(this) {
Ok(ok__) => {
prect.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn MaxVidRect<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppvidrect: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::MaxVidRect(this) {
Ok(ok__) => {
ppvidrect.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn MinVidRect<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppvidrect: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::MinVidRect(this) {
Ok(ok__) => {
ppvidrect.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ClippedSourceRect<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prect: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::ClippedSourceRect(this) {
Ok(ok__) => {
prect.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetClippedSourceRect<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prect: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::SetClippedSourceRect(this, core::mem::transmute_copy(&prect)).into()
}
}
unsafe extern "system" fn UsingOverlay<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, useoverlayval: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::UsingOverlay(this) {
Ok(ok__) => {
useoverlayval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetUsingOverlay<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, useoverlayval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::SetUsingOverlay(this, core::mem::transmute_copy(&useoverlayval)).into()
}
}
unsafe extern "system" fn Capture<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentimage: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::Capture(this) {
Ok(ok__) => {
currentimage.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn FramesPerSecond<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::FramesPerSecond(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DecimateInput<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdeci: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer_Impl::DecimateInput(this) {
Ok(ok__) => {
pdeci.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDecimateInput<Identity: IMSVidVideoRenderer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdeci: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer_Impl::SetDecimateInput(this, core::mem::transmute_copy(&pdeci)).into()
}
}
Self {
base__: IMSVidOutputDevice_Vtbl::new::<Identity, OFFSET>(),
CustomCompositorClass: CustomCompositorClass::<Identity, OFFSET>,
SetCustomCompositorClass: SetCustomCompositorClass::<Identity, OFFSET>,
_CustomCompositorClass: _CustomCompositorClass::<Identity, OFFSET>,
Set_CustomCompositorClass: Set_CustomCompositorClass::<Identity, OFFSET>,
_CustomCompositor: _CustomCompositor::<Identity, OFFSET>,
Set_CustomCompositor: Set_CustomCompositor::<Identity, OFFSET>,
MixerBitmap: MixerBitmap::<Identity, OFFSET>,
_MixerBitmap: _MixerBitmap::<Identity, OFFSET>,
SetMixerBitmap: SetMixerBitmap::<Identity, OFFSET>,
Set_MixerBitmap: Set_MixerBitmap::<Identity, OFFSET>,
MixerBitmapPositionRect: MixerBitmapPositionRect::<Identity, OFFSET>,
SetMixerBitmapPositionRect: SetMixerBitmapPositionRect::<Identity, OFFSET>,
MixerBitmapOpacity: MixerBitmapOpacity::<Identity, OFFSET>,
SetMixerBitmapOpacity: SetMixerBitmapOpacity::<Identity, OFFSET>,
SetupMixerBitmap: SetupMixerBitmap::<Identity, OFFSET>,
SourceSize: SourceSize::<Identity, OFFSET>,
SetSourceSize: SetSourceSize::<Identity, OFFSET>,
OverScan: OverScan::<Identity, OFFSET>,
SetOverScan: SetOverScan::<Identity, OFFSET>,
AvailableSourceRect: AvailableSourceRect::<Identity, OFFSET>,
MaxVidRect: MaxVidRect::<Identity, OFFSET>,
MinVidRect: MinVidRect::<Identity, OFFSET>,
ClippedSourceRect: ClippedSourceRect::<Identity, OFFSET>,
SetClippedSourceRect: SetClippedSourceRect::<Identity, OFFSET>,
UsingOverlay: UsingOverlay::<Identity, OFFSET>,
SetUsingOverlay: SetUsingOverlay::<Identity, OFFSET>,
Capture: Capture::<Identity, OFFSET>,
FramesPerSecond: FramesPerSecond::<Identity, OFFSET>,
DecimateInput: DecimateInput::<Identity, OFFSET>,
SetDecimateInput: SetDecimateInput::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidVideoRenderer as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidOutputDevice as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidVideoRenderer {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidVideoRenderer2, IMSVidVideoRenderer2_Vtbl, 0x6bdd5c1e_2810_4159_94bc_05511ae8549b);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidVideoRenderer2 {
type Target = IMSVidVideoRenderer;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidVideoRenderer2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidOutputDevice, IMSVidVideoRenderer);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidVideoRenderer2 {
pub unsafe fn Allocator(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Allocator)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn _Allocator(&self) -> windows_core::Result<super::IVMRSurfaceAllocator> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._Allocator)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Allocator_ID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Allocator_ID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetAllocator<P0>(&self, allocpresent: P0, id: i32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
unsafe { (windows_core::Interface::vtable(self).SetAllocator)(windows_core::Interface::as_raw(self), allocpresent.param().abi(), id).ok() }
}
pub unsafe fn _SetAllocator2<P0>(&self, allocpresent: P0, id: i32) -> windows_core::Result<()>
where
P0: windows_core::Param<super::IVMRSurfaceAllocator>,
{
unsafe { (windows_core::Interface::vtable(self)._SetAllocator2)(windows_core::Interface::as_raw(self), allocpresent.param().abi(), id).ok() }
}
pub unsafe fn SetSuppressEffects(&self, bsuppress: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSuppressEffects)(windows_core::Interface::as_raw(self), bsuppress).ok() }
}
pub unsafe fn SuppressEffects(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SuppressEffects)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidVideoRenderer2_Vtbl {
pub base__: IMSVidVideoRenderer_Vtbl,
pub Allocator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub _Allocator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Allocator_ID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetAllocator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub _SetAllocator2: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub SetSuppressEffects: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SuppressEffects: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidVideoRenderer2_Impl: IMSVidVideoRenderer_Impl {
fn Allocator(&self) -> windows_core::Result<windows_core::IUnknown>;
fn _Allocator(&self) -> windows_core::Result<super::IVMRSurfaceAllocator>;
fn Allocator_ID(&self) -> windows_core::Result<i32>;
fn SetAllocator(&self, allocpresent: windows_core::Ref<windows_core::IUnknown>, id: i32) -> windows_core::Result<()>;
fn _SetAllocator2(&self, allocpresent: windows_core::Ref<super::IVMRSurfaceAllocator>, id: i32) -> windows_core::Result<()>;
fn SetSuppressEffects(&self, bsuppress: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn SuppressEffects(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidVideoRenderer2_Vtbl {
pub const fn new<Identity: IMSVidVideoRenderer2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Allocator<Identity: IMSVidVideoRenderer2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, allocpresent: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer2_Impl::Allocator(this) {
Ok(ok__) => {
allocpresent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _Allocator<Identity: IMSVidVideoRenderer2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, allocpresent: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer2_Impl::_Allocator(this) {
Ok(ok__) => {
allocpresent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Allocator_ID<Identity: IMSVidVideoRenderer2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, id: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer2_Impl::Allocator_ID(this) {
Ok(ok__) => {
id.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetAllocator<Identity: IMSVidVideoRenderer2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, allocpresent: *mut core::ffi::c_void, id: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer2_Impl::SetAllocator(this, core::mem::transmute_copy(&allocpresent), core::mem::transmute_copy(&id)).into()
}
}
unsafe extern "system" fn _SetAllocator2<Identity: IMSVidVideoRenderer2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, allocpresent: *mut core::ffi::c_void, id: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer2_Impl::_SetAllocator2(this, core::mem::transmute_copy(&allocpresent), core::mem::transmute_copy(&id)).into()
}
}
unsafe extern "system" fn SetSuppressEffects<Identity: IMSVidVideoRenderer2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bsuppress: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRenderer2_Impl::SetSuppressEffects(this, core::mem::transmute_copy(&bsuppress)).into()
}
}
unsafe extern "system" fn SuppressEffects<Identity: IMSVidVideoRenderer2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bsuppress: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRenderer2_Impl::SuppressEffects(this) {
Ok(ok__) => {
bsuppress.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IMSVidVideoRenderer_Vtbl::new::<Identity, OFFSET>(),
Allocator: Allocator::<Identity, OFFSET>,
_Allocator: _Allocator::<Identity, OFFSET>,
Allocator_ID: Allocator_ID::<Identity, OFFSET>,
SetAllocator: SetAllocator::<Identity, OFFSET>,
_SetAllocator2: _SetAllocator2::<Identity, OFFSET>,
SetSuppressEffects: SetSuppressEffects::<Identity, OFFSET>,
SuppressEffects: SuppressEffects::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidVideoRenderer2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidOutputDevice as windows_core::Interface>::IID || iid == &<IMSVidVideoRenderer as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidVideoRenderer2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidVideoRendererDevices, IMSVidVideoRendererDevices_Vtbl, 0xc5702cd3_9b79_11d3_b654_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidVideoRendererDevices {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidVideoRendererDevices, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidVideoRendererDevices {
pub unsafe fn Count(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NewEnum)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn get_Item(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IMSVidVideoRenderer> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(v), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Add<P0>(&self, pdb: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidVideoRenderer>,
{
unsafe { (windows_core::Interface::vtable(self).Add)(windows_core::Interface::as_raw(self), pdb.param().abi()).ok() }
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Remove(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Remove)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(v)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidVideoRendererDevices_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub _NewEnum: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
_NewEnum: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub get_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
get_Item: usize,
pub Add: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Remove: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Remove: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidVideoRendererDevices_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> windows_core::Result<i32>;
fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn get_Item(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<IMSVidVideoRenderer>;
fn Add(&self, pdb: windows_core::Ref<IMSVidVideoRenderer>) -> windows_core::Result<()>;
fn Remove(&self, v: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidVideoRendererDevices_Vtbl {
pub const fn new<Identity: IMSVidVideoRendererDevices_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<Identity: IMSVidVideoRendererDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcount: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRendererDevices_Impl::Count(this) {
Ok(ok__) => {
lcount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _NewEnum<Identity: IMSVidVideoRendererDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pd: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRendererDevices_Impl::_NewEnum(this) {
Ok(ok__) => {
pd.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_Item<Identity: IMSVidVideoRendererDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: super::super::super::System::Variant::VARIANT, pdb: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidVideoRendererDevices_Impl::get_Item(this, core::mem::transmute(&v)) {
Ok(ok__) => {
pdb.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Add<Identity: IMSVidVideoRendererDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdb: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRendererDevices_Impl::Add(this, core::mem::transmute_copy(&pdb)).into()
}
}
unsafe extern "system" fn Remove<Identity: IMSVidVideoRendererDevices_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, v: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRendererDevices_Impl::Remove(this, core::mem::transmute(&v)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
_NewEnum: _NewEnum::<Identity, OFFSET>,
get_Item: get_Item::<Identity, OFFSET>,
Add: Add::<Identity, OFFSET>,
Remove: Remove::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidVideoRendererDevices as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidVideoRendererDevices {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidVideoRendererEvent, IMSVidVideoRendererEvent_Vtbl, 0x37b03545_a4c8_11d2_b634_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidVideoRendererEvent {
type Target = IMSVidOutputDeviceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidVideoRendererEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent, IMSVidOutputDeviceEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidVideoRendererEvent {
pub unsafe fn OverlayUnavailable(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).OverlayUnavailable)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidVideoRendererEvent_Vtbl {
pub base__: IMSVidOutputDeviceEvent_Vtbl,
pub OverlayUnavailable: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidVideoRendererEvent_Impl: IMSVidOutputDeviceEvent_Impl {
fn OverlayUnavailable(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidVideoRendererEvent_Vtbl {
pub const fn new<Identity: IMSVidVideoRendererEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn OverlayUnavailable<Identity: IMSVidVideoRendererEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRendererEvent_Impl::OverlayUnavailable(this).into()
}
}
Self { base__: IMSVidOutputDeviceEvent_Vtbl::new::<Identity, OFFSET>(), OverlayUnavailable: OverlayUnavailable::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidVideoRendererEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidOutputDeviceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidVideoRendererEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidVideoRendererEvent2, IMSVidVideoRendererEvent2_Vtbl, 0x7145ed66_4730_4fdb_8a53_fde7508d3e5e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidVideoRendererEvent2 {
type Target = IMSVidOutputDeviceEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidVideoRendererEvent2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent, IMSVidOutputDeviceEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidVideoRendererEvent2 {
pub unsafe fn OverlayUnavailable(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).OverlayUnavailable)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidVideoRendererEvent2_Vtbl {
pub base__: IMSVidOutputDeviceEvent_Vtbl,
pub OverlayUnavailable: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidVideoRendererEvent2_Impl: IMSVidOutputDeviceEvent_Impl {
fn OverlayUnavailable(&self) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidVideoRendererEvent2_Vtbl {
pub const fn new<Identity: IMSVidVideoRendererEvent2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn OverlayUnavailable<Identity: IMSVidVideoRendererEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidVideoRendererEvent2_Impl::OverlayUnavailable(this).into()
}
}
Self { base__: IMSVidOutputDeviceEvent_Vtbl::new::<Identity, OFFSET>(), OverlayUnavailable: OverlayUnavailable::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidVideoRendererEvent2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidOutputDeviceEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidVideoRendererEvent2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidWebDVD, IMSVidWebDVD_Vtbl, 0xcf45f88b_ac56_4ee2_a73a_ed04e2885d3c);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidWebDVD {
type Target = IMSVidPlayback;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidWebDVD, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice, IMSVidPlayback);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidWebDVD {
pub unsafe fn OnDVDEvent(&self, levent: i32, lparam1: isize, lparam2: isize) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).OnDVDEvent)(windows_core::Interface::as_raw(self), levent, lparam1, lparam2).ok() }
}
pub unsafe fn PlayTitle(&self, ltitle: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayTitle)(windows_core::Interface::as_raw(self), ltitle).ok() }
}
pub unsafe fn PlayChapterInTitle(&self, ltitle: i32, lchapter: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayChapterInTitle)(windows_core::Interface::as_raw(self), ltitle, lchapter).ok() }
}
pub unsafe fn PlayChapter(&self, lchapter: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayChapter)(windows_core::Interface::as_raw(self), lchapter).ok() }
}
pub unsafe fn PlayChaptersAutoStop(&self, ltitle: i32, lstrchapter: i32, lchaptercount: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayChaptersAutoStop)(windows_core::Interface::as_raw(self), ltitle, lstrchapter, lchaptercount).ok() }
}
pub unsafe fn PlayAtTime(&self, strtime: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayAtTime)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(strtime)).ok() }
}
pub unsafe fn PlayAtTimeInTitle(&self, ltitle: i32, strtime: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayAtTimeInTitle)(windows_core::Interface::as_raw(self), ltitle, core::mem::transmute_copy(strtime)).ok() }
}
pub unsafe fn PlayPeriodInTitleAutoStop(&self, ltitle: i32, strstarttime: &windows_core::BSTR, strendtime: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayPeriodInTitleAutoStop)(windows_core::Interface::as_raw(self), ltitle, core::mem::transmute_copy(strstarttime), core::mem::transmute_copy(strendtime)).ok() }
}
pub unsafe fn ReplayChapter(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ReplayChapter)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn PlayPrevChapter(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayPrevChapter)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn PlayNextChapter(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayNextChapter)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn StillOff(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).StillOff)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn get_AudioLanguage(&self, lstream: i32, fformat: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_AudioLanguage)(windows_core::Interface::as_raw(self), lstream, fformat, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn ShowMenu(&self, menuid: DVDMenuIDConstants) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ShowMenu)(windows_core::Interface::as_raw(self), menuid).ok() }
}
pub unsafe fn Resume(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Resume)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn ReturnFromSubmenu(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ReturnFromSubmenu)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn ButtonsAvailable(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ButtonsAvailable)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn CurrentButton(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentButton)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SelectAndActivateButton(&self, lbutton: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectAndActivateButton)(windows_core::Interface::as_raw(self), lbutton).ok() }
}
pub unsafe fn ActivateButton(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ActivateButton)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SelectRightButton(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectRightButton)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SelectLeftButton(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectLeftButton)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SelectLowerButton(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectLowerButton)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SelectUpperButton(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectUpperButton)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn ActivateAtPosition(&self, xpos: i32, ypos: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ActivateAtPosition)(windows_core::Interface::as_raw(self), xpos, ypos).ok() }
}
pub unsafe fn SelectAtPosition(&self, xpos: i32, ypos: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectAtPosition)(windows_core::Interface::as_raw(self), xpos, ypos).ok() }
}
pub unsafe fn get_ButtonAtPosition(&self, xpos: i32, ypos: i32) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_ButtonAtPosition)(windows_core::Interface::as_raw(self), xpos, ypos, &mut result__).map(|| result__)
}
}
pub unsafe fn get_NumberOfChapters(&self, ltitle: i32) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_NumberOfChapters)(windows_core::Interface::as_raw(self), ltitle, &mut result__).map(|| result__)
}
}
pub unsafe fn TotalTitleTime(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TotalTitleTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn TitlesAvailable(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TitlesAvailable)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn VolumesAvailable(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VolumesAvailable)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn CurrentVolume(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentVolume)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn CurrentDiscSide(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentDiscSide)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn CurrentDomain(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentDomain)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn CurrentChapter(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentChapter)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn CurrentTitle(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentTitle)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn CurrentTime(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn DVDTimeCode2bstr(&self, timecode: i32) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DVDTimeCode2bstr)(windows_core::Interface::as_raw(self), timecode, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn DVDDirectory(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DVDDirectory)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetDVDDirectory(&self, newval: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDVDDirectory)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(newval)).ok() }
}
pub unsafe fn IsSubpictureStreamEnabled(&self, lstream: i32) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsSubpictureStreamEnabled)(windows_core::Interface::as_raw(self), lstream, &mut result__).map(|| result__)
}
}
pub unsafe fn IsAudioStreamEnabled(&self, lstream: i32) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsAudioStreamEnabled)(windows_core::Interface::as_raw(self), lstream, &mut result__).map(|| result__)
}
}
pub unsafe fn CurrentSubpictureStream(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentSubpictureStream)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCurrentSubpictureStream(&self, newval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCurrentSubpictureStream)(windows_core::Interface::as_raw(self), newval).ok() }
}
pub unsafe fn get_SubpictureLanguage(&self, lstream: i32) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_SubpictureLanguage)(windows_core::Interface::as_raw(self), lstream, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn CurrentAudioStream(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentAudioStream)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCurrentAudioStream(&self, newval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCurrentAudioStream)(windows_core::Interface::as_raw(self), newval).ok() }
}
pub unsafe fn AudioStreamsAvailable(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AudioStreamsAvailable)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn AnglesAvailable(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AnglesAvailable)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn CurrentAngle(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CurrentAngle)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCurrentAngle(&self, newval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCurrentAngle)(windows_core::Interface::as_raw(self), newval).ok() }
}
pub unsafe fn SubpictureStreamsAvailable(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SubpictureStreamsAvailable)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SubpictureOn(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SubpictureOn)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetSubpictureOn(&self, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSubpictureOn)(windows_core::Interface::as_raw(self), newval).ok() }
}
pub unsafe fn DVDUniqueID(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DVDUniqueID)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn AcceptParentalLevelChange(&self, faccept: super::super::super::Foundation::VARIANT_BOOL, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AcceptParentalLevelChange)(windows_core::Interface::as_raw(self), faccept, core::mem::transmute_copy(strusername), core::mem::transmute_copy(strpassword)).ok() }
}
pub unsafe fn NotifyParentalLevelChange(&self, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).NotifyParentalLevelChange)(windows_core::Interface::as_raw(self), newval).ok() }
}
pub unsafe fn SelectParentalCountry(&self, lcountry: i32, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectParentalCountry)(windows_core::Interface::as_raw(self), lcountry, core::mem::transmute_copy(strusername), core::mem::transmute_copy(strpassword)).ok() }
}
pub unsafe fn SelectParentalLevel(&self, lparentallevel: i32, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectParentalLevel)(windows_core::Interface::as_raw(self), lparentallevel, core::mem::transmute_copy(strusername), core::mem::transmute_copy(strpassword)).ok() }
}
pub unsafe fn get_TitleParentalLevels(&self, ltitle: i32) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_TitleParentalLevels)(windows_core::Interface::as_raw(self), ltitle, &mut result__).map(|| result__)
}
}
pub unsafe fn PlayerParentalCountry(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PlayerParentalCountry)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn PlayerParentalLevel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PlayerParentalLevel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Eject(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Eject)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn UOPValid(&self, luop: i32) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).UOPValid)(windows_core::Interface::as_raw(self), luop, &mut result__).map(|| result__)
}
}
pub unsafe fn get_SPRM(&self, lindex: i32) -> windows_core::Result<i16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_SPRM)(windows_core::Interface::as_raw(self), lindex, &mut result__).map(|| result__)
}
}
pub unsafe fn get_GPRM(&self, lindex: i32) -> windows_core::Result<i16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_GPRM)(windows_core::Interface::as_raw(self), lindex, &mut result__).map(|| result__)
}
}
pub unsafe fn put_GPRM(&self, lindex: i32, svalue: i16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).put_GPRM)(windows_core::Interface::as_raw(self), lindex, svalue).ok() }
}
pub unsafe fn get_DVDTextStringType(&self, llangindex: i32, lstringindex: i32) -> windows_core::Result<DVDTextStringType> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_DVDTextStringType)(windows_core::Interface::as_raw(self), llangindex, lstringindex, &mut result__).map(|| result__)
}
}
pub unsafe fn get_DVDTextString(&self, llangindex: i32, lstringindex: i32) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_DVDTextString)(windows_core::Interface::as_raw(self), llangindex, lstringindex, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn get_DVDTextNumberOfStrings(&self, llangindex: i32) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_DVDTextNumberOfStrings)(windows_core::Interface::as_raw(self), llangindex, &mut result__).map(|| result__)
}
}
pub unsafe fn DVDTextNumberOfLanguages(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DVDTextNumberOfLanguages)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn get_DVDTextLanguageLCID(&self, llangindex: i32) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_DVDTextLanguageLCID)(windows_core::Interface::as_raw(self), llangindex, &mut result__).map(|| result__)
}
}
pub unsafe fn RegionChange(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegionChange)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn DVDAdm(&self) -> windows_core::Result<super::super::super::System::Com::IDispatch> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DVDAdm)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn DeleteBookmark(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).DeleteBookmark)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn RestoreBookmark(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RestoreBookmark)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SaveBookmark(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SaveBookmark)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SelectDefaultAudioLanguage(&self, lang: i32, ext: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectDefaultAudioLanguage)(windows_core::Interface::as_raw(self), lang, ext).ok() }
}
pub unsafe fn SelectDefaultSubpictureLanguage(&self, lang: i32, ext: DVDSPExt) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectDefaultSubpictureLanguage)(windows_core::Interface::as_raw(self), lang, ext).ok() }
}
pub unsafe fn PreferredSubpictureStream(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PreferredSubpictureStream)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn DefaultMenuLanguage(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultMenuLanguage)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetDefaultMenuLanguage(&self, lang: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDefaultMenuLanguage)(windows_core::Interface::as_raw(self), lang).ok() }
}
pub unsafe fn DefaultSubpictureLanguage(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultSubpictureLanguage)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn DefaultAudioLanguage(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultAudioLanguage)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn DefaultSubpictureLanguageExt(&self) -> windows_core::Result<DVDSPExt> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultSubpictureLanguageExt)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn DefaultAudioLanguageExt(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultAudioLanguageExt)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn get_LanguageFromLCID(&self, lcid: i32) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_LanguageFromLCID)(windows_core::Interface::as_raw(self), lcid, &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn KaraokeAudioPresentationMode(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).KaraokeAudioPresentationMode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetKaraokeAudioPresentationMode(&self, newval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetKaraokeAudioPresentationMode)(windows_core::Interface::as_raw(self), newval).ok() }
}
pub unsafe fn get_KaraokeChannelContent(&self, lstream: i32, lchan: i32) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_KaraokeChannelContent)(windows_core::Interface::as_raw(self), lstream, lchan, &mut result__).map(|| result__)
}
}
pub unsafe fn get_KaraokeChannelAssignment(&self, lstream: i32) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_KaraokeChannelAssignment)(windows_core::Interface::as_raw(self), lstream, &mut result__).map(|| result__)
}
}
pub unsafe fn RestorePreferredSettings(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RestorePreferredSettings)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn get_ButtonRect(&self, lbutton: i32) -> windows_core::Result<IMSVidRect> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_ButtonRect)(windows_core::Interface::as_raw(self), lbutton, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn DVDScreenInMouseCoordinates(&self) -> windows_core::Result<IMSVidRect> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DVDScreenInMouseCoordinates)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetDVDScreenInMouseCoordinates<P0>(&self, prect: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IMSVidRect>,
{
unsafe { (windows_core::Interface::vtable(self).SetDVDScreenInMouseCoordinates)(windows_core::Interface::as_raw(self), prect.param().abi()).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidWebDVD_Vtbl {
pub base__: IMSVidPlayback_Vtbl,
pub OnDVDEvent: unsafe extern "system" fn(*mut core::ffi::c_void, i32, isize, isize) -> windows_core::HRESULT,
pub PlayTitle: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub PlayChapterInTitle: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32) -> windows_core::HRESULT,
pub PlayChapter: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub PlayChaptersAutoStop: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32, i32) -> windows_core::HRESULT,
pub PlayAtTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub PlayAtTimeInTitle: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub PlayPeriodInTitleAutoStop: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReplayChapter: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub PlayPrevChapter: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub PlayNextChapter: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub StillOff: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub get_AudioLanguage: unsafe extern "system" fn(*mut core::ffi::c_void, i32, super::super::super::Foundation::VARIANT_BOOL, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub ShowMenu: unsafe extern "system" fn(*mut core::ffi::c_void, DVDMenuIDConstants) -> windows_core::HRESULT,
pub Resume: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReturnFromSubmenu: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ButtonsAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub CurrentButton: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SelectAndActivateButton: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub ActivateButton: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SelectRightButton: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SelectLeftButton: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SelectLowerButton: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SelectUpperButton: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ActivateAtPosition: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32) -> windows_core::HRESULT,
pub SelectAtPosition: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32) -> windows_core::HRESULT,
pub get_ButtonAtPosition: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32, *mut i32) -> windows_core::HRESULT,
pub get_NumberOfChapters: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut i32) -> windows_core::HRESULT,
pub TotalTitleTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub TitlesAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub VolumesAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub CurrentVolume: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub CurrentDiscSide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub CurrentDomain: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub CurrentChapter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub CurrentTitle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub CurrentTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub DVDTimeCode2bstr: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub DVDDirectory: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetDVDDirectory: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub IsSubpictureStreamEnabled: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub IsAudioStreamEnabled: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub CurrentSubpictureStream: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetCurrentSubpictureStream: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub get_SubpictureLanguage: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CurrentAudioStream: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetCurrentAudioStream: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub AudioStreamsAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub AnglesAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub CurrentAngle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetCurrentAngle: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub SubpictureStreamsAvailable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SubpictureOn: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetSubpictureOn: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub DVDUniqueID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AcceptParentalLevelChange: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub NotifyParentalLevelChange: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SelectParentalCountry: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SelectParentalLevel: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub get_TitleParentalLevels: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut i32) -> windows_core::HRESULT,
pub PlayerParentalCountry: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub PlayerParentalLevel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub Eject: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub UOPValid: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub get_SPRM: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut i16) -> windows_core::HRESULT,
pub get_GPRM: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut i16) -> windows_core::HRESULT,
pub put_GPRM: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i16) -> windows_core::HRESULT,
pub get_DVDTextStringType: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32, *mut DVDTextStringType) -> windows_core::HRESULT,
pub get_DVDTextString: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub get_DVDTextNumberOfStrings: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut i32) -> windows_core::HRESULT,
pub DVDTextNumberOfLanguages: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub get_DVDTextLanguageLCID: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut i32) -> windows_core::HRESULT,
pub RegionChange: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DVDAdm: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub DeleteBookmark: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub RestoreBookmark: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SaveBookmark: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SelectDefaultAudioLanguage: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32) -> windows_core::HRESULT,
pub SelectDefaultSubpictureLanguage: unsafe extern "system" fn(*mut core::ffi::c_void, i32, DVDSPExt) -> windows_core::HRESULT,
pub PreferredSubpictureStream: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub DefaultMenuLanguage: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetDefaultMenuLanguage: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub DefaultSubpictureLanguage: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub DefaultAudioLanguage: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub DefaultSubpictureLanguageExt: unsafe extern "system" fn(*mut core::ffi::c_void, *mut DVDSPExt) -> windows_core::HRESULT,
pub DefaultAudioLanguageExt: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub get_LanguageFromLCID: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub KaraokeAudioPresentationMode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetKaraokeAudioPresentationMode: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub get_KaraokeChannelContent: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32, *mut i32) -> windows_core::HRESULT,
pub get_KaraokeChannelAssignment: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut i32) -> windows_core::HRESULT,
pub RestorePreferredSettings: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub get_ButtonRect: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub DVDScreenInMouseCoordinates: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetDVDScreenInMouseCoordinates: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidWebDVD_Impl: IMSVidPlayback_Impl {
fn OnDVDEvent(&self, levent: i32, lparam1: isize, lparam2: isize) -> windows_core::Result<()>;
fn PlayTitle(&self, ltitle: i32) -> windows_core::Result<()>;
fn PlayChapterInTitle(&self, ltitle: i32, lchapter: i32) -> windows_core::Result<()>;
fn PlayChapter(&self, lchapter: i32) -> windows_core::Result<()>;
fn PlayChaptersAutoStop(&self, ltitle: i32, lstrchapter: i32, lchaptercount: i32) -> windows_core::Result<()>;
fn PlayAtTime(&self, strtime: &windows_core::BSTR) -> windows_core::Result<()>;
fn PlayAtTimeInTitle(&self, ltitle: i32, strtime: &windows_core::BSTR) -> windows_core::Result<()>;
fn PlayPeriodInTitleAutoStop(&self, ltitle: i32, strstarttime: &windows_core::BSTR, strendtime: &windows_core::BSTR) -> windows_core::Result<()>;
fn ReplayChapter(&self) -> windows_core::Result<()>;
fn PlayPrevChapter(&self) -> windows_core::Result<()>;
fn PlayNextChapter(&self) -> windows_core::Result<()>;
fn StillOff(&self) -> windows_core::Result<()>;
fn get_AudioLanguage(&self, lstream: i32, fformat: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<windows_core::BSTR>;
fn ShowMenu(&self, menuid: DVDMenuIDConstants) -> windows_core::Result<()>;
fn Resume(&self) -> windows_core::Result<()>;
fn ReturnFromSubmenu(&self) -> windows_core::Result<()>;
fn ButtonsAvailable(&self) -> windows_core::Result<i32>;
fn CurrentButton(&self) -> windows_core::Result<i32>;
fn SelectAndActivateButton(&self, lbutton: i32) -> windows_core::Result<()>;
fn ActivateButton(&self) -> windows_core::Result<()>;
fn SelectRightButton(&self) -> windows_core::Result<()>;
fn SelectLeftButton(&self) -> windows_core::Result<()>;
fn SelectLowerButton(&self) -> windows_core::Result<()>;
fn SelectUpperButton(&self) -> windows_core::Result<()>;
fn ActivateAtPosition(&self, xpos: i32, ypos: i32) -> windows_core::Result<()>;
fn SelectAtPosition(&self, xpos: i32, ypos: i32) -> windows_core::Result<()>;
fn get_ButtonAtPosition(&self, xpos: i32, ypos: i32) -> windows_core::Result<i32>;
fn get_NumberOfChapters(&self, ltitle: i32) -> windows_core::Result<i32>;
fn TotalTitleTime(&self) -> windows_core::Result<windows_core::BSTR>;
fn TitlesAvailable(&self) -> windows_core::Result<i32>;
fn VolumesAvailable(&self) -> windows_core::Result<i32>;
fn CurrentVolume(&self) -> windows_core::Result<i32>;
fn CurrentDiscSide(&self) -> windows_core::Result<i32>;
fn CurrentDomain(&self) -> windows_core::Result<i32>;
fn CurrentChapter(&self) -> windows_core::Result<i32>;
fn CurrentTitle(&self) -> windows_core::Result<i32>;
fn CurrentTime(&self) -> windows_core::Result<windows_core::BSTR>;
fn DVDTimeCode2bstr(&self, timecode: i32) -> windows_core::Result<windows_core::BSTR>;
fn DVDDirectory(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetDVDDirectory(&self, newval: &windows_core::BSTR) -> windows_core::Result<()>;
fn IsSubpictureStreamEnabled(&self, lstream: i32) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn IsAudioStreamEnabled(&self, lstream: i32) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn CurrentSubpictureStream(&self) -> windows_core::Result<i32>;
fn SetCurrentSubpictureStream(&self, newval: i32) -> windows_core::Result<()>;
fn get_SubpictureLanguage(&self, lstream: i32) -> windows_core::Result<windows_core::BSTR>;
fn CurrentAudioStream(&self) -> windows_core::Result<i32>;
fn SetCurrentAudioStream(&self, newval: i32) -> windows_core::Result<()>;
fn AudioStreamsAvailable(&self) -> windows_core::Result<i32>;
fn AnglesAvailable(&self) -> windows_core::Result<i32>;
fn CurrentAngle(&self) -> windows_core::Result<i32>;
fn SetCurrentAngle(&self, newval: i32) -> windows_core::Result<()>;
fn SubpictureStreamsAvailable(&self) -> windows_core::Result<i32>;
fn SubpictureOn(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetSubpictureOn(&self, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn DVDUniqueID(&self) -> windows_core::Result<windows_core::BSTR>;
fn AcceptParentalLevelChange(&self, faccept: super::super::super::Foundation::VARIANT_BOOL, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<()>;
fn NotifyParentalLevelChange(&self, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn SelectParentalCountry(&self, lcountry: i32, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<()>;
fn SelectParentalLevel(&self, lparentallevel: i32, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<()>;
fn get_TitleParentalLevels(&self, ltitle: i32) -> windows_core::Result<i32>;
fn PlayerParentalCountry(&self) -> windows_core::Result<i32>;
fn PlayerParentalLevel(&self) -> windows_core::Result<i32>;
fn Eject(&self) -> windows_core::Result<()>;
fn UOPValid(&self, luop: i32) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn get_SPRM(&self, lindex: i32) -> windows_core::Result<i16>;
fn get_GPRM(&self, lindex: i32) -> windows_core::Result<i16>;
fn put_GPRM(&self, lindex: i32, svalue: i16) -> windows_core::Result<()>;
fn get_DVDTextStringType(&self, llangindex: i32, lstringindex: i32) -> windows_core::Result<DVDTextStringType>;
fn get_DVDTextString(&self, llangindex: i32, lstringindex: i32) -> windows_core::Result<windows_core::BSTR>;
fn get_DVDTextNumberOfStrings(&self, llangindex: i32) -> windows_core::Result<i32>;
fn DVDTextNumberOfLanguages(&self) -> windows_core::Result<i32>;
fn get_DVDTextLanguageLCID(&self, llangindex: i32) -> windows_core::Result<i32>;
fn RegionChange(&self) -> windows_core::Result<()>;
fn DVDAdm(&self) -> windows_core::Result<super::super::super::System::Com::IDispatch>;
fn DeleteBookmark(&self) -> windows_core::Result<()>;
fn RestoreBookmark(&self) -> windows_core::Result<()>;
fn SaveBookmark(&self) -> windows_core::Result<()>;
fn SelectDefaultAudioLanguage(&self, lang: i32, ext: i32) -> windows_core::Result<()>;
fn SelectDefaultSubpictureLanguage(&self, lang: i32, ext: DVDSPExt) -> windows_core::Result<()>;
fn PreferredSubpictureStream(&self) -> windows_core::Result<i32>;
fn DefaultMenuLanguage(&self) -> windows_core::Result<i32>;
fn SetDefaultMenuLanguage(&self, lang: i32) -> windows_core::Result<()>;
fn DefaultSubpictureLanguage(&self) -> windows_core::Result<i32>;
fn DefaultAudioLanguage(&self) -> windows_core::Result<i32>;
fn DefaultSubpictureLanguageExt(&self) -> windows_core::Result<DVDSPExt>;
fn DefaultAudioLanguageExt(&self) -> windows_core::Result<i32>;
fn get_LanguageFromLCID(&self, lcid: i32) -> windows_core::Result<windows_core::BSTR>;
fn KaraokeAudioPresentationMode(&self) -> windows_core::Result<i32>;
fn SetKaraokeAudioPresentationMode(&self, newval: i32) -> windows_core::Result<()>;
fn get_KaraokeChannelContent(&self, lstream: i32, lchan: i32) -> windows_core::Result<i32>;
fn get_KaraokeChannelAssignment(&self, lstream: i32) -> windows_core::Result<i32>;
fn RestorePreferredSettings(&self) -> windows_core::Result<()>;
fn get_ButtonRect(&self, lbutton: i32) -> windows_core::Result<IMSVidRect>;
fn DVDScreenInMouseCoordinates(&self) -> windows_core::Result<IMSVidRect>;
fn SetDVDScreenInMouseCoordinates(&self, prect: windows_core::Ref<IMSVidRect>) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidWebDVD_Vtbl {
pub const fn new<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn OnDVDEvent<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, levent: i32, lparam1: isize, lparam2: isize) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::OnDVDEvent(this, core::mem::transmute_copy(&levent), core::mem::transmute_copy(&lparam1), core::mem::transmute_copy(&lparam2)).into()
}
}
unsafe extern "system" fn PlayTitle<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ltitle: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::PlayTitle(this, core::mem::transmute_copy(<itle)).into()
}
}
unsafe extern "system" fn PlayChapterInTitle<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ltitle: i32, lchapter: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::PlayChapterInTitle(this, core::mem::transmute_copy(<itle), core::mem::transmute_copy(&lchapter)).into()
}
}
unsafe extern "system" fn PlayChapter<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lchapter: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::PlayChapter(this, core::mem::transmute_copy(&lchapter)).into()
}
}
unsafe extern "system" fn PlayChaptersAutoStop<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ltitle: i32, lstrchapter: i32, lchaptercount: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::PlayChaptersAutoStop(this, core::mem::transmute_copy(<itle), core::mem::transmute_copy(&lstrchapter), core::mem::transmute_copy(&lchaptercount)).into()
}
}
unsafe extern "system" fn PlayAtTime<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, strtime: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::PlayAtTime(this, core::mem::transmute(&strtime)).into()
}
}
unsafe extern "system" fn PlayAtTimeInTitle<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ltitle: i32, strtime: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::PlayAtTimeInTitle(this, core::mem::transmute_copy(<itle), core::mem::transmute(&strtime)).into()
}
}
unsafe extern "system" fn PlayPeriodInTitleAutoStop<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ltitle: i32, strstarttime: *mut core::ffi::c_void, strendtime: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::PlayPeriodInTitleAutoStop(this, core::mem::transmute_copy(<itle), core::mem::transmute(&strstarttime), core::mem::transmute(&strendtime)).into()
}
}
unsafe extern "system" fn ReplayChapter<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::ReplayChapter(this).into()
}
}
unsafe extern "system" fn PlayPrevChapter<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::PlayPrevChapter(this).into()
}
}
unsafe extern "system" fn PlayNextChapter<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::PlayNextChapter(this).into()
}
}
unsafe extern "system" fn StillOff<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::StillOff(this).into()
}
}
unsafe extern "system" fn get_AudioLanguage<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lstream: i32, fformat: super::super::super::Foundation::VARIANT_BOOL, straudiolang: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_AudioLanguage(this, core::mem::transmute_copy(&lstream), core::mem::transmute_copy(&fformat)) {
Ok(ok__) => {
straudiolang.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ShowMenu<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, menuid: DVDMenuIDConstants) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::ShowMenu(this, core::mem::transmute_copy(&menuid)).into()
}
}
unsafe extern "system" fn Resume<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::Resume(this).into()
}
}
unsafe extern "system" fn ReturnFromSubmenu<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::ReturnFromSubmenu(this).into()
}
}
unsafe extern "system" fn ButtonsAvailable<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::ButtonsAvailable(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentButton<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::CurrentButton(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SelectAndActivateButton<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lbutton: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SelectAndActivateButton(this, core::mem::transmute_copy(&lbutton)).into()
}
}
unsafe extern "system" fn ActivateButton<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::ActivateButton(this).into()
}
}
unsafe extern "system" fn SelectRightButton<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SelectRightButton(this).into()
}
}
unsafe extern "system" fn SelectLeftButton<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SelectLeftButton(this).into()
}
}
unsafe extern "system" fn SelectLowerButton<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SelectLowerButton(this).into()
}
}
unsafe extern "system" fn SelectUpperButton<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SelectUpperButton(this).into()
}
}
unsafe extern "system" fn ActivateAtPosition<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, xpos: i32, ypos: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::ActivateAtPosition(this, core::mem::transmute_copy(&xpos), core::mem::transmute_copy(&ypos)).into()
}
}
unsafe extern "system" fn SelectAtPosition<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, xpos: i32, ypos: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SelectAtPosition(this, core::mem::transmute_copy(&xpos), core::mem::transmute_copy(&ypos)).into()
}
}
unsafe extern "system" fn get_ButtonAtPosition<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, xpos: i32, ypos: i32, plbutton: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_ButtonAtPosition(this, core::mem::transmute_copy(&xpos), core::mem::transmute_copy(&ypos)) {
Ok(ok__) => {
plbutton.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_NumberOfChapters<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ltitle: i32, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_NumberOfChapters(this, core::mem::transmute_copy(<itle)) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn TotalTitleTime<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::TotalTitleTime(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn TitlesAvailable<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::TitlesAvailable(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn VolumesAvailable<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::VolumesAvailable(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentVolume<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::CurrentVolume(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentDiscSide<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::CurrentDiscSide(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentDomain<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::CurrentDomain(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentChapter<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::CurrentChapter(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentTitle<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::CurrentTitle(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentTime<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::CurrentTime(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DVDTimeCode2bstr<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, timecode: i32, ptimestr: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DVDTimeCode2bstr(this, core::mem::transmute_copy(&timecode)) {
Ok(ok__) => {
ptimestr.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DVDDirectory<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DVDDirectory(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDVDDirectory<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SetDVDDirectory(this, core::mem::transmute(&newval)).into()
}
}
unsafe extern "system" fn IsSubpictureStreamEnabled<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lstream: i32, fenabled: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::IsSubpictureStreamEnabled(this, core::mem::transmute_copy(&lstream)) {
Ok(ok__) => {
fenabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn IsAudioStreamEnabled<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lstream: i32, fenabled: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::IsAudioStreamEnabled(this, core::mem::transmute_copy(&lstream)) {
Ok(ok__) => {
fenabled.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentSubpictureStream<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::CurrentSubpictureStream(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCurrentSubpictureStream<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SetCurrentSubpictureStream(this, core::mem::transmute_copy(&newval)).into()
}
}
unsafe extern "system" fn get_SubpictureLanguage<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lstream: i32, strlanguage: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_SubpictureLanguage(this, core::mem::transmute_copy(&lstream)) {
Ok(ok__) => {
strlanguage.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentAudioStream<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::CurrentAudioStream(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCurrentAudioStream<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SetCurrentAudioStream(this, core::mem::transmute_copy(&newval)).into()
}
}
unsafe extern "system" fn AudioStreamsAvailable<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::AudioStreamsAvailable(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn AnglesAvailable<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::AnglesAvailable(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CurrentAngle<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::CurrentAngle(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCurrentAngle<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SetCurrentAngle(this, core::mem::transmute_copy(&newval)).into()
}
}
unsafe extern "system" fn SubpictureStreamsAvailable<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::SubpictureStreamsAvailable(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SubpictureOn<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::SubpictureOn(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetSubpictureOn<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SetSubpictureOn(this, core::mem::transmute_copy(&newval)).into()
}
}
unsafe extern "system" fn DVDUniqueID<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DVDUniqueID(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn AcceptParentalLevelChange<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, faccept: super::super::super::Foundation::VARIANT_BOOL, strusername: *mut core::ffi::c_void, strpassword: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::AcceptParentalLevelChange(this, core::mem::transmute_copy(&faccept), core::mem::transmute(&strusername), core::mem::transmute(&strpassword)).into()
}
}
unsafe extern "system" fn NotifyParentalLevelChange<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::NotifyParentalLevelChange(this, core::mem::transmute_copy(&newval)).into()
}
}
unsafe extern "system" fn SelectParentalCountry<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcountry: i32, strusername: *mut core::ffi::c_void, strpassword: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SelectParentalCountry(this, core::mem::transmute_copy(&lcountry), core::mem::transmute(&strusername), core::mem::transmute(&strpassword)).into()
}
}
unsafe extern "system" fn SelectParentalLevel<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lparentallevel: i32, strusername: *mut core::ffi::c_void, strpassword: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SelectParentalLevel(this, core::mem::transmute_copy(&lparentallevel), core::mem::transmute(&strusername), core::mem::transmute(&strpassword)).into()
}
}
unsafe extern "system" fn get_TitleParentalLevels<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ltitle: i32, plparentallevels: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_TitleParentalLevels(this, core::mem::transmute_copy(<itle)) {
Ok(ok__) => {
plparentallevels.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn PlayerParentalCountry<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, plcountrycode: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::PlayerParentalCountry(this) {
Ok(ok__) => {
plcountrycode.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn PlayerParentalLevel<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, plparentallevel: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::PlayerParentalLevel(this) {
Ok(ok__) => {
plparentallevel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Eject<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::Eject(this).into()
}
}
unsafe extern "system" fn UOPValid<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, luop: i32, pfvalid: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::UOPValid(this, core::mem::transmute_copy(&luop)) {
Ok(ok__) => {
pfvalid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_SPRM<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lindex: i32, pssprm: *mut i16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_SPRM(this, core::mem::transmute_copy(&lindex)) {
Ok(ok__) => {
pssprm.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_GPRM<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lindex: i32, pssprm: *mut i16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_GPRM(this, core::mem::transmute_copy(&lindex)) {
Ok(ok__) => {
pssprm.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn put_GPRM<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lindex: i32, svalue: i16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::put_GPRM(this, core::mem::transmute_copy(&lindex), core::mem::transmute_copy(&svalue)).into()
}
}
unsafe extern "system" fn get_DVDTextStringType<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, llangindex: i32, lstringindex: i32, ptype: *mut DVDTextStringType) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_DVDTextStringType(this, core::mem::transmute_copy(&llangindex), core::mem::transmute_copy(&lstringindex)) {
Ok(ok__) => {
ptype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_DVDTextString<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, llangindex: i32, lstringindex: i32, pstrtext: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_DVDTextString(this, core::mem::transmute_copy(&llangindex), core::mem::transmute_copy(&lstringindex)) {
Ok(ok__) => {
pstrtext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_DVDTextNumberOfStrings<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, llangindex: i32, plnumofstrings: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_DVDTextNumberOfStrings(this, core::mem::transmute_copy(&llangindex)) {
Ok(ok__) => {
plnumofstrings.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DVDTextNumberOfLanguages<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, plnumoflangs: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DVDTextNumberOfLanguages(this) {
Ok(ok__) => {
plnumoflangs.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_DVDTextLanguageLCID<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, llangindex: i32, lcid: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_DVDTextLanguageLCID(this, core::mem::transmute_copy(&llangindex)) {
Ok(ok__) => {
lcid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegionChange<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::RegionChange(this).into()
}
}
unsafe extern "system" fn DVDAdm<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DVDAdm(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DeleteBookmark<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::DeleteBookmark(this).into()
}
}
unsafe extern "system" fn RestoreBookmark<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::RestoreBookmark(this).into()
}
}
unsafe extern "system" fn SaveBookmark<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SaveBookmark(this).into()
}
}
unsafe extern "system" fn SelectDefaultAudioLanguage<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lang: i32, ext: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SelectDefaultAudioLanguage(this, core::mem::transmute_copy(&lang), core::mem::transmute_copy(&ext)).into()
}
}
unsafe extern "system" fn SelectDefaultSubpictureLanguage<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lang: i32, ext: DVDSPExt) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SelectDefaultSubpictureLanguage(this, core::mem::transmute_copy(&lang), core::mem::transmute_copy(&ext)).into()
}
}
unsafe extern "system" fn PreferredSubpictureStream<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::PreferredSubpictureStream(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DefaultMenuLanguage<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lang: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DefaultMenuLanguage(this) {
Ok(ok__) => {
lang.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDefaultMenuLanguage<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lang: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SetDefaultMenuLanguage(this, core::mem::transmute_copy(&lang)).into()
}
}
unsafe extern "system" fn DefaultSubpictureLanguage<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lang: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DefaultSubpictureLanguage(this) {
Ok(ok__) => {
lang.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DefaultAudioLanguage<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lang: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DefaultAudioLanguage(this) {
Ok(ok__) => {
lang.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DefaultSubpictureLanguageExt<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ext: *mut DVDSPExt) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DefaultSubpictureLanguageExt(this) {
Ok(ok__) => {
ext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DefaultAudioLanguageExt<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ext: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DefaultAudioLanguageExt(this) {
Ok(ok__) => {
ext.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_LanguageFromLCID<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcid: i32, lang: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_LanguageFromLCID(this, core::mem::transmute_copy(&lcid)) {
Ok(ok__) => {
lang.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn KaraokeAudioPresentationMode<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::KaraokeAudioPresentationMode(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetKaraokeAudioPresentationMode<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SetKaraokeAudioPresentationMode(this, core::mem::transmute_copy(&newval)).into()
}
}
unsafe extern "system" fn get_KaraokeChannelContent<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lstream: i32, lchan: i32, lcontent: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_KaraokeChannelContent(this, core::mem::transmute_copy(&lstream), core::mem::transmute_copy(&lchan)) {
Ok(ok__) => {
lcontent.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_KaraokeChannelAssignment<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lstream: i32, lchannelassignment: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_KaraokeChannelAssignment(this, core::mem::transmute_copy(&lstream)) {
Ok(ok__) => {
lchannelassignment.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RestorePreferredSettings<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::RestorePreferredSettings(this).into()
}
}
unsafe extern "system" fn get_ButtonRect<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lbutton: i32, prect: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::get_ButtonRect(this, core::mem::transmute_copy(&lbutton)) {
Ok(ok__) => {
prect.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DVDScreenInMouseCoordinates<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pprect: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVD_Impl::DVDScreenInMouseCoordinates(this) {
Ok(ok__) => {
pprect.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDVDScreenInMouseCoordinates<Identity: IMSVidWebDVD_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prect: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD_Impl::SetDVDScreenInMouseCoordinates(this, core::mem::transmute_copy(&prect)).into()
}
}
Self {
base__: IMSVidPlayback_Vtbl::new::<Identity, OFFSET>(),
OnDVDEvent: OnDVDEvent::<Identity, OFFSET>,
PlayTitle: PlayTitle::<Identity, OFFSET>,
PlayChapterInTitle: PlayChapterInTitle::<Identity, OFFSET>,
PlayChapter: PlayChapter::<Identity, OFFSET>,
PlayChaptersAutoStop: PlayChaptersAutoStop::<Identity, OFFSET>,
PlayAtTime: PlayAtTime::<Identity, OFFSET>,
PlayAtTimeInTitle: PlayAtTimeInTitle::<Identity, OFFSET>,
PlayPeriodInTitleAutoStop: PlayPeriodInTitleAutoStop::<Identity, OFFSET>,
ReplayChapter: ReplayChapter::<Identity, OFFSET>,
PlayPrevChapter: PlayPrevChapter::<Identity, OFFSET>,
PlayNextChapter: PlayNextChapter::<Identity, OFFSET>,
StillOff: StillOff::<Identity, OFFSET>,
get_AudioLanguage: get_AudioLanguage::<Identity, OFFSET>,
ShowMenu: ShowMenu::<Identity, OFFSET>,
Resume: Resume::<Identity, OFFSET>,
ReturnFromSubmenu: ReturnFromSubmenu::<Identity, OFFSET>,
ButtonsAvailable: ButtonsAvailable::<Identity, OFFSET>,
CurrentButton: CurrentButton::<Identity, OFFSET>,
SelectAndActivateButton: SelectAndActivateButton::<Identity, OFFSET>,
ActivateButton: ActivateButton::<Identity, OFFSET>,
SelectRightButton: SelectRightButton::<Identity, OFFSET>,
SelectLeftButton: SelectLeftButton::<Identity, OFFSET>,
SelectLowerButton: SelectLowerButton::<Identity, OFFSET>,
SelectUpperButton: SelectUpperButton::<Identity, OFFSET>,
ActivateAtPosition: ActivateAtPosition::<Identity, OFFSET>,
SelectAtPosition: SelectAtPosition::<Identity, OFFSET>,
get_ButtonAtPosition: get_ButtonAtPosition::<Identity, OFFSET>,
get_NumberOfChapters: get_NumberOfChapters::<Identity, OFFSET>,
TotalTitleTime: TotalTitleTime::<Identity, OFFSET>,
TitlesAvailable: TitlesAvailable::<Identity, OFFSET>,
VolumesAvailable: VolumesAvailable::<Identity, OFFSET>,
CurrentVolume: CurrentVolume::<Identity, OFFSET>,
CurrentDiscSide: CurrentDiscSide::<Identity, OFFSET>,
CurrentDomain: CurrentDomain::<Identity, OFFSET>,
CurrentChapter: CurrentChapter::<Identity, OFFSET>,
CurrentTitle: CurrentTitle::<Identity, OFFSET>,
CurrentTime: CurrentTime::<Identity, OFFSET>,
DVDTimeCode2bstr: DVDTimeCode2bstr::<Identity, OFFSET>,
DVDDirectory: DVDDirectory::<Identity, OFFSET>,
SetDVDDirectory: SetDVDDirectory::<Identity, OFFSET>,
IsSubpictureStreamEnabled: IsSubpictureStreamEnabled::<Identity, OFFSET>,
IsAudioStreamEnabled: IsAudioStreamEnabled::<Identity, OFFSET>,
CurrentSubpictureStream: CurrentSubpictureStream::<Identity, OFFSET>,
SetCurrentSubpictureStream: SetCurrentSubpictureStream::<Identity, OFFSET>,
get_SubpictureLanguage: get_SubpictureLanguage::<Identity, OFFSET>,
CurrentAudioStream: CurrentAudioStream::<Identity, OFFSET>,
SetCurrentAudioStream: SetCurrentAudioStream::<Identity, OFFSET>,
AudioStreamsAvailable: AudioStreamsAvailable::<Identity, OFFSET>,
AnglesAvailable: AnglesAvailable::<Identity, OFFSET>,
CurrentAngle: CurrentAngle::<Identity, OFFSET>,
SetCurrentAngle: SetCurrentAngle::<Identity, OFFSET>,
SubpictureStreamsAvailable: SubpictureStreamsAvailable::<Identity, OFFSET>,
SubpictureOn: SubpictureOn::<Identity, OFFSET>,
SetSubpictureOn: SetSubpictureOn::<Identity, OFFSET>,
DVDUniqueID: DVDUniqueID::<Identity, OFFSET>,
AcceptParentalLevelChange: AcceptParentalLevelChange::<Identity, OFFSET>,
NotifyParentalLevelChange: NotifyParentalLevelChange::<Identity, OFFSET>,
SelectParentalCountry: SelectParentalCountry::<Identity, OFFSET>,
SelectParentalLevel: SelectParentalLevel::<Identity, OFFSET>,
get_TitleParentalLevels: get_TitleParentalLevels::<Identity, OFFSET>,
PlayerParentalCountry: PlayerParentalCountry::<Identity, OFFSET>,
PlayerParentalLevel: PlayerParentalLevel::<Identity, OFFSET>,
Eject: Eject::<Identity, OFFSET>,
UOPValid: UOPValid::<Identity, OFFSET>,
get_SPRM: get_SPRM::<Identity, OFFSET>,
get_GPRM: get_GPRM::<Identity, OFFSET>,
put_GPRM: put_GPRM::<Identity, OFFSET>,
get_DVDTextStringType: get_DVDTextStringType::<Identity, OFFSET>,
get_DVDTextString: get_DVDTextString::<Identity, OFFSET>,
get_DVDTextNumberOfStrings: get_DVDTextNumberOfStrings::<Identity, OFFSET>,
DVDTextNumberOfLanguages: DVDTextNumberOfLanguages::<Identity, OFFSET>,
get_DVDTextLanguageLCID: get_DVDTextLanguageLCID::<Identity, OFFSET>,
RegionChange: RegionChange::<Identity, OFFSET>,
DVDAdm: DVDAdm::<Identity, OFFSET>,
DeleteBookmark: DeleteBookmark::<Identity, OFFSET>,
RestoreBookmark: RestoreBookmark::<Identity, OFFSET>,
SaveBookmark: SaveBookmark::<Identity, OFFSET>,
SelectDefaultAudioLanguage: SelectDefaultAudioLanguage::<Identity, OFFSET>,
SelectDefaultSubpictureLanguage: SelectDefaultSubpictureLanguage::<Identity, OFFSET>,
PreferredSubpictureStream: PreferredSubpictureStream::<Identity, OFFSET>,
DefaultMenuLanguage: DefaultMenuLanguage::<Identity, OFFSET>,
SetDefaultMenuLanguage: SetDefaultMenuLanguage::<Identity, OFFSET>,
DefaultSubpictureLanguage: DefaultSubpictureLanguage::<Identity, OFFSET>,
DefaultAudioLanguage: DefaultAudioLanguage::<Identity, OFFSET>,
DefaultSubpictureLanguageExt: DefaultSubpictureLanguageExt::<Identity, OFFSET>,
DefaultAudioLanguageExt: DefaultAudioLanguageExt::<Identity, OFFSET>,
get_LanguageFromLCID: get_LanguageFromLCID::<Identity, OFFSET>,
KaraokeAudioPresentationMode: KaraokeAudioPresentationMode::<Identity, OFFSET>,
SetKaraokeAudioPresentationMode: SetKaraokeAudioPresentationMode::<Identity, OFFSET>,
get_KaraokeChannelContent: get_KaraokeChannelContent::<Identity, OFFSET>,
get_KaraokeChannelAssignment: get_KaraokeChannelAssignment::<Identity, OFFSET>,
RestorePreferredSettings: RestorePreferredSettings::<Identity, OFFSET>,
get_ButtonRect: get_ButtonRect::<Identity, OFFSET>,
DVDScreenInMouseCoordinates: DVDScreenInMouseCoordinates::<Identity, OFFSET>,
SetDVDScreenInMouseCoordinates: SetDVDScreenInMouseCoordinates::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidWebDVD as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID || iid == &<IMSVidPlayback as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidWebDVD {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidWebDVD2, IMSVidWebDVD2_Vtbl, 0x7027212f_ee9a_4a7c_8b67_f023714cdaff);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidWebDVD2 {
type Target = IMSVidWebDVD;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidWebDVD2, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidInputDevice, IMSVidPlayback, IMSVidWebDVD);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidWebDVD2 {
pub unsafe fn get_Bookmark(&self, ppdata: *mut *mut u8, pdatalength: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).get_Bookmark)(windows_core::Interface::as_raw(self), ppdata as _, pdatalength as _).ok() }
}
pub unsafe fn put_Bookmark(&self, pdata: *const u8, dwdatalength: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).put_Bookmark)(windows_core::Interface::as_raw(self), pdata, dwdatalength).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidWebDVD2_Vtbl {
pub base__: IMSVidWebDVD_Vtbl,
pub get_Bookmark: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8, *mut u32) -> windows_core::HRESULT,
pub put_Bookmark: unsafe extern "system" fn(*mut core::ffi::c_void, *const u8, u32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidWebDVD2_Impl: IMSVidWebDVD_Impl {
fn get_Bookmark(&self, ppdata: *mut *mut u8, pdatalength: *mut u32) -> windows_core::Result<()>;
fn put_Bookmark(&self, pdata: *const u8, dwdatalength: u32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidWebDVD2_Vtbl {
pub const fn new<Identity: IMSVidWebDVD2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn get_Bookmark<Identity: IMSVidWebDVD2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppdata: *mut *mut u8, pdatalength: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD2_Impl::get_Bookmark(this, core::mem::transmute_copy(&ppdata), core::mem::transmute_copy(&pdatalength)).into()
}
}
unsafe extern "system" fn put_Bookmark<Identity: IMSVidWebDVD2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdata: *const u8, dwdatalength: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVD2_Impl::put_Bookmark(this, core::mem::transmute_copy(&pdata), core::mem::transmute_copy(&dwdatalength)).into()
}
}
Self {
base__: IMSVidWebDVD_Vtbl::new::<Identity, OFFSET>(),
get_Bookmark: get_Bookmark::<Identity, OFFSET>,
put_Bookmark: put_Bookmark::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidWebDVD2 as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidInputDevice as windows_core::Interface>::IID || iid == &<IMSVidPlayback as windows_core::Interface>::IID || iid == &<IMSVidWebDVD as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidWebDVD2 {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidWebDVDAdm, IMSVidWebDVDAdm_Vtbl, 0xb8be681a_eb2c_47f0_b415_94d5452f0e05);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidWebDVDAdm {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidWebDVDAdm, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidWebDVDAdm {
pub unsafe fn ChangePassword(&self, strusername: &windows_core::BSTR, strold: &windows_core::BSTR, strnew: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ChangePassword)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(strusername), core::mem::transmute_copy(strold), core::mem::transmute_copy(strnew)).ok() }
}
pub unsafe fn SaveParentalLevel(&self, level: i32, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SaveParentalLevel)(windows_core::Interface::as_raw(self), level, core::mem::transmute_copy(strusername), core::mem::transmute_copy(strpassword)).ok() }
}
pub unsafe fn SaveParentalCountry(&self, country: i32, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SaveParentalCountry)(windows_core::Interface::as_raw(self), country, core::mem::transmute_copy(strusername), core::mem::transmute_copy(strpassword)).ok() }
}
pub unsafe fn ConfirmPassword(&self, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConfirmPassword)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(strusername), core::mem::transmute_copy(strpassword), &mut result__).map(|| result__)
}
}
pub unsafe fn GetParentalLevel(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetParentalLevel)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetParentalCountry(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetParentalCountry)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn DefaultAudioLCID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultAudioLCID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetDefaultAudioLCID(&self, newval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDefaultAudioLCID)(windows_core::Interface::as_raw(self), newval).ok() }
}
pub unsafe fn DefaultSubpictureLCID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultSubpictureLCID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetDefaultSubpictureLCID(&self, newval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDefaultSubpictureLCID)(windows_core::Interface::as_raw(self), newval).ok() }
}
pub unsafe fn DefaultMenuLCID(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultMenuLCID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetDefaultMenuLCID(&self, newval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetDefaultMenuLCID)(windows_core::Interface::as_raw(self), newval).ok() }
}
pub unsafe fn BookmarkOnStop(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).BookmarkOnStop)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetBookmarkOnStop(&self, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBookmarkOnStop)(windows_core::Interface::as_raw(self), newval).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidWebDVDAdm_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub ChangePassword: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SaveParentalLevel: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SaveParentalCountry: unsafe extern "system" fn(*mut core::ffi::c_void, i32, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub ConfirmPassword: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub GetParentalLevel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub GetParentalCountry: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub DefaultAudioLCID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetDefaultAudioLCID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub DefaultSubpictureLCID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetDefaultSubpictureLCID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub DefaultMenuLCID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetDefaultMenuLCID: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub BookmarkOnStop: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SetBookmarkOnStop: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidWebDVDAdm_Impl: super::super::super::System::Com::IDispatch_Impl {
fn ChangePassword(&self, strusername: &windows_core::BSTR, strold: &windows_core::BSTR, strnew: &windows_core::BSTR) -> windows_core::Result<()>;
fn SaveParentalLevel(&self, level: i32, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<()>;
fn SaveParentalCountry(&self, country: i32, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<()>;
fn ConfirmPassword(&self, strusername: &windows_core::BSTR, strpassword: &windows_core::BSTR) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn GetParentalLevel(&self) -> windows_core::Result<i32>;
fn GetParentalCountry(&self) -> windows_core::Result<i32>;
fn DefaultAudioLCID(&self) -> windows_core::Result<i32>;
fn SetDefaultAudioLCID(&self, newval: i32) -> windows_core::Result<()>;
fn DefaultSubpictureLCID(&self) -> windows_core::Result<i32>;
fn SetDefaultSubpictureLCID(&self, newval: i32) -> windows_core::Result<()>;
fn DefaultMenuLCID(&self) -> windows_core::Result<i32>;
fn SetDefaultMenuLCID(&self, newval: i32) -> windows_core::Result<()>;
fn BookmarkOnStop(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
fn SetBookmarkOnStop(&self, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidWebDVDAdm_Vtbl {
pub const fn new<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn ChangePassword<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, strusername: *mut core::ffi::c_void, strold: *mut core::ffi::c_void, strnew: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDAdm_Impl::ChangePassword(this, core::mem::transmute(&strusername), core::mem::transmute(&strold), core::mem::transmute(&strnew)).into()
}
}
unsafe extern "system" fn SaveParentalLevel<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, level: i32, strusername: *mut core::ffi::c_void, strpassword: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDAdm_Impl::SaveParentalLevel(this, core::mem::transmute_copy(&level), core::mem::transmute(&strusername), core::mem::transmute(&strpassword)).into()
}
}
unsafe extern "system" fn SaveParentalCountry<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, country: i32, strusername: *mut core::ffi::c_void, strpassword: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDAdm_Impl::SaveParentalCountry(this, core::mem::transmute_copy(&country), core::mem::transmute(&strusername), core::mem::transmute(&strpassword)).into()
}
}
unsafe extern "system" fn ConfirmPassword<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, strusername: *mut core::ffi::c_void, strpassword: *mut core::ffi::c_void, pval: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVDAdm_Impl::ConfirmPassword(this, core::mem::transmute(&strusername), core::mem::transmute(&strpassword)) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetParentalLevel<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, llevel: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVDAdm_Impl::GetParentalLevel(this) {
Ok(ok__) => {
llevel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetParentalCountry<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, lcountry: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVDAdm_Impl::GetParentalCountry(this) {
Ok(ok__) => {
lcountry.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DefaultAudioLCID<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVDAdm_Impl::DefaultAudioLCID(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDefaultAudioLCID<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDAdm_Impl::SetDefaultAudioLCID(this, core::mem::transmute_copy(&newval)).into()
}
}
unsafe extern "system" fn DefaultSubpictureLCID<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVDAdm_Impl::DefaultSubpictureLCID(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDefaultSubpictureLCID<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDAdm_Impl::SetDefaultSubpictureLCID(this, core::mem::transmute_copy(&newval)).into()
}
}
unsafe extern "system" fn DefaultMenuLCID<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVDAdm_Impl::DefaultMenuLCID(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDefaultMenuLCID<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDAdm_Impl::SetDefaultMenuLCID(this, core::mem::transmute_copy(&newval)).into()
}
}
unsafe extern "system" fn BookmarkOnStop<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pval: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidWebDVDAdm_Impl::BookmarkOnStop(this) {
Ok(ok__) => {
pval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBookmarkOnStop<Identity: IMSVidWebDVDAdm_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newval: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDAdm_Impl::SetBookmarkOnStop(this, core::mem::transmute_copy(&newval)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
ChangePassword: ChangePassword::<Identity, OFFSET>,
SaveParentalLevel: SaveParentalLevel::<Identity, OFFSET>,
SaveParentalCountry: SaveParentalCountry::<Identity, OFFSET>,
ConfirmPassword: ConfirmPassword::<Identity, OFFSET>,
GetParentalLevel: GetParentalLevel::<Identity, OFFSET>,
GetParentalCountry: GetParentalCountry::<Identity, OFFSET>,
DefaultAudioLCID: DefaultAudioLCID::<Identity, OFFSET>,
SetDefaultAudioLCID: SetDefaultAudioLCID::<Identity, OFFSET>,
DefaultSubpictureLCID: DefaultSubpictureLCID::<Identity, OFFSET>,
SetDefaultSubpictureLCID: SetDefaultSubpictureLCID::<Identity, OFFSET>,
DefaultMenuLCID: DefaultMenuLCID::<Identity, OFFSET>,
SetDefaultMenuLCID: SetDefaultMenuLCID::<Identity, OFFSET>,
BookmarkOnStop: BookmarkOnStop::<Identity, OFFSET>,
SetBookmarkOnStop: SetBookmarkOnStop::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidWebDVDAdm as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidWebDVDAdm {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidWebDVDEvent, IMSVidWebDVDEvent_Vtbl, 0xb4f7a674_9b83_49cb_a357_c63b871be958);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidWebDVDEvent {
type Target = IMSVidPlaybackEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidWebDVDEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidInputDeviceEvent, IMSVidPlaybackEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidWebDVDEvent {
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn DVDNotify(&self, leventcode: i32, lparam1: &super::super::super::System::Variant::VARIANT, lparam2: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).DVDNotify)(windows_core::Interface::as_raw(self), leventcode, core::mem::transmute_copy(lparam1), core::mem::transmute_copy(lparam2)).ok() }
}
pub unsafe fn PlayForwards(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayForwards)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn PlayBackwards(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayBackwards)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn ShowMenu(&self, menuid: DVDMenuIDConstants, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ShowMenu)(windows_core::Interface::as_raw(self), menuid, benabled).ok() }
}
pub unsafe fn Resume(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Resume)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn SelectOrActivateButton(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SelectOrActivateButton)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn StillOff(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).StillOff)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn PauseOn(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PauseOn)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn ChangeCurrentAudioStream(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ChangeCurrentAudioStream)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn ChangeCurrentSubpictureStream(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ChangeCurrentSubpictureStream)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn ChangeCurrentAngle(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ChangeCurrentAngle)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn PlayAtTimeInTitle(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayAtTimeInTitle)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn PlayAtTime(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayAtTime)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn PlayChapterInTitle(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayChapterInTitle)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn PlayChapter(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayChapter)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn ReplayChapter(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ReplayChapter)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn PlayNextChapter(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayNextChapter)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn Stop(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Stop)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn ReturnFromSubmenu(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ReturnFromSubmenu)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn PlayTitle(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayTitle)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn PlayPrevChapter(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PlayPrevChapter)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn ChangeKaraokePresMode(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ChangeKaraokePresMode)(windows_core::Interface::as_raw(self), benabled).ok() }
}
pub unsafe fn ChangeVideoPresMode(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ChangeVideoPresMode)(windows_core::Interface::as_raw(self), benabled).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidWebDVDEvent_Vtbl {
pub base__: IMSVidPlaybackEvent_Vtbl,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub DVDNotify: unsafe extern "system" fn(*mut core::ffi::c_void, i32, super::super::super::System::Variant::VARIANT, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
DVDNotify: usize,
pub PlayForwards: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub PlayBackwards: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ShowMenu: unsafe extern "system" fn(*mut core::ffi::c_void, DVDMenuIDConstants, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub Resume: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub SelectOrActivateButton: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub StillOff: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub PauseOn: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ChangeCurrentAudioStream: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ChangeCurrentSubpictureStream: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ChangeCurrentAngle: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub PlayAtTimeInTitle: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub PlayAtTime: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub PlayChapterInTitle: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub PlayChapter: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ReplayChapter: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub PlayNextChapter: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub Stop: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ReturnFromSubmenu: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub PlayTitle: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub PlayPrevChapter: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ChangeKaraokePresMode: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ChangeVideoPresMode: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidWebDVDEvent_Impl: IMSVidPlaybackEvent_Impl {
fn DVDNotify(&self, leventcode: i32, lparam1: &super::super::super::System::Variant::VARIANT, lparam2: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn PlayForwards(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn PlayBackwards(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ShowMenu(&self, menuid: DVDMenuIDConstants, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn Resume(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn SelectOrActivateButton(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn StillOff(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn PauseOn(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ChangeCurrentAudioStream(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ChangeCurrentSubpictureStream(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ChangeCurrentAngle(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn PlayAtTimeInTitle(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn PlayAtTime(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn PlayChapterInTitle(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn PlayChapter(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ReplayChapter(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn PlayNextChapter(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn Stop(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ReturnFromSubmenu(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn PlayTitle(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn PlayPrevChapter(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ChangeKaraokePresMode(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
fn ChangeVideoPresMode(&self, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidWebDVDEvent_Vtbl {
pub const fn new<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn DVDNotify<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, leventcode: i32, lparam1: super::super::super::System::Variant::VARIANT, lparam2: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::DVDNotify(this, core::mem::transmute_copy(&leventcode), core::mem::transmute(&lparam1), core::mem::transmute(&lparam2)).into()
}
}
unsafe extern "system" fn PlayForwards<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::PlayForwards(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn PlayBackwards<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::PlayBackwards(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn ShowMenu<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, menuid: DVDMenuIDConstants, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::ShowMenu(this, core::mem::transmute_copy(&menuid), core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn Resume<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::Resume(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn SelectOrActivateButton<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::SelectOrActivateButton(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn StillOff<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::StillOff(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn PauseOn<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::PauseOn(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn ChangeCurrentAudioStream<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::ChangeCurrentAudioStream(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn ChangeCurrentSubpictureStream<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::ChangeCurrentSubpictureStream(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn ChangeCurrentAngle<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::ChangeCurrentAngle(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn PlayAtTimeInTitle<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::PlayAtTimeInTitle(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn PlayAtTime<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::PlayAtTime(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn PlayChapterInTitle<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::PlayChapterInTitle(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn PlayChapter<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::PlayChapter(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn ReplayChapter<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::ReplayChapter(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn PlayNextChapter<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::PlayNextChapter(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn Stop<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::Stop(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn ReturnFromSubmenu<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::ReturnFromSubmenu(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn PlayTitle<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::PlayTitle(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn PlayPrevChapter<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::PlayPrevChapter(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn ChangeKaraokePresMode<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::ChangeKaraokePresMode(this, core::mem::transmute_copy(&benabled)).into()
}
}
unsafe extern "system" fn ChangeVideoPresMode<Identity: IMSVidWebDVDEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, benabled: super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidWebDVDEvent_Impl::ChangeVideoPresMode(this, core::mem::transmute_copy(&benabled)).into()
}
}
Self {
base__: IMSVidPlaybackEvent_Vtbl::new::<Identity, OFFSET>(),
DVDNotify: DVDNotify::<Identity, OFFSET>,
PlayForwards: PlayForwards::<Identity, OFFSET>,
PlayBackwards: PlayBackwards::<Identity, OFFSET>,
ShowMenu: ShowMenu::<Identity, OFFSET>,
Resume: Resume::<Identity, OFFSET>,
SelectOrActivateButton: SelectOrActivateButton::<Identity, OFFSET>,
StillOff: StillOff::<Identity, OFFSET>,
PauseOn: PauseOn::<Identity, OFFSET>,
ChangeCurrentAudioStream: ChangeCurrentAudioStream::<Identity, OFFSET>,
ChangeCurrentSubpictureStream: ChangeCurrentSubpictureStream::<Identity, OFFSET>,
ChangeCurrentAngle: ChangeCurrentAngle::<Identity, OFFSET>,
PlayAtTimeInTitle: PlayAtTimeInTitle::<Identity, OFFSET>,
PlayAtTime: PlayAtTime::<Identity, OFFSET>,
PlayChapterInTitle: PlayChapterInTitle::<Identity, OFFSET>,
PlayChapter: PlayChapter::<Identity, OFFSET>,
ReplayChapter: ReplayChapter::<Identity, OFFSET>,
PlayNextChapter: PlayNextChapter::<Identity, OFFSET>,
Stop: Stop::<Identity, OFFSET>,
ReturnFromSubmenu: ReturnFromSubmenu::<Identity, OFFSET>,
PlayTitle: PlayTitle::<Identity, OFFSET>,
PlayPrevChapter: PlayPrevChapter::<Identity, OFFSET>,
ChangeKaraokePresMode: ChangeKaraokePresMode::<Identity, OFFSET>,
ChangeVideoPresMode: ChangeVideoPresMode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidWebDVDEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidInputDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidPlaybackEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidWebDVDEvent {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidXDS, IMSVidXDS_Vtbl, 0x11ebc158_e712_4d1f_8bb3_01ed5274c4ce);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidXDS {
type Target = IMSVidFeature;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidXDS, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDevice, IMSVidFeature);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidXDS {
pub unsafe fn ChannelChangeInterface(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ChannelChangeInterface)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidXDS_Vtbl {
pub base__: IMSVidFeature_Vtbl,
pub ChannelChangeInterface: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidXDS_Impl: IMSVidFeature_Impl {
fn ChannelChangeInterface(&self) -> windows_core::Result<windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidXDS_Vtbl {
pub const fn new<Identity: IMSVidXDS_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn ChannelChangeInterface<Identity: IMSVidXDS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, punkcc: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMSVidXDS_Impl::ChannelChangeInterface(this) {
Ok(ok__) => {
punkcc.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: IMSVidFeature_Vtbl::new::<Identity, OFFSET>(), ChannelChangeInterface: ChannelChangeInterface::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidXDS as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDevice as windows_core::Interface>::IID || iid == &<IMSVidFeature as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidXDS {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IMSVidXDSEvent, IMSVidXDSEvent_Vtbl, 0x6db2317d_3b23_41ec_ba4b_701f407eaf3a);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IMSVidXDSEvent {
type Target = IMSVidFeatureEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IMSVidXDSEvent, windows_core::IUnknown, super::super::super::System::Com::IDispatch, IMSVidDeviceEvent, IMSVidFeatureEvent);
#[cfg(feature = "Win32_System_Com")]
impl IMSVidXDSEvent {
pub unsafe fn RatingChange(&self, prevratingsystem: EnTvRat_System, prevlevel: EnTvRat_GenericLevel, prevattributes: BfEnTvRat_GenericAttributes, newratingsystem: EnTvRat_System, newlevel: EnTvRat_GenericLevel, newattributes: BfEnTvRat_GenericAttributes) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RatingChange)(windows_core::Interface::as_raw(self), prevratingsystem, prevlevel, prevattributes, newratingsystem, newlevel, newattributes).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IMSVidXDSEvent_Vtbl {
pub base__: IMSVidFeatureEvent_Vtbl,
pub RatingChange: unsafe extern "system" fn(*mut core::ffi::c_void, EnTvRat_System, EnTvRat_GenericLevel, BfEnTvRat_GenericAttributes, EnTvRat_System, EnTvRat_GenericLevel, BfEnTvRat_GenericAttributes) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMSVidXDSEvent_Impl: IMSVidFeatureEvent_Impl {
fn RatingChange(&self, prevratingsystem: EnTvRat_System, prevlevel: EnTvRat_GenericLevel, prevattributes: BfEnTvRat_GenericAttributes, newratingsystem: EnTvRat_System, newlevel: EnTvRat_GenericLevel, newattributes: BfEnTvRat_GenericAttributes) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMSVidXDSEvent_Vtbl {
pub const fn new<Identity: IMSVidXDSEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn RatingChange<Identity: IMSVidXDSEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prevratingsystem: EnTvRat_System, prevlevel: EnTvRat_GenericLevel, prevattributes: BfEnTvRat_GenericAttributes, newratingsystem: EnTvRat_System, newlevel: EnTvRat_GenericLevel, newattributes: BfEnTvRat_GenericAttributes) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMSVidXDSEvent_Impl::RatingChange(this, core::mem::transmute_copy(&prevratingsystem), core::mem::transmute_copy(&prevlevel), core::mem::transmute_copy(&prevattributes), core::mem::transmute_copy(&newratingsystem), core::mem::transmute_copy(&newlevel), core::mem::transmute_copy(&newattributes)).into()
}
}
Self { base__: IMSVidFeatureEvent_Vtbl::new::<Identity, OFFSET>(), RatingChange: RatingChange::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMSVidXDSEvent as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID || iid == &<IMSVidDeviceEvent as windows_core::Interface>::IID || iid == &<IMSVidFeatureEvent as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IMSVidXDSEvent {}
windows_core::imp::define_interface!(IMceBurnerControl, IMceBurnerControl_Vtbl, 0x5a86b91a_e71e_46c1_88a9_9bb338710552);
windows_core::imp::interface_hierarchy!(IMceBurnerControl, windows_core::IUnknown);
impl IMceBurnerControl {
pub unsafe fn GetBurnerNoDecryption(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetBurnerNoDecryption)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMceBurnerControl_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetBurnerNoDecryption: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IMceBurnerControl_Impl: windows_core::IUnknownImpl {
fn GetBurnerNoDecryption(&self) -> windows_core::Result<()>;
}
impl IMceBurnerControl_Vtbl {
pub const fn new<Identity: IMceBurnerControl_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetBurnerNoDecryption<Identity: IMceBurnerControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMceBurnerControl_Impl::GetBurnerNoDecryption(this).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetBurnerNoDecryption: GetBurnerNoDecryption::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMceBurnerControl as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IMceBurnerControl {}
windows_core::imp::define_interface!(IMpeg2Data, IMpeg2Data_Vtbl, 0x9b396d40_f380_4e3c_a514_1a82bf6ebfe6);
windows_core::imp::interface_hierarchy!(IMpeg2Data, windows_core::IUnknown);
impl IMpeg2Data {
pub unsafe fn GetSection(&self, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, dwtimeout: u32) -> windows_core::Result<ISectionList> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSection)(windows_core::Interface::as_raw(self), pid, tid, pfilter, dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTable(&self, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, dwtimeout: u32) -> windows_core::Result<ISectionList> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTable)(windows_core::Interface::as_raw(self), pid, tid, pfilter, dwtimeout, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetStreamOfSections(&self, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, hdatareadyevent: super::super::super::Foundation::HANDLE) -> windows_core::Result<IMpeg2Stream> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStreamOfSections)(windows_core::Interface::as_raw(self), pid, tid, pfilter, hdatareadyevent, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMpeg2Data_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetSection: unsafe extern "system" fn(*mut core::ffi::c_void, u16, u8, *const MPEG2_FILTER, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTable: unsafe extern "system" fn(*mut core::ffi::c_void, u16, u8, *const MPEG2_FILTER, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetStreamOfSections: unsafe extern "system" fn(*mut core::ffi::c_void, u16, u8, *const MPEG2_FILTER, super::super::super::Foundation::HANDLE, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IMpeg2Data_Impl: windows_core::IUnknownImpl {
fn GetSection(&self, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, dwtimeout: u32) -> windows_core::Result<ISectionList>;
fn GetTable(&self, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, dwtimeout: u32) -> windows_core::Result<ISectionList>;
fn GetStreamOfSections(&self, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, hdatareadyevent: super::super::super::Foundation::HANDLE) -> windows_core::Result<IMpeg2Stream>;
}
impl IMpeg2Data_Vtbl {
pub const fn new<Identity: IMpeg2Data_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetSection<Identity: IMpeg2Data_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, dwtimeout: u32, ppsectionlist: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMpeg2Data_Impl::GetSection(this, core::mem::transmute_copy(&pid), core::mem::transmute_copy(&tid), core::mem::transmute_copy(&pfilter), core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
ppsectionlist.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTable<Identity: IMpeg2Data_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, dwtimeout: u32, ppsectionlist: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMpeg2Data_Impl::GetTable(this, core::mem::transmute_copy(&pid), core::mem::transmute_copy(&tid), core::mem::transmute_copy(&pfilter), core::mem::transmute_copy(&dwtimeout)) {
Ok(ok__) => {
ppsectionlist.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetStreamOfSections<Identity: IMpeg2Data_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, hdatareadyevent: super::super::super::Foundation::HANDLE, ppmpegstream: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IMpeg2Data_Impl::GetStreamOfSections(this, core::mem::transmute_copy(&pid), core::mem::transmute_copy(&tid), core::mem::transmute_copy(&pfilter), core::mem::transmute_copy(&hdatareadyevent)) {
Ok(ok__) => {
ppmpegstream.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSection: GetSection::<Identity, OFFSET>,
GetTable: GetTable::<Identity, OFFSET>,
GetStreamOfSections: GetStreamOfSections::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMpeg2Data as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IMpeg2Data {}
windows_core::imp::define_interface!(IMpeg2Stream, IMpeg2Stream_Vtbl, 0x400cc286_32a0_4ce4_9041_39571125a635);
windows_core::imp::interface_hierarchy!(IMpeg2Stream, windows_core::IUnknown);
impl IMpeg2Stream {
pub unsafe fn Initialize<P1>(&self, requesttype: MPEG_REQUEST_TYPE, pmpeg2data: P1, pcontext: *const MPEG_CONTEXT, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, hdatareadyevent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>
where
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), requesttype, pmpeg2data.param().abi(), pcontext, pid, tid, pfilter, hdatareadyevent).ok() }
}
pub unsafe fn SupplyDataBuffer(&self, pstreambuffer: *const MPEG_STREAM_BUFFER) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SupplyDataBuffer)(windows_core::Interface::as_raw(self), pstreambuffer).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMpeg2Stream_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, MPEG_REQUEST_TYPE, *mut core::ffi::c_void, *const MPEG_CONTEXT, u16, u8, *const MPEG2_FILTER, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub SupplyDataBuffer: unsafe extern "system" fn(*mut core::ffi::c_void, *const MPEG_STREAM_BUFFER) -> windows_core::HRESULT,
}
pub trait IMpeg2Stream_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, requesttype: MPEG_REQUEST_TYPE, pmpeg2data: windows_core::Ref<IMpeg2Data>, pcontext: *const MPEG_CONTEXT, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, hdatareadyevent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn SupplyDataBuffer(&self, pstreambuffer: *const MPEG_STREAM_BUFFER) -> windows_core::Result<()>;
}
impl IMpeg2Stream_Vtbl {
pub const fn new<Identity: IMpeg2Stream_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IMpeg2Stream_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, requesttype: MPEG_REQUEST_TYPE, pmpeg2data: *mut core::ffi::c_void, pcontext: *const MPEG_CONTEXT, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, hdatareadyevent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMpeg2Stream_Impl::Initialize(this, core::mem::transmute_copy(&requesttype), core::mem::transmute_copy(&pmpeg2data), core::mem::transmute_copy(&pcontext), core::mem::transmute_copy(&pid), core::mem::transmute_copy(&tid), core::mem::transmute_copy(&pfilter), core::mem::transmute_copy(&hdatareadyevent)).into()
}
}
unsafe extern "system" fn SupplyDataBuffer<Identity: IMpeg2Stream_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pstreambuffer: *const MPEG_STREAM_BUFFER) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMpeg2Stream_Impl::SupplyDataBuffer(this, core::mem::transmute_copy(&pstreambuffer)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
SupplyDataBuffer: SupplyDataBuffer::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMpeg2Stream as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IMpeg2Stream {}
windows_core::imp::define_interface!(IMpeg2TableFilter, IMpeg2TableFilter_Vtbl, 0xbdcdd913_9ecd_4fb2_81ae_adf747ea75a5);
windows_core::imp::interface_hierarchy!(IMpeg2TableFilter, windows_core::IUnknown);
impl IMpeg2TableFilter {
pub unsafe fn AddPID(&self, p: u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AddPID)(windows_core::Interface::as_raw(self), p).ok() }
}
pub unsafe fn AddTable(&self, p: u16, t: u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AddTable)(windows_core::Interface::as_raw(self), p, t).ok() }
}
pub unsafe fn AddExtension(&self, p: u16, t: u8, e: u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AddExtension)(windows_core::Interface::as_raw(self), p, t, e).ok() }
}
pub unsafe fn RemovePID(&self, p: u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RemovePID)(windows_core::Interface::as_raw(self), p).ok() }
}
pub unsafe fn RemoveTable(&self, p: u16, t: u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RemoveTable)(windows_core::Interface::as_raw(self), p, t).ok() }
}
pub unsafe fn RemoveExtension(&self, p: u16, t: u8, e: u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RemoveExtension)(windows_core::Interface::as_raw(self), p, t, e).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMpeg2TableFilter_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AddPID: unsafe extern "system" fn(*mut core::ffi::c_void, u16) -> windows_core::HRESULT,
pub AddTable: unsafe extern "system" fn(*mut core::ffi::c_void, u16, u8) -> windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u16, u8, u16) -> windows_core::HRESULT,
pub RemovePID: unsafe extern "system" fn(*mut core::ffi::c_void, u16) -> windows_core::HRESULT,
pub RemoveTable: unsafe extern "system" fn(*mut core::ffi::c_void, u16, u8) -> windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u16, u8, u16) -> windows_core::HRESULT,
}
pub trait IMpeg2TableFilter_Impl: windows_core::IUnknownImpl {
fn AddPID(&self, p: u16) -> windows_core::Result<()>;
fn AddTable(&self, p: u16, t: u8) -> windows_core::Result<()>;
fn AddExtension(&self, p: u16, t: u8, e: u16) -> windows_core::Result<()>;
fn RemovePID(&self, p: u16) -> windows_core::Result<()>;
fn RemoveTable(&self, p: u16, t: u8) -> windows_core::Result<()>;
fn RemoveExtension(&self, p: u16, t: u8, e: u16) -> windows_core::Result<()>;
}
impl IMpeg2TableFilter_Vtbl {
pub const fn new<Identity: IMpeg2TableFilter_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn AddPID<Identity: IMpeg2TableFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, p: u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMpeg2TableFilter_Impl::AddPID(this, core::mem::transmute_copy(&p)).into()
}
}
unsafe extern "system" fn AddTable<Identity: IMpeg2TableFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, p: u16, t: u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMpeg2TableFilter_Impl::AddTable(this, core::mem::transmute_copy(&p), core::mem::transmute_copy(&t)).into()
}
}
unsafe extern "system" fn AddExtension<Identity: IMpeg2TableFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, p: u16, t: u8, e: u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMpeg2TableFilter_Impl::AddExtension(this, core::mem::transmute_copy(&p), core::mem::transmute_copy(&t), core::mem::transmute_copy(&e)).into()
}
}
unsafe extern "system" fn RemovePID<Identity: IMpeg2TableFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, p: u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMpeg2TableFilter_Impl::RemovePID(this, core::mem::transmute_copy(&p)).into()
}
}
unsafe extern "system" fn RemoveTable<Identity: IMpeg2TableFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, p: u16, t: u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMpeg2TableFilter_Impl::RemoveTable(this, core::mem::transmute_copy(&p), core::mem::transmute_copy(&t)).into()
}
}
unsafe extern "system" fn RemoveExtension<Identity: IMpeg2TableFilter_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, p: u16, t: u8, e: u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IMpeg2TableFilter_Impl::RemoveExtension(this, core::mem::transmute_copy(&p), core::mem::transmute_copy(&t), core::mem::transmute_copy(&e)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AddPID: AddPID::<Identity, OFFSET>,
AddTable: AddTable::<Identity, OFFSET>,
AddExtension: AddExtension::<Identity, OFFSET>,
RemovePID: RemovePID::<Identity, OFFSET>,
RemoveTable: RemoveTable::<Identity, OFFSET>,
RemoveExtension: RemoveExtension::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IMpeg2TableFilter as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IMpeg2TableFilter {}
windows_core::imp::define_interface!(IPAT, IPAT_Vtbl, 0x6623b511_4b5f_43c3_9a01_e8ff84188060);
windows_core::imp::interface_hierarchy!(IPAT, windows_core::IUnknown);
impl IPAT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetTransportStreamId(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTransportStreamId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordProgramNumber(&self, dwindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordProgramNumber)(windows_core::Interface::as_raw(self), dwindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordProgramMapPid(&self, dwindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordProgramMapPid)(windows_core::Interface::as_raw(self), dwindex, &mut result__).map(|| result__)
}
}
pub unsafe fn FindRecordProgramMapPid(&self, wprogramnumber: u16) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FindRecordProgramMapPid)(windows_core::Interface::as_raw(self), wprogramnumber, &mut result__).map(|| result__)
}
}
pub unsafe fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForNextTable)(windows_core::Interface::as_raw(self), hnexttableavailable).ok() }
}
pub unsafe fn GetNextTable(&self) -> windows_core::Result<IPAT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextTable)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForWhenCurrent)(windows_core::Interface::as_raw(self), hnexttableiscurrent).ok() }
}
pub unsafe fn ConvertNextToCurrent(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ConvertNextToCurrent)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPAT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTransportStreamId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordProgramNumber: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordProgramMapPid: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub FindRecordProgramMapPid: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *mut u16) -> windows_core::HRESULT,
pub RegisterForNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub GetNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForWhenCurrent: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub ConvertNextToCurrent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IPAT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetTransportStreamId(&self) -> windows_core::Result<u16>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordProgramNumber(&self, dwindex: u32) -> windows_core::Result<u16>;
fn GetRecordProgramMapPid(&self, dwindex: u32) -> windows_core::Result<u16>;
fn FindRecordProgramMapPid(&self, wprogramnumber: u16) -> windows_core::Result<u16>;
fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn GetNextTable(&self) -> windows_core::Result<IPAT>;
fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn ConvertNextToCurrent(&self) -> windows_core::Result<()>;
}
impl IPAT_Vtbl {
pub const fn new<Identity: IPAT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPAT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetTransportStreamId<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPAT_Impl::GetTransportStreamId(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPAT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPAT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordProgramNumber<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPAT_Impl::GetRecordProgramNumber(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordProgramMapPid<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPAT_Impl::GetRecordProgramMapPid(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn FindRecordProgramMapPid<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, wprogramnumber: u16, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPAT_Impl::FindRecordProgramMapPid(this, core::mem::transmute_copy(&wprogramnumber)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegisterForNextTable<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPAT_Impl::RegisterForNextTable(this, core::mem::transmute_copy(&hnexttableavailable)).into()
}
}
unsafe extern "system" fn GetNextTable<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pppat: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPAT_Impl::GetNextTable(this) {
Ok(ok__) => {
pppat.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegisterForWhenCurrent<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPAT_Impl::RegisterForWhenCurrent(this, core::mem::transmute_copy(&hnexttableiscurrent)).into()
}
}
unsafe extern "system" fn ConvertNextToCurrent<Identity: IPAT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPAT_Impl::ConvertNextToCurrent(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetTransportStreamId: GetTransportStreamId::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordProgramNumber: GetRecordProgramNumber::<Identity, OFFSET>,
GetRecordProgramMapPid: GetRecordProgramMapPid::<Identity, OFFSET>,
FindRecordProgramMapPid: FindRecordProgramMapPid::<Identity, OFFSET>,
RegisterForNextTable: RegisterForNextTable::<Identity, OFFSET>,
GetNextTable: GetNextTable::<Identity, OFFSET>,
RegisterForWhenCurrent: RegisterForWhenCurrent::<Identity, OFFSET>,
ConvertNextToCurrent: ConvertNextToCurrent::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPAT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IPAT {}
windows_core::imp::define_interface!(IPBDAAttributesDescriptor, IPBDAAttributesDescriptor_Vtbl, 0x313b3620_3263_45a6_9533_968befbeac03);
windows_core::imp::interface_hierarchy!(IPBDAAttributesDescriptor, windows_core::IUnknown);
impl IPBDAAttributesDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetAttributePayload(&self, ppbattributebuffer: *mut *mut u8, pdwattributelength: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetAttributePayload)(windows_core::Interface::as_raw(self), ppbattributebuffer as _, pdwattributelength as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPBDAAttributesDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetAttributePayload: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8, *mut u32) -> windows_core::HRESULT,
}
pub trait IPBDAAttributesDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u16>;
fn GetAttributePayload(&self, ppbattributebuffer: *mut *mut u8, pdwattributelength: *mut u32) -> windows_core::Result<()>;
}
impl IPBDAAttributesDescriptor_Vtbl {
pub const fn new<Identity: IPBDAAttributesDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IPBDAAttributesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDAAttributesDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IPBDAAttributesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDAAttributesDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetAttributePayload<Identity: IPBDAAttributesDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppbattributebuffer: *mut *mut u8, pdwattributelength: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPBDAAttributesDescriptor_Impl::GetAttributePayload(this, core::mem::transmute_copy(&ppbattributebuffer), core::mem::transmute_copy(&pdwattributelength)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetAttributePayload: GetAttributePayload::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPBDAAttributesDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IPBDAAttributesDescriptor {}
windows_core::imp::define_interface!(IPBDAEntitlementDescriptor, IPBDAEntitlementDescriptor_Vtbl, 0x22632497_0de3_4587_aadc_d8d99017e760);
windows_core::imp::interface_hierarchy!(IPBDAEntitlementDescriptor, windows_core::IUnknown);
impl IPBDAEntitlementDescriptor {
pub unsafe fn GetTag(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTag)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLength(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetToken(&self, ppbtokenbuffer: *mut *mut u8, pdwtokenlength: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetToken)(windows_core::Interface::as_raw(self), ppbtokenbuffer as _, pdwtokenlength as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPBDAEntitlementDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTag: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetToken: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut u8, *mut u32) -> windows_core::HRESULT,
}
pub trait IPBDAEntitlementDescriptor_Impl: windows_core::IUnknownImpl {
fn GetTag(&self) -> windows_core::Result<u8>;
fn GetLength(&self) -> windows_core::Result<u16>;
fn GetToken(&self, ppbtokenbuffer: *mut *mut u8, pdwtokenlength: *mut u32) -> windows_core::Result<()>;
}
impl IPBDAEntitlementDescriptor_Vtbl {
pub const fn new<Identity: IPBDAEntitlementDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTag<Identity: IPBDAEntitlementDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDAEntitlementDescriptor_Impl::GetTag(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLength<Identity: IPBDAEntitlementDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDAEntitlementDescriptor_Impl::GetLength(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetToken<Identity: IPBDAEntitlementDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppbtokenbuffer: *mut *mut u8, pdwtokenlength: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPBDAEntitlementDescriptor_Impl::GetToken(this, core::mem::transmute_copy(&ppbtokenbuffer), core::mem::transmute_copy(&pdwtokenlength)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTag: GetTag::<Identity, OFFSET>,
GetLength: GetLength::<Identity, OFFSET>,
GetToken: GetToken::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPBDAEntitlementDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IPBDAEntitlementDescriptor {}
windows_core::imp::define_interface!(IPBDASiParser, IPBDASiParser_Vtbl, 0x9de49a74_aba2_4a18_93e1_21f17f95c3c3);
windows_core::imp::interface_hierarchy!(IPBDASiParser, windows_core::IUnknown);
impl IPBDASiParser {
pub unsafe fn Initialize<P0>(&self, punk: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), punk.param().abi()).ok() }
}
pub unsafe fn GetEIT(&self, dwsize: u32, pbuffer: *const u8) -> windows_core::Result<IPBDA_EIT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEIT)(windows_core::Interface::as_raw(self), dwsize, pbuffer, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetServices(&self, dwsize: u32, pbuffer: *const u8) -> windows_core::Result<IPBDA_Services> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServices)(windows_core::Interface::as_raw(self), dwsize, pbuffer, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPBDASiParser_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetEIT: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u8, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetServices: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u8, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IPBDASiParser_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, punk: windows_core::Ref<windows_core::IUnknown>) -> windows_core::Result<()>;
fn GetEIT(&self, dwsize: u32, pbuffer: *const u8) -> windows_core::Result<IPBDA_EIT>;
fn GetServices(&self, dwsize: u32, pbuffer: *const u8) -> windows_core::Result<IPBDA_Services>;
}
impl IPBDASiParser_Vtbl {
pub const fn new<Identity: IPBDASiParser_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IPBDASiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, punk: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPBDASiParser_Impl::Initialize(this, core::mem::transmute_copy(&punk)).into()
}
}
unsafe extern "system" fn GetEIT<Identity: IPBDASiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwsize: u32, pbuffer: *const u8, ppeit: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDASiParser_Impl::GetEIT(this, core::mem::transmute_copy(&dwsize), core::mem::transmute_copy(&pbuffer)) {
Ok(ok__) => {
ppeit.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServices<Identity: IPBDASiParser_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwsize: u32, pbuffer: *const u8, ppservices: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDASiParser_Impl::GetServices(this, core::mem::transmute_copy(&dwsize), core::mem::transmute_copy(&pbuffer)) {
Ok(ok__) => {
ppservices.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetEIT: GetEIT::<Identity, OFFSET>,
GetServices: GetServices::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPBDASiParser as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IPBDASiParser {}
windows_core::imp::define_interface!(IPBDA_EIT, IPBDA_EIT_Vtbl, 0xa35f2dea_098f_4ebd_984c_2bd4c3c8ce0a);
windows_core::imp::interface_hierarchy!(IPBDA_EIT, windows_core::IUnknown);
impl IPBDA_EIT {
pub unsafe fn Initialize(&self, pbuffer: &[u8]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), pbuffer.len().try_into().unwrap(), core::mem::transmute(pbuffer.as_ptr())).ok() }
}
pub unsafe fn GetTableId(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetServiceIdx(&self) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetServiceIdx)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordEventId(&self, dwrecordindex: u32) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordEventId)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordStartTime(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_DATE_AND_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordStartTime)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDuration(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_TIME> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDuration)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPBDA_EIT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u8) -> windows_core::HRESULT,
pub GetTableId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetServiceIdx: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordEventId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub GetRecordStartTime: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT,
pub GetRecordDuration: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut MPEG_TIME) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IPBDA_EIT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, size: u32, pbuffer: *const u8) -> windows_core::Result<()>;
fn GetTableId(&self) -> windows_core::Result<u8>;
fn GetVersionNumber(&self) -> windows_core::Result<u16>;
fn GetServiceIdx(&self) -> windows_core::Result<u64>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordEventId(&self, dwrecordindex: u32) -> windows_core::Result<u64>;
fn GetRecordStartTime(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_DATE_AND_TIME>;
fn GetRecordDuration(&self, dwrecordindex: u32) -> windows_core::Result<MPEG_TIME>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
}
impl IPBDA_EIT_Vtbl {
pub const fn new<Identity: IPBDA_EIT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, size: u32, pbuffer: *const u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPBDA_EIT_Impl::Initialize(this, core::mem::transmute_copy(&size), core::mem::transmute_copy(&pbuffer)).into()
}
}
unsafe extern "system" fn GetTableId<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_EIT_Impl::GetTableId(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_EIT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetServiceIdx<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, plwval: *mut u64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_EIT_Impl::GetServiceIdx(this) {
Ok(ok__) => {
plwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_EIT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordEventId<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, plwval: *mut u64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_EIT_Impl::GetRecordEventId(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
plwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordStartTime<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pmdtval: *mut MPEG_DATE_AND_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_EIT_Impl::GetRecordStartTime(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pmdtval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDuration<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pmdval: *mut MPEG_TIME) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_EIT_Impl::GetRecordDuration(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pmdval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_EIT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_EIT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IPBDA_EIT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPBDA_EIT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetTableId: GetTableId::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetServiceIdx: GetServiceIdx::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordEventId: GetRecordEventId::<Identity, OFFSET>,
GetRecordStartTime: GetRecordStartTime::<Identity, OFFSET>,
GetRecordDuration: GetRecordDuration::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPBDA_EIT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IPBDA_EIT {}
windows_core::imp::define_interface!(IPBDA_Services, IPBDA_Services_Vtbl, 0x944eab37_eed4_4850_afd2_77e7efeb4427);
windows_core::imp::interface_hierarchy!(IPBDA_Services, windows_core::IUnknown);
impl IPBDA_Services {
pub unsafe fn Initialize(&self, pbuffer: &[u8]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), pbuffer.len().try_into().unwrap(), core::mem::transmute(pbuffer.as_ptr())).ok() }
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordByIndex(&self, dwrecordindex: u32) -> windows_core::Result<u64> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPBDA_Services_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u8) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetRecordByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
}
pub trait IPBDA_Services_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, size: u32, pbuffer: *const u8) -> windows_core::Result<()>;
fn GetCountOfRecords(&self) -> windows_core::Result<u32>;
fn GetRecordByIndex(&self, dwrecordindex: u32) -> windows_core::Result<u64>;
}
impl IPBDA_Services_Vtbl {
pub const fn new<Identity: IPBDA_Services_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IPBDA_Services_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, size: u32, pbuffer: *const u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPBDA_Services_Impl::Initialize(this, core::mem::transmute_copy(&size), core::mem::transmute_copy(&pbuffer)).into()
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IPBDA_Services_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_Services_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordByIndex<Identity: IPBDA_Services_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pul64serviceidx: *mut u64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPBDA_Services_Impl::GetRecordByIndex(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pul64serviceidx.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordByIndex: GetRecordByIndex::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPBDA_Services as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IPBDA_Services {}
windows_core::imp::define_interface!(IPMT, IPMT_Vtbl, 0x01f3b398_9527_4736_94db_5195878e97a8);
windows_core::imp::interface_hierarchy!(IPMT, windows_core::IUnknown);
impl IPMT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetProgramNumber(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProgramNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetPcrPid(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPcrPid)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn GetCountOfRecords(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfRecords)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordStreamType(&self, dwrecordindex: u32) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordStreamType)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordElementaryPid(&self, dwrecordindex: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordElementaryPid)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordCountOfDescriptors)(windows_core::Interface::as_raw(self), dwrecordindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwdescindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRecordDescriptorByIndex)(windows_core::Interface::as_raw(self), dwrecordindex, dwdescindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordDescriptorByTag)(windows_core::Interface::as_raw(self), dwrecordindex, btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn QueryServiceGatewayInfo(&self, ppdsmcclist: *mut *mut DSMCC_ELEMENT, puicount: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).QueryServiceGatewayInfo)(windows_core::Interface::as_raw(self), ppdsmcclist as _, puicount as _).ok() }
}
pub unsafe fn QueryMPEInfo(&self, ppmpelist: *mut *mut MPE_ELEMENT, puicount: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).QueryMPEInfo)(windows_core::Interface::as_raw(self), ppmpelist as _, puicount as _).ok() }
}
pub unsafe fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForNextTable)(windows_core::Interface::as_raw(self), hnexttableavailable).ok() }
}
pub unsafe fn GetNextTable(&self) -> windows_core::Result<IPMT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextTable)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForWhenCurrent)(windows_core::Interface::as_raw(self), hnexttableiscurrent).ok() }
}
pub unsafe fn ConvertNextToCurrent(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ConvertNextToCurrent)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPMT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetProgramNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetPcrPid: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCountOfRecords: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetRecordStreamType: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u8) -> windows_core::HRESULT,
pub GetRecordElementaryPid: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetRecordCountOfDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetRecordDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRecordDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub QueryServiceGatewayInfo: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut DSMCC_ELEMENT, *mut u32) -> windows_core::HRESULT,
pub QueryMPEInfo: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut MPE_ELEMENT, *mut u32) -> windows_core::HRESULT,
pub RegisterForNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub GetNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForWhenCurrent: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub ConvertNextToCurrent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IPMT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetProgramNumber(&self) -> windows_core::Result<u16>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetPcrPid(&self) -> windows_core::Result<u16>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn GetCountOfRecords(&self) -> windows_core::Result<u16>;
fn GetRecordStreamType(&self, dwrecordindex: u32) -> windows_core::Result<u8>;
fn GetRecordElementaryPid(&self, dwrecordindex: u32) -> windows_core::Result<u16>;
fn GetRecordCountOfDescriptors(&self, dwrecordindex: u32) -> windows_core::Result<u32>;
fn GetRecordDescriptorByIndex(&self, dwrecordindex: u32, dwdescindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetRecordDescriptorByTag(&self, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn QueryServiceGatewayInfo(&self, ppdsmcclist: *mut *mut DSMCC_ELEMENT, puicount: *mut u32) -> windows_core::Result<()>;
fn QueryMPEInfo(&self, ppmpelist: *mut *mut MPE_ELEMENT, puicount: *mut u32) -> windows_core::Result<()>;
fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn GetNextTable(&self) -> windows_core::Result<IPMT>;
fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn ConvertNextToCurrent(&self) -> windows_core::Result<()>;
}
impl IPMT_Vtbl {
pub const fn new<Identity: IPMT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPMT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetProgramNumber<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetProgramNumber(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetVersionNumber<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPcrPid<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppidval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetPcrPid(this) {
Ok(ok__) => {
ppidval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPMT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn GetCountOfRecords<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetCountOfRecords(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordStreamType<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetRecordStreamType(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordElementaryPid<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, ppidval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetRecordElementaryPid(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
ppidval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordCountOfDescriptors<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetRecordCountOfDescriptors(this, core::mem::transmute_copy(&dwrecordindex)) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByIndex<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, dwdescindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetRecordDescriptorByIndex(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&dwdescindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRecordDescriptorByTag<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwrecordindex: u32, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPMT_Impl::GetRecordDescriptorByTag(this, core::mem::transmute_copy(&dwrecordindex), core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn QueryServiceGatewayInfo<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppdsmcclist: *mut *mut DSMCC_ELEMENT, puicount: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPMT_Impl::QueryServiceGatewayInfo(this, core::mem::transmute_copy(&ppdsmcclist), core::mem::transmute_copy(&puicount)).into()
}
}
unsafe extern "system" fn QueryMPEInfo<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppmpelist: *mut *mut MPE_ELEMENT, puicount: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPMT_Impl::QueryMPEInfo(this, core::mem::transmute_copy(&ppmpelist), core::mem::transmute_copy(&puicount)).into()
}
}
unsafe extern "system" fn RegisterForNextTable<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPMT_Impl::RegisterForNextTable(this, core::mem::transmute_copy(&hnexttableavailable)).into()
}
}
unsafe extern "system" fn GetNextTable<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pppmt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPMT_Impl::GetNextTable(this) {
Ok(ok__) => {
pppmt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegisterForWhenCurrent<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPMT_Impl::RegisterForWhenCurrent(this, core::mem::transmute_copy(&hnexttableiscurrent)).into()
}
}
unsafe extern "system" fn ConvertNextToCurrent<Identity: IPMT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPMT_Impl::ConvertNextToCurrent(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetProgramNumber: GetProgramNumber::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetPcrPid: GetPcrPid::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
GetCountOfRecords: GetCountOfRecords::<Identity, OFFSET>,
GetRecordStreamType: GetRecordStreamType::<Identity, OFFSET>,
GetRecordElementaryPid: GetRecordElementaryPid::<Identity, OFFSET>,
GetRecordCountOfDescriptors: GetRecordCountOfDescriptors::<Identity, OFFSET>,
GetRecordDescriptorByIndex: GetRecordDescriptorByIndex::<Identity, OFFSET>,
GetRecordDescriptorByTag: GetRecordDescriptorByTag::<Identity, OFFSET>,
QueryServiceGatewayInfo: QueryServiceGatewayInfo::<Identity, OFFSET>,
QueryMPEInfo: QueryMPEInfo::<Identity, OFFSET>,
RegisterForNextTable: RegisterForNextTable::<Identity, OFFSET>,
GetNextTable: GetNextTable::<Identity, OFFSET>,
RegisterForWhenCurrent: RegisterForWhenCurrent::<Identity, OFFSET>,
ConvertNextToCurrent: ConvertNextToCurrent::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPMT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IPMT {}
windows_core::imp::define_interface!(IPSITables, IPSITables_Vtbl, 0x919f24c5_7b14_42ac_a4b0_2ae08daf00ac);
windows_core::imp::interface_hierarchy!(IPSITables, windows_core::IUnknown);
impl IPSITables {
pub unsafe fn GetTable(&self, dwtsid: u32, dwtid_pid: u32, dwhashedver: u32, dwpara4: u32) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTable)(windows_core::Interface::as_raw(self), dwtsid, dwtid_pid, dwhashedver, dwpara4, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPSITables_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetTable: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IPSITables_Impl: windows_core::IUnknownImpl {
fn GetTable(&self, dwtsid: u32, dwtid_pid: u32, dwhashedver: u32, dwpara4: u32) -> windows_core::Result<windows_core::IUnknown>;
}
impl IPSITables_Vtbl {
pub const fn new<Identity: IPSITables_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetTable<Identity: IPSITables_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwtsid: u32, dwtid_pid: u32, dwhashedver: u32, dwpara4: u32, ppiunknown: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPSITables_Impl::GetTable(this, core::mem::transmute_copy(&dwtsid), core::mem::transmute_copy(&dwtid_pid), core::mem::transmute_copy(&dwhashedver), core::mem::transmute_copy(&dwpara4)) {
Ok(ok__) => {
ppiunknown.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetTable: GetTable::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPSITables as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IPSITables {}
windows_core::imp::define_interface!(IPTFilterLicenseRenewal, IPTFilterLicenseRenewal_Vtbl, 0x26d836a5_0c15_44c7_ac59_b0da8728f240);
windows_core::imp::interface_hierarchy!(IPTFilterLicenseRenewal, windows_core::IUnknown);
impl IPTFilterLicenseRenewal {
pub unsafe fn RenewLicenses<P0, P1>(&self, wszfilename: P0, wszexpiredkid: P1, dwcallersid: u32, bhighpriority: bool) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).RenewLicenses)(windows_core::Interface::as_raw(self), wszfilename.param().abi(), wszexpiredkid.param().abi(), dwcallersid, bhighpriority.into()).ok() }
}
pub unsafe fn CancelLicenseRenewal(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).CancelLicenseRenewal)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPTFilterLicenseRenewal_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub RenewLicenses: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, windows_core::PCWSTR, u32, windows_core::BOOL) -> windows_core::HRESULT,
pub CancelLicenseRenewal: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IPTFilterLicenseRenewal_Impl: windows_core::IUnknownImpl {
fn RenewLicenses(&self, wszfilename: &windows_core::PCWSTR, wszexpiredkid: &windows_core::PCWSTR, dwcallersid: u32, bhighpriority: windows_core::BOOL) -> windows_core::Result<()>;
fn CancelLicenseRenewal(&self) -> windows_core::Result<()>;
}
impl IPTFilterLicenseRenewal_Vtbl {
pub const fn new<Identity: IPTFilterLicenseRenewal_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn RenewLicenses<Identity: IPTFilterLicenseRenewal_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, wszfilename: windows_core::PCWSTR, wszexpiredkid: windows_core::PCWSTR, dwcallersid: u32, bhighpriority: windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPTFilterLicenseRenewal_Impl::RenewLicenses(this, core::mem::transmute(&wszfilename), core::mem::transmute(&wszexpiredkid), core::mem::transmute_copy(&dwcallersid), core::mem::transmute_copy(&bhighpriority)).into()
}
}
unsafe extern "system" fn CancelLicenseRenewal<Identity: IPTFilterLicenseRenewal_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPTFilterLicenseRenewal_Impl::CancelLicenseRenewal(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
RenewLicenses: RenewLicenses::<Identity, OFFSET>,
CancelLicenseRenewal: CancelLicenseRenewal::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPTFilterLicenseRenewal as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IPTFilterLicenseRenewal {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IPersistTuneXml, IPersistTuneXml_Vtbl, 0x0754cd31_8d15_47a9_8215_d20064157244);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IPersistTuneXml {
type Target = super::super::super::System::Com::IPersist;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IPersistTuneXml, windows_core::IUnknown, super::super::super::System::Com::IPersist);
#[cfg(feature = "Win32_System_Com")]
impl IPersistTuneXml {
pub unsafe fn InitNew(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).InitNew)(windows_core::Interface::as_raw(self)).ok() }
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Load(&self, varvalue: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Load)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varvalue)).ok() }
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Save(&self) -> windows_core::Result<super::super::super::System::Variant::VARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Save)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IPersistTuneXml_Vtbl {
pub base__: super::super::super::System::Com::IPersist_Vtbl,
pub InitNew: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Load: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Load: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Save: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Save: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IPersistTuneXml_Impl: super::super::super::System::Com::IPersist_Impl {
fn InitNew(&self) -> windows_core::Result<()>;
fn Load(&self, varvalue: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn Save(&self) -> windows_core::Result<super::super::super::System::Variant::VARIANT>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IPersistTuneXml_Vtbl {
pub const fn new<Identity: IPersistTuneXml_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn InitNew<Identity: IPersistTuneXml_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPersistTuneXml_Impl::InitNew(this).into()
}
}
unsafe extern "system" fn Load<Identity: IPersistTuneXml_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varvalue: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IPersistTuneXml_Impl::Load(this, core::mem::transmute(&varvalue)).into()
}
}
unsafe extern "system" fn Save<Identity: IPersistTuneXml_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pvarfragment: *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPersistTuneXml_Impl::Save(this) {
Ok(ok__) => {
pvarfragment.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::super::super::System::Com::IPersist_Vtbl::new::<Identity, OFFSET>(),
InitNew: InitNew::<Identity, OFFSET>,
Load: Load::<Identity, OFFSET>,
Save: Save::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPersistTuneXml as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IPersist as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IPersistTuneXml {}
windows_core::imp::define_interface!(IPersistTuneXmlUtility, IPersistTuneXmlUtility_Vtbl, 0x990237ae_ac11_4614_be8f_dd217a4cb4cb);
windows_core::imp::interface_hierarchy!(IPersistTuneXmlUtility, windows_core::IUnknown);
impl IPersistTuneXmlUtility {
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Deserialize(&self, varvalue: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Deserialize)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varvalue), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPersistTuneXmlUtility_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Deserialize: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Deserialize: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IPersistTuneXmlUtility_Impl: windows_core::IUnknownImpl {
fn Deserialize(&self, varvalue: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IPersistTuneXmlUtility_Vtbl {
pub const fn new<Identity: IPersistTuneXmlUtility_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Deserialize<Identity: IPersistTuneXmlUtility_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varvalue: super::super::super::System::Variant::VARIANT, ppobject: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPersistTuneXmlUtility_Impl::Deserialize(this, core::mem::transmute(&varvalue)) {
Ok(ok__) => {
ppobject.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Deserialize: Deserialize::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPersistTuneXmlUtility as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IPersistTuneXmlUtility {}
windows_core::imp::define_interface!(IPersistTuneXmlUtility2, IPersistTuneXmlUtility2_Vtbl, 0x992e165f_ea24_4b2f_9a1d_009d92120451);
impl core::ops::Deref for IPersistTuneXmlUtility2 {
type Target = IPersistTuneXmlUtility;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IPersistTuneXmlUtility2, windows_core::IUnknown, IPersistTuneXmlUtility);
impl IPersistTuneXmlUtility2 {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Serialize<P0>(&self, pitunerequest: P0) -> windows_core::Result<windows_core::BSTR>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Serialize)(windows_core::Interface::as_raw(self), pitunerequest.param().abi(), &mut result__).map(|| core::mem::transmute(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPersistTuneXmlUtility2_Vtbl {
pub base__: IPersistTuneXmlUtility_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub Serialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Serialize: usize,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IPersistTuneXmlUtility2_Impl: IPersistTuneXmlUtility_Impl {
fn Serialize(&self, pitunerequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<windows_core::BSTR>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IPersistTuneXmlUtility2_Vtbl {
pub const fn new<Identity: IPersistTuneXmlUtility2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Serialize<Identity: IPersistTuneXmlUtility2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pitunerequest: *mut core::ffi::c_void, pstring: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IPersistTuneXmlUtility2_Impl::Serialize(this, core::mem::transmute_copy(&pitunerequest)) {
Ok(ok__) => {
pstring.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: IPersistTuneXmlUtility_Vtbl::new::<Identity, OFFSET>(), Serialize: Serialize::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IPersistTuneXmlUtility2 as windows_core::Interface>::IID || iid == &<IPersistTuneXmlUtility as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IPersistTuneXmlUtility2 {}
windows_core::imp::define_interface!(IRegisterTuner, IRegisterTuner_Vtbl, 0x359b3901_572c_4854_bb49_cdef66606a25);
windows_core::imp::interface_hierarchy!(IRegisterTuner, windows_core::IUnknown);
impl IRegisterTuner {
pub unsafe fn Register<P0, P1>(&self, ptuner: P0, pgraph: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ITuner>,
P1: windows_core::Param<super::IGraphBuilder>,
{
unsafe { (windows_core::Interface::vtable(self).Register)(windows_core::Interface::as_raw(self), ptuner.param().abi(), pgraph.param().abi()).ok() }
}
pub unsafe fn Unregister(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Unregister)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IRegisterTuner_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Register: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Unregister: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IRegisterTuner_Impl: windows_core::IUnknownImpl {
fn Register(&self, ptuner: windows_core::Ref<ITuner>, pgraph: windows_core::Ref<super::IGraphBuilder>) -> windows_core::Result<()>;
fn Unregister(&self) -> windows_core::Result<()>;
}
impl IRegisterTuner_Vtbl {
pub const fn new<Identity: IRegisterTuner_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Register<Identity: IRegisterTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ptuner: *mut core::ffi::c_void, pgraph: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IRegisterTuner_Impl::Register(this, core::mem::transmute_copy(&ptuner), core::mem::transmute_copy(&pgraph)).into()
}
}
unsafe extern "system" fn Unregister<Identity: IRegisterTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IRegisterTuner_Impl::Unregister(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Register: Register::<Identity, OFFSET>,
Unregister: Unregister::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IRegisterTuner as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IRegisterTuner {}
windows_core::imp::define_interface!(ISBE2Crossbar, ISBE2Crossbar_Vtbl, 0x547b6d26_3226_487e_8253_8aa168749434);
windows_core::imp::interface_hierarchy!(ISBE2Crossbar, windows_core::IUnknown);
impl ISBE2Crossbar {
pub unsafe fn EnableDefaultMode(&self, defaultflags: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).EnableDefaultMode)(windows_core::Interface::as_raw(self), defaultflags).ok() }
}
pub unsafe fn GetInitialProfile(&self) -> windows_core::Result<ISBE2MediaTypeProfile> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInitialProfile)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetOutputProfile<P0>(&self, pprofile: P0, pcoutputpins: *mut u32, ppoutputpins: *mut Option<super::IPin>) -> windows_core::Result<()>
where
P0: windows_core::Param<ISBE2MediaTypeProfile>,
{
unsafe { (windows_core::Interface::vtable(self).SetOutputProfile)(windows_core::Interface::as_raw(self), pprofile.param().abi(), pcoutputpins as _, core::mem::transmute(ppoutputpins)).ok() }
}
pub unsafe fn EnumStreams(&self) -> windows_core::Result<ISBE2EnumStream> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumStreams)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISBE2Crossbar_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub EnableDefaultMode: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetInitialProfile: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputProfile: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumStreams: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait ISBE2Crossbar_Impl: windows_core::IUnknownImpl {
fn EnableDefaultMode(&self, defaultflags: u32) -> windows_core::Result<()>;
fn GetInitialProfile(&self) -> windows_core::Result<ISBE2MediaTypeProfile>;
fn SetOutputProfile(&self, pprofile: windows_core::Ref<ISBE2MediaTypeProfile>, pcoutputpins: *mut u32, ppoutputpins: windows_core::OutRef<super::IPin>) -> windows_core::Result<()>;
fn EnumStreams(&self) -> windows_core::Result<ISBE2EnumStream>;
}
impl ISBE2Crossbar_Vtbl {
pub const fn new<Identity: ISBE2Crossbar_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn EnableDefaultMode<Identity: ISBE2Crossbar_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, defaultflags: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2Crossbar_Impl::EnableDefaultMode(this, core::mem::transmute_copy(&defaultflags)).into()
}
}
unsafe extern "system" fn GetInitialProfile<Identity: ISBE2Crossbar_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppprofile: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISBE2Crossbar_Impl::GetInitialProfile(this) {
Ok(ok__) => {
ppprofile.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetOutputProfile<Identity: ISBE2Crossbar_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pprofile: *mut core::ffi::c_void, pcoutputpins: *mut u32, ppoutputpins: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2Crossbar_Impl::SetOutputProfile(this, core::mem::transmute_copy(&pprofile), core::mem::transmute_copy(&pcoutputpins), core::mem::transmute_copy(&ppoutputpins)).into()
}
}
unsafe extern "system" fn EnumStreams<Identity: ISBE2Crossbar_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppstreams: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISBE2Crossbar_Impl::EnumStreams(this) {
Ok(ok__) => {
ppstreams.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
EnableDefaultMode: EnableDefaultMode::<Identity, OFFSET>,
GetInitialProfile: GetInitialProfile::<Identity, OFFSET>,
SetOutputProfile: SetOutputProfile::<Identity, OFFSET>,
EnumStreams: EnumStreams::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISBE2Crossbar as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISBE2Crossbar {}
windows_core::imp::define_interface!(ISBE2EnumStream, ISBE2EnumStream_Vtbl, 0xf7611092_9fbc_46ec_a7c7_548ea78b71a4);
windows_core::imp::interface_hierarchy!(ISBE2EnumStream, windows_core::IUnknown);
impl ISBE2EnumStream {
pub unsafe fn Next(&self, pstreamdesc: &mut [SBE2_STREAM_DESC], pcreceived: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Next)(windows_core::Interface::as_raw(self), pstreamdesc.len().try_into().unwrap(), core::mem::transmute(pstreamdesc.as_ptr()), pcreceived as _).ok() }
}
pub unsafe fn Skip(&self, crecords: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Skip)(windows_core::Interface::as_raw(self), crecords).ok() }
}
pub unsafe fn Reset(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<ISBE2EnumStream> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISBE2EnumStream_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Next: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut SBE2_STREAM_DESC, *mut u32) -> windows_core::HRESULT,
pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait ISBE2EnumStream_Impl: windows_core::IUnknownImpl {
fn Next(&self, crequest: u32, pstreamdesc: *mut SBE2_STREAM_DESC, pcreceived: *mut u32) -> windows_core::Result<()>;
fn Skip(&self, crecords: u32) -> windows_core::Result<()>;
fn Reset(&self) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<ISBE2EnumStream>;
}
impl ISBE2EnumStream_Vtbl {
pub const fn new<Identity: ISBE2EnumStream_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Next<Identity: ISBE2EnumStream_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, crequest: u32, pstreamdesc: *mut SBE2_STREAM_DESC, pcreceived: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2EnumStream_Impl::Next(this, core::mem::transmute_copy(&crequest), core::mem::transmute_copy(&pstreamdesc), core::mem::transmute_copy(&pcreceived)).into()
}
}
unsafe extern "system" fn Skip<Identity: ISBE2EnumStream_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, crecords: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2EnumStream_Impl::Skip(this, core::mem::transmute_copy(&crecords)).into()
}
}
unsafe extern "system" fn Reset<Identity: ISBE2EnumStream_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2EnumStream_Impl::Reset(this).into()
}
}
unsafe extern "system" fn Clone<Identity: ISBE2EnumStream_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppienumstream: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISBE2EnumStream_Impl::Clone(this) {
Ok(ok__) => {
ppienumstream.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, OFFSET>,
Skip: Skip::<Identity, OFFSET>,
Reset: Reset::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISBE2EnumStream as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISBE2EnumStream {}
windows_core::imp::define_interface!(ISBE2FileScan, ISBE2FileScan_Vtbl, 0x3e2bf5a5_4f96_4899_a1a3_75e8be9a5ac0);
windows_core::imp::interface_hierarchy!(ISBE2FileScan, windows_core::IUnknown);
impl ISBE2FileScan {
pub unsafe fn RepairFile<P0>(&self, filename: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).RepairFile)(windows_core::Interface::as_raw(self), filename.param().abi()).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISBE2FileScan_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub RepairFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
}
pub trait ISBE2FileScan_Impl: windows_core::IUnknownImpl {
fn RepairFile(&self, filename: &windows_core::PCWSTR) -> windows_core::Result<()>;
}
impl ISBE2FileScan_Vtbl {
pub const fn new<Identity: ISBE2FileScan_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn RepairFile<Identity: ISBE2FileScan_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, filename: windows_core::PCWSTR) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2FileScan_Impl::RepairFile(this, core::mem::transmute(&filename)).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), RepairFile: RepairFile::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISBE2FileScan as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISBE2FileScan {}
windows_core::imp::define_interface!(ISBE2GlobalEvent, ISBE2GlobalEvent_Vtbl, 0xcaede759_b6b1_11db_a578_0018f3fa24c6);
windows_core::imp::interface_hierarchy!(ISBE2GlobalEvent, windows_core::IUnknown);
impl ISBE2GlobalEvent {
pub unsafe fn GetEvent(&self, idevt: *const windows_core::GUID, param1: u32, param2: u32, param3: u32, param4: u32, pspanning: *mut windows_core::BOOL, pcb: *mut u32, pb: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetEvent)(windows_core::Interface::as_raw(self), idevt, param1, param2, param3, param4, pspanning as _, pcb as _, pb as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISBE2GlobalEvent_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetEvent: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, u32, u32, u32, u32, *mut windows_core::BOOL, *mut u32, *mut u8) -> windows_core::HRESULT,
}
pub trait ISBE2GlobalEvent_Impl: windows_core::IUnknownImpl {
fn GetEvent(&self, idevt: *const windows_core::GUID, param1: u32, param2: u32, param3: u32, param4: u32, pspanning: *mut windows_core::BOOL, pcb: *mut u32, pb: *mut u8) -> windows_core::Result<()>;
}
impl ISBE2GlobalEvent_Vtbl {
pub const fn new<Identity: ISBE2GlobalEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetEvent<Identity: ISBE2GlobalEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, idevt: *const windows_core::GUID, param1: u32, param2: u32, param3: u32, param4: u32, pspanning: *mut windows_core::BOOL, pcb: *mut u32, pb: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2GlobalEvent_Impl::GetEvent(this, core::mem::transmute_copy(&idevt), core::mem::transmute_copy(¶m1), core::mem::transmute_copy(¶m2), core::mem::transmute_copy(¶m3), core::mem::transmute_copy(¶m4), core::mem::transmute_copy(&pspanning), core::mem::transmute_copy(&pcb), core::mem::transmute_copy(&pb)).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetEvent: GetEvent::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISBE2GlobalEvent as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISBE2GlobalEvent {}
windows_core::imp::define_interface!(ISBE2GlobalEvent2, ISBE2GlobalEvent2_Vtbl, 0x6d8309bf_00fe_4506_8b03_f8c65b5c9b39);
impl core::ops::Deref for ISBE2GlobalEvent2 {
type Target = ISBE2GlobalEvent;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(ISBE2GlobalEvent2, windows_core::IUnknown, ISBE2GlobalEvent);
impl ISBE2GlobalEvent2 {
pub unsafe fn GetEventEx(&self, idevt: *const windows_core::GUID, param1: u32, param2: u32, param3: u32, param4: u32, pspanning: *mut windows_core::BOOL, pcb: *mut u32, pb: *mut u8, pstreamtime: *mut i64) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetEventEx)(windows_core::Interface::as_raw(self), idevt, param1, param2, param3, param4, pspanning as _, pcb as _, pb as _, pstreamtime as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISBE2GlobalEvent2_Vtbl {
pub base__: ISBE2GlobalEvent_Vtbl,
pub GetEventEx: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, u32, u32, u32, u32, *mut windows_core::BOOL, *mut u32, *mut u8, *mut i64) -> windows_core::HRESULT,
}
pub trait ISBE2GlobalEvent2_Impl: ISBE2GlobalEvent_Impl {
fn GetEventEx(&self, idevt: *const windows_core::GUID, param1: u32, param2: u32, param3: u32, param4: u32, pspanning: *mut windows_core::BOOL, pcb: *mut u32, pb: *mut u8, pstreamtime: *mut i64) -> windows_core::Result<()>;
}
impl ISBE2GlobalEvent2_Vtbl {
pub const fn new<Identity: ISBE2GlobalEvent2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetEventEx<Identity: ISBE2GlobalEvent2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, idevt: *const windows_core::GUID, param1: u32, param2: u32, param3: u32, param4: u32, pspanning: *mut windows_core::BOOL, pcb: *mut u32, pb: *mut u8, pstreamtime: *mut i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2GlobalEvent2_Impl::GetEventEx(this, core::mem::transmute_copy(&idevt), core::mem::transmute_copy(¶m1), core::mem::transmute_copy(¶m2), core::mem::transmute_copy(¶m3), core::mem::transmute_copy(¶m4), core::mem::transmute_copy(&pspanning), core::mem::transmute_copy(&pcb), core::mem::transmute_copy(&pb), core::mem::transmute_copy(&pstreamtime)).into()
}
}
Self { base__: ISBE2GlobalEvent_Vtbl::new::<Identity, OFFSET>(), GetEventEx: GetEventEx::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISBE2GlobalEvent2 as windows_core::Interface>::IID || iid == &<ISBE2GlobalEvent as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISBE2GlobalEvent2 {}
windows_core::imp::define_interface!(ISBE2MediaTypeProfile, ISBE2MediaTypeProfile_Vtbl, 0xf238267d_4671_40d7_997e_25dc32cfed2a);
windows_core::imp::interface_hierarchy!(ISBE2MediaTypeProfile, windows_core::IUnknown);
impl ISBE2MediaTypeProfile {
pub unsafe fn GetStreamCount(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStreamCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub unsafe fn GetStream(&self, index: u32) -> windows_core::Result<*mut super::super::MediaFoundation::AM_MEDIA_TYPE> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStream)(windows_core::Interface::as_raw(self), index, &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub unsafe fn AddStream(&self, pmediatype: *const super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AddStream)(windows_core::Interface::as_raw(self), core::mem::transmute(pmediatype)).ok() }
}
pub unsafe fn DeleteStream(&self, index: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).DeleteStream)(windows_core::Interface::as_raw(self), index).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISBE2MediaTypeProfile_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetStreamCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub GetStream: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_Media_MediaFoundation"))]
GetStream: usize,
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub AddStream: unsafe extern "system" fn(*mut core::ffi::c_void, *const super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_Media_MediaFoundation"))]
AddStream: usize,
pub DeleteStream: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_Media_MediaFoundation")]
pub trait ISBE2MediaTypeProfile_Impl: windows_core::IUnknownImpl {
fn GetStreamCount(&self) -> windows_core::Result<u32>;
fn GetStream(&self, index: u32) -> windows_core::Result<*mut super::super::MediaFoundation::AM_MEDIA_TYPE>;
fn AddStream(&self, pmediatype: *const super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::Result<()>;
fn DeleteStream(&self, index: u32) -> windows_core::Result<()>;
}
#[cfg(feature = "Win32_Media_MediaFoundation")]
impl ISBE2MediaTypeProfile_Vtbl {
pub const fn new<Identity: ISBE2MediaTypeProfile_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetStreamCount<Identity: ISBE2MediaTypeProfile_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pcount: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISBE2MediaTypeProfile_Impl::GetStreamCount(this) {
Ok(ok__) => {
pcount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetStream<Identity: ISBE2MediaTypeProfile_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: u32, ppmediatype: *mut *mut super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISBE2MediaTypeProfile_Impl::GetStream(this, core::mem::transmute_copy(&index)) {
Ok(ok__) => {
ppmediatype.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn AddStream<Identity: ISBE2MediaTypeProfile_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pmediatype: *const super::super::MediaFoundation::AM_MEDIA_TYPE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2MediaTypeProfile_Impl::AddStream(this, core::mem::transmute_copy(&pmediatype)).into()
}
}
unsafe extern "system" fn DeleteStream<Identity: ISBE2MediaTypeProfile_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2MediaTypeProfile_Impl::DeleteStream(this, core::mem::transmute_copy(&index)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetStreamCount: GetStreamCount::<Identity, OFFSET>,
GetStream: GetStream::<Identity, OFFSET>,
AddStream: AddStream::<Identity, OFFSET>,
DeleteStream: DeleteStream::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISBE2MediaTypeProfile as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_Media_MediaFoundation")]
impl windows_core::RuntimeName for ISBE2MediaTypeProfile {}
windows_core::imp::define_interface!(ISBE2SpanningEvent, ISBE2SpanningEvent_Vtbl, 0xcaede760_b6b1_11db_a578_0018f3fa24c6);
windows_core::imp::interface_hierarchy!(ISBE2SpanningEvent, windows_core::IUnknown);
impl ISBE2SpanningEvent {
pub unsafe fn GetEvent(&self, idevt: *const windows_core::GUID, streamid: u32, pcb: *mut u32, pb: *mut u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetEvent)(windows_core::Interface::as_raw(self), idevt, streamid, pcb as _, pb as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISBE2SpanningEvent_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetEvent: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, u32, *mut u32, *mut u8) -> windows_core::HRESULT,
}
pub trait ISBE2SpanningEvent_Impl: windows_core::IUnknownImpl {
fn GetEvent(&self, idevt: *const windows_core::GUID, streamid: u32, pcb: *mut u32, pb: *mut u8) -> windows_core::Result<()>;
}
impl ISBE2SpanningEvent_Vtbl {
pub const fn new<Identity: ISBE2SpanningEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetEvent<Identity: ISBE2SpanningEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, idevt: *const windows_core::GUID, streamid: u32, pcb: *mut u32, pb: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2SpanningEvent_Impl::GetEvent(this, core::mem::transmute_copy(&idevt), core::mem::transmute_copy(&streamid), core::mem::transmute_copy(&pcb), core::mem::transmute_copy(&pb)).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetEvent: GetEvent::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISBE2SpanningEvent as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISBE2SpanningEvent {}
windows_core::imp::define_interface!(ISBE2StreamMap, ISBE2StreamMap_Vtbl, 0x667c7745_85b1_4c55_ae55_4e25056159fc);
windows_core::imp::interface_hierarchy!(ISBE2StreamMap, windows_core::IUnknown);
impl ISBE2StreamMap {
pub unsafe fn MapStream(&self, stream: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).MapStream)(windows_core::Interface::as_raw(self), stream).ok() }
}
pub unsafe fn UnmapStream(&self, stream: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).UnmapStream)(windows_core::Interface::as_raw(self), stream).ok() }
}
pub unsafe fn EnumMappedStreams(&self) -> windows_core::Result<ISBE2EnumStream> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumMappedStreams)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISBE2StreamMap_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub MapStream: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub UnmapStream: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub EnumMappedStreams: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait ISBE2StreamMap_Impl: windows_core::IUnknownImpl {
fn MapStream(&self, stream: u32) -> windows_core::Result<()>;
fn UnmapStream(&self, stream: u32) -> windows_core::Result<()>;
fn EnumMappedStreams(&self) -> windows_core::Result<ISBE2EnumStream>;
}
impl ISBE2StreamMap_Vtbl {
pub const fn new<Identity: ISBE2StreamMap_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn MapStream<Identity: ISBE2StreamMap_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, stream: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2StreamMap_Impl::MapStream(this, core::mem::transmute_copy(&stream)).into()
}
}
unsafe extern "system" fn UnmapStream<Identity: ISBE2StreamMap_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, stream: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISBE2StreamMap_Impl::UnmapStream(this, core::mem::transmute_copy(&stream)).into()
}
}
unsafe extern "system" fn EnumMappedStreams<Identity: ISBE2StreamMap_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppstreams: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISBE2StreamMap_Impl::EnumMappedStreams(this) {
Ok(ok__) => {
ppstreams.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
MapStream: MapStream::<Identity, OFFSET>,
UnmapStream: UnmapStream::<Identity, OFFSET>,
EnumMappedStreams: EnumMappedStreams::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISBE2StreamMap as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISBE2StreamMap {}
windows_core::imp::define_interface!(ISCTE_EAS, ISCTE_EAS_Vtbl, 0x1ff544d6_161d_4fae_9faa_4f9f492ae999);
windows_core::imp::interface_hierarchy!(ISCTE_EAS, windows_core::IUnknown);
impl ISCTE_EAS {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSequencyNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSequencyNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetProtocolVersion(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProtocolVersion)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetEASEventID(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEASEventID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetOriginatorCode(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOriginatorCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetEASEventCodeLen(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEASEventCodeLen)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetEASEventCode(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEASEventCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRawNatureOfActivationTextLen(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRawNatureOfActivationTextLen)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRawNatureOfActivationText(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRawNatureOfActivationText)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetNatureOfActivationText(&self, bstris0639code: &windows_core::BSTR) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNatureOfActivationText)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(bstris0639code), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetTimeRemaining(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTimeRemaining)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetStartTime(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStartTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDuration(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDuration)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetAlertPriority(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAlertPriority)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDetailsOOBSourceID(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDetailsOOBSourceID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDetailsMajor(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDetailsMajor)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDetailsMinor(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDetailsMinor)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetDetailsAudioOOBSourceID(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDetailsAudioOOBSourceID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetAlertText(&self, bstris0639code: &windows_core::BSTR) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAlertText)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(bstris0639code), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn GetRawAlertTextLen(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRawAlertTextLen)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetRawAlertText(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRawAlertText)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLocationCount(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLocationCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetLocationCodes(&self, bindex: u8, pbstate: *mut u8, pbcountysubdivision: *mut u8, pwcounty: *mut u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLocationCodes)(windows_core::Interface::as_raw(self), bindex, pbstate as _, pbcountysubdivision as _, pwcounty as _).ok() }
}
pub unsafe fn GetExceptionCount(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExceptionCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetExceptionService(&self, bindex: u8, pbibref: *mut u8, pwfirst: *mut u16, pwsecond: *mut u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetExceptionService)(windows_core::Interface::as_raw(self), bindex, pbibref as _, pwfirst as _, pwsecond as _).ok() }
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISCTE_EAS_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetSequencyNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetProtocolVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetEASEventID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetOriginatorCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetEASEventCodeLen: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetEASEventCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRawNatureOfActivationTextLen: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetRawNatureOfActivationText: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetNatureOfActivationText: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTimeRemaining: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetStartTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDuration: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetAlertPriority: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetDetailsOOBSourceID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetDetailsMajor: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetDetailsMinor: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetDetailsAudioOOBSourceID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetAlertText: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRawAlertTextLen: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetRawAlertText: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLocationCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetLocationCodes: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8, *mut u8, *mut u16) -> windows_core::HRESULT,
pub GetExceptionCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetExceptionService: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8, *mut u16, *mut u16) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait ISCTE_EAS_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetSequencyNumber(&self) -> windows_core::Result<u8>;
fn GetProtocolVersion(&self) -> windows_core::Result<u8>;
fn GetEASEventID(&self) -> windows_core::Result<u16>;
fn GetOriginatorCode(&self) -> windows_core::Result<u8>;
fn GetEASEventCodeLen(&self) -> windows_core::Result<u8>;
fn GetEASEventCode(&self) -> windows_core::Result<u8>;
fn GetRawNatureOfActivationTextLen(&self) -> windows_core::Result<u8>;
fn GetRawNatureOfActivationText(&self) -> windows_core::Result<u8>;
fn GetNatureOfActivationText(&self, bstris0639code: &windows_core::BSTR) -> windows_core::Result<windows_core::BSTR>;
fn GetTimeRemaining(&self) -> windows_core::Result<u8>;
fn GetStartTime(&self) -> windows_core::Result<u32>;
fn GetDuration(&self) -> windows_core::Result<u16>;
fn GetAlertPriority(&self) -> windows_core::Result<u8>;
fn GetDetailsOOBSourceID(&self) -> windows_core::Result<u16>;
fn GetDetailsMajor(&self) -> windows_core::Result<u16>;
fn GetDetailsMinor(&self) -> windows_core::Result<u16>;
fn GetDetailsAudioOOBSourceID(&self) -> windows_core::Result<u16>;
fn GetAlertText(&self, bstris0639code: &windows_core::BSTR) -> windows_core::Result<windows_core::BSTR>;
fn GetRawAlertTextLen(&self) -> windows_core::Result<u16>;
fn GetRawAlertText(&self) -> windows_core::Result<u8>;
fn GetLocationCount(&self) -> windows_core::Result<u8>;
fn GetLocationCodes(&self, bindex: u8, pbstate: *mut u8, pbcountysubdivision: *mut u8, pwcounty: *mut u16) -> windows_core::Result<()>;
fn GetExceptionCount(&self) -> windows_core::Result<u8>;
fn GetExceptionService(&self, bindex: u8, pbibref: *mut u8, pwfirst: *mut u16, pwsecond: *mut u16) -> windows_core::Result<()>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
}
impl ISCTE_EAS_Vtbl {
pub const fn new<Identity: ISCTE_EAS_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISCTE_EAS_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSequencyNumber<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetSequencyNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetProtocolVersion<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetProtocolVersion(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEASEventID<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetEASEventID(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetOriginatorCode<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetOriginatorCode(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEASEventCodeLen<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetEASEventCodeLen(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetEASEventCode<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetEASEventCode(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRawNatureOfActivationTextLen<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetRawNatureOfActivationTextLen(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRawNatureOfActivationText<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetRawNatureOfActivationText(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetNatureOfActivationText<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bstris0639code: *mut core::ffi::c_void, pbstrstring: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetNatureOfActivationText(this, core::mem::transmute(&bstris0639code)) {
Ok(ok__) => {
pbstrstring.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTimeRemaining<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetTimeRemaining(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetStartTime<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetStartTime(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDuration<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetDuration(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetAlertPriority<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetAlertPriority(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDetailsOOBSourceID<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetDetailsOOBSourceID(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDetailsMajor<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetDetailsMajor(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDetailsMinor<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetDetailsMinor(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetDetailsAudioOOBSourceID<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetDetailsAudioOOBSourceID(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetAlertText<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bstris0639code: *mut core::ffi::c_void, pbstrstring: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetAlertText(this, core::mem::transmute(&bstris0639code)) {
Ok(ok__) => {
pbstrstring.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRawAlertTextLen<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetRawAlertTextLen(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetRawAlertText<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetRawAlertText(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLocationCount<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetLocationCount(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLocationCodes<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pbstate: *mut u8, pbcountysubdivision: *mut u8, pwcounty: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISCTE_EAS_Impl::GetLocationCodes(this, core::mem::transmute_copy(&bindex), core::mem::transmute_copy(&pbstate), core::mem::transmute_copy(&pbcountysubdivision), core::mem::transmute_copy(&pwcounty)).into()
}
}
unsafe extern "system" fn GetExceptionCount<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetExceptionCount(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetExceptionService<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pbibref: *mut u8, pwfirst: *mut u16, pwsecond: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISCTE_EAS_Impl::GetExceptionService(this, core::mem::transmute_copy(&bindex), core::mem::transmute_copy(&pbibref), core::mem::transmute_copy(&pwfirst), core::mem::transmute_copy(&pwsecond)).into()
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISCTE_EAS_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: ISCTE_EAS_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISCTE_EAS_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetSequencyNumber: GetSequencyNumber::<Identity, OFFSET>,
GetProtocolVersion: GetProtocolVersion::<Identity, OFFSET>,
GetEASEventID: GetEASEventID::<Identity, OFFSET>,
GetOriginatorCode: GetOriginatorCode::<Identity, OFFSET>,
GetEASEventCodeLen: GetEASEventCodeLen::<Identity, OFFSET>,
GetEASEventCode: GetEASEventCode::<Identity, OFFSET>,
GetRawNatureOfActivationTextLen: GetRawNatureOfActivationTextLen::<Identity, OFFSET>,
GetRawNatureOfActivationText: GetRawNatureOfActivationText::<Identity, OFFSET>,
GetNatureOfActivationText: GetNatureOfActivationText::<Identity, OFFSET>,
GetTimeRemaining: GetTimeRemaining::<Identity, OFFSET>,
GetStartTime: GetStartTime::<Identity, OFFSET>,
GetDuration: GetDuration::<Identity, OFFSET>,
GetAlertPriority: GetAlertPriority::<Identity, OFFSET>,
GetDetailsOOBSourceID: GetDetailsOOBSourceID::<Identity, OFFSET>,
GetDetailsMajor: GetDetailsMajor::<Identity, OFFSET>,
GetDetailsMinor: GetDetailsMinor::<Identity, OFFSET>,
GetDetailsAudioOOBSourceID: GetDetailsAudioOOBSourceID::<Identity, OFFSET>,
GetAlertText: GetAlertText::<Identity, OFFSET>,
GetRawAlertTextLen: GetRawAlertTextLen::<Identity, OFFSET>,
GetRawAlertText: GetRawAlertText::<Identity, OFFSET>,
GetLocationCount: GetLocationCount::<Identity, OFFSET>,
GetLocationCodes: GetLocationCodes::<Identity, OFFSET>,
GetExceptionCount: GetExceptionCount::<Identity, OFFSET>,
GetExceptionService: GetExceptionService::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISCTE_EAS as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISCTE_EAS {}
pub const ISDBSLocator: windows_core::GUID = windows_core::GUID::from_u128(0x6504afed_a629_455c_a7f1_04964dea5cc4);
pub const ISDB_BIT_PID: u32 = 36u32;
pub const ISDB_BIT_TID: u32 = 196u32;
pub const ISDB_CABLE_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0xc974ddb5_41fe_4b25_9741_92f049f1d5d1);
pub const ISDB_CDT_PID: u32 = 41u32;
pub const ISDB_CDT_TID: u32 = 200u32;
pub const ISDB_EMM_TID: u32 = 133u32;
pub const ISDB_LDT_PID: u32 = 37u32;
pub const ISDB_LDT_TID: u32 = 199u32;
pub const ISDB_NBIT_MSG_TID: u32 = 197u32;
pub const ISDB_NBIT_PID: u32 = 37u32;
pub const ISDB_NBIT_REF_TID: u32 = 198u32;
pub const ISDB_SATELLITE_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0xb0a4e6a0_6a1a_4b83_bb5b_903e1d90e6b6);
pub const ISDB_SDTT_ALT_PID: u32 = 40u32;
pub const ISDB_SDTT_PID: u32 = 35u32;
pub const ISDB_SDTT_TID: u32 = 195u32;
pub const ISDB_ST_TID: u32 = 114u32;
pub const ISDB_S_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0xa1e78202_1459_41b1_9ca9_2a92587a42cc);
pub const ISDB_TERRESTRIAL_TV_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0x95037f6f_3ac7_4452_b6c4_45a9ce9292a2);
pub const ISDB_T_NETWORK_TYPE: windows_core::GUID = windows_core::GUID::from_u128(0xfc3855a6_c901_4f2e_aba8_90815afc6c83);
windows_core::imp::define_interface!(ISIInbandEPG, ISIInbandEPG_Vtbl, 0xf90ad9d0_b854_4b68_9cc1_b2cc96119d85);
windows_core::imp::interface_hierarchy!(ISIInbandEPG, windows_core::IUnknown);
impl ISIInbandEPG {
pub unsafe fn StartSIEPGScan(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).StartSIEPGScan)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn StopSIEPGScan(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).StopSIEPGScan)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn IsSIEPGScanRunning(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsSIEPGScanRunning)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISIInbandEPG_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub StartSIEPGScan: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub StopSIEPGScan: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub IsSIEPGScanRunning: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
}
pub trait ISIInbandEPG_Impl: windows_core::IUnknownImpl {
fn StartSIEPGScan(&self) -> windows_core::Result<()>;
fn StopSIEPGScan(&self) -> windows_core::Result<()>;
fn IsSIEPGScanRunning(&self) -> windows_core::Result<windows_core::BOOL>;
}
impl ISIInbandEPG_Vtbl {
pub const fn new<Identity: ISIInbandEPG_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn StartSIEPGScan<Identity: ISIInbandEPG_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISIInbandEPG_Impl::StartSIEPGScan(this).into()
}
}
unsafe extern "system" fn StopSIEPGScan<Identity: ISIInbandEPG_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISIInbandEPG_Impl::StopSIEPGScan(this).into()
}
}
unsafe extern "system" fn IsSIEPGScanRunning<Identity: ISIInbandEPG_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, brunning: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISIInbandEPG_Impl::IsSIEPGScanRunning(this) {
Ok(ok__) => {
brunning.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartSIEPGScan: StartSIEPGScan::<Identity, OFFSET>,
StopSIEPGScan: StopSIEPGScan::<Identity, OFFSET>,
IsSIEPGScanRunning: IsSIEPGScanRunning::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISIInbandEPG as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISIInbandEPG {}
windows_core::imp::define_interface!(ISIInbandEPGEvent, ISIInbandEPGEvent_Vtbl, 0x7e47913a_5a89_423d_9a2b_e15168858934);
windows_core::imp::interface_hierarchy!(ISIInbandEPGEvent, windows_core::IUnknown);
impl ISIInbandEPGEvent {
pub unsafe fn SIObjectEvent<P0>(&self, pidvb_eit: P0, dwtable_id: u32, dwservice_id: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<IDVB_EIT2>,
{
unsafe { (windows_core::Interface::vtable(self).SIObjectEvent)(windows_core::Interface::as_raw(self), pidvb_eit.param().abi(), dwtable_id, dwservice_id).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISIInbandEPGEvent_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub SIObjectEvent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
}
pub trait ISIInbandEPGEvent_Impl: windows_core::IUnknownImpl {
fn SIObjectEvent(&self, pidvb_eit: windows_core::Ref<IDVB_EIT2>, dwtable_id: u32, dwservice_id: u32) -> windows_core::Result<()>;
}
impl ISIInbandEPGEvent_Vtbl {
pub const fn new<Identity: ISIInbandEPGEvent_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SIObjectEvent<Identity: ISIInbandEPGEvent_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pidvb_eit: *mut core::ffi::c_void, dwtable_id: u32, dwservice_id: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISIInbandEPGEvent_Impl::SIObjectEvent(this, core::mem::transmute_copy(&pidvb_eit), core::mem::transmute_copy(&dwtable_id), core::mem::transmute_copy(&dwservice_id)).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SIObjectEvent: SIObjectEvent::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISIInbandEPGEvent as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISIInbandEPGEvent {}
windows_core::imp::define_interface!(IScanningTuner, IScanningTuner_Vtbl, 0x1dfd0a5c_0284_11d3_9d8e_00c04f72d980);
impl core::ops::Deref for IScanningTuner {
type Target = ITuner;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IScanningTuner, windows_core::IUnknown, ITuner);
impl IScanningTuner {
pub unsafe fn SeekUp(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SeekUp)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn SeekDown(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SeekDown)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn ScanUp(&self, millisecondspause: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ScanUp)(windows_core::Interface::as_raw(self), millisecondspause).ok() }
}
pub unsafe fn ScanDown(&self, millisecondspause: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ScanDown)(windows_core::Interface::as_raw(self), millisecondspause).ok() }
}
pub unsafe fn AutoProgram(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).AutoProgram)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IScanningTuner_Vtbl {
pub base__: ITuner_Vtbl,
pub SeekUp: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SeekDown: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ScanUp: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub ScanDown: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub AutoProgram: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IScanningTuner_Impl: ITuner_Impl {
fn SeekUp(&self) -> windows_core::Result<()>;
fn SeekDown(&self) -> windows_core::Result<()>;
fn ScanUp(&self, millisecondspause: i32) -> windows_core::Result<()>;
fn ScanDown(&self, millisecondspause: i32) -> windows_core::Result<()>;
fn AutoProgram(&self) -> windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl IScanningTuner_Vtbl {
pub const fn new<Identity: IScanningTuner_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SeekUp<Identity: IScanningTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTuner_Impl::SeekUp(this).into()
}
}
unsafe extern "system" fn SeekDown<Identity: IScanningTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTuner_Impl::SeekDown(this).into()
}
}
unsafe extern "system" fn ScanUp<Identity: IScanningTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, millisecondspause: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTuner_Impl::ScanUp(this, core::mem::transmute_copy(&millisecondspause)).into()
}
}
unsafe extern "system" fn ScanDown<Identity: IScanningTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, millisecondspause: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTuner_Impl::ScanDown(this, core::mem::transmute_copy(&millisecondspause)).into()
}
}
unsafe extern "system" fn AutoProgram<Identity: IScanningTuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTuner_Impl::AutoProgram(this).into()
}
}
Self {
base__: ITuner_Vtbl::new::<Identity, OFFSET>(),
SeekUp: SeekUp::<Identity, OFFSET>,
SeekDown: SeekDown::<Identity, OFFSET>,
ScanUp: ScanUp::<Identity, OFFSET>,
ScanDown: ScanDown::<Identity, OFFSET>,
AutoProgram: AutoProgram::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IScanningTuner as windows_core::Interface>::IID || iid == &<ITuner as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IScanningTuner {}
windows_core::imp::define_interface!(IScanningTunerEx, IScanningTunerEx_Vtbl, 0x04bbd195_0e2d_4593_9bd5_4f908bc33cf5);
impl core::ops::Deref for IScanningTunerEx {
type Target = IScanningTuner;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IScanningTunerEx, windows_core::IUnknown, ITuner, IScanningTuner);
impl IScanningTunerEx {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetCurrentLocator(&self, pilocator: *const Option<ILocator>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetCurrentLocator)(windows_core::Interface::as_raw(self), core::mem::transmute(pilocator)).ok() }
}
pub unsafe fn PerformExhaustiveScan(&self, dwlowerfreq: i32, dwhigherfreq: i32, bfinetune: super::super::super::Foundation::VARIANT_BOOL, hevent: usize) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).PerformExhaustiveScan)(windows_core::Interface::as_raw(self), dwlowerfreq, dwhigherfreq, bfinetune, hevent).ok() }
}
pub unsafe fn TerminateCurrentScan(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TerminateCurrentScan)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn ResumeCurrentScan(&self, hevent: usize) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ResumeCurrentScan)(windows_core::Interface::as_raw(self), hevent).ok() }
}
pub unsafe fn GetTunerScanningCapability(&self, hardwareassistedscanning: *mut i32, numstandardssupported: *mut i32, broadcaststandards: *mut windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTunerScanningCapability)(windows_core::Interface::as_raw(self), hardwareassistedscanning as _, numstandardssupported as _, broadcaststandards as _).ok() }
}
pub unsafe fn GetTunerStatus(&self, secondsleft: *mut i32, currentlocktype: *mut i32, autodetect: *mut i32, currentfreq: *mut i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTunerStatus)(windows_core::Interface::as_raw(self), secondsleft as _, currentlocktype as _, autodetect as _, currentfreq as _).ok() }
}
pub unsafe fn GetCurrentTunerStandardCapability(&self, currentbroadcaststandard: windows_core::GUID, settlingtime: *mut i32, tvstandardssupported: *mut i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetCurrentTunerStandardCapability)(windows_core::Interface::as_raw(self), core::mem::transmute(currentbroadcaststandard), settlingtime as _, tvstandardssupported as _).ok() }
}
pub unsafe fn SetScanSignalTypeFilter(&self, scanmodulationtypes: i32, analogvideostandard: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetScanSignalTypeFilter)(windows_core::Interface::as_raw(self), scanmodulationtypes, analogvideostandard).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IScanningTunerEx_Vtbl {
pub base__: IScanningTuner_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub GetCurrentLocator: unsafe extern "system" fn(*mut core::ffi::c_void, *const *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetCurrentLocator: usize,
pub PerformExhaustiveScan: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32, super::super::super::Foundation::VARIANT_BOOL, usize) -> windows_core::HRESULT,
pub TerminateCurrentScan: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub ResumeCurrentScan: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
pub GetTunerScanningCapability: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32, *mut i32, *mut windows_core::GUID) -> windows_core::HRESULT,
pub GetTunerStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32, *mut i32, *mut i32, *mut i32) -> windows_core::HRESULT,
pub GetCurrentTunerStandardCapability: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::GUID, *mut i32, *mut i32) -> windows_core::HRESULT,
pub SetScanSignalTypeFilter: unsafe extern "system" fn(*mut core::ffi::c_void, i32, i32) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait IScanningTunerEx_Impl: IScanningTuner_Impl {
fn GetCurrentLocator(&self, pilocator: *const Option<ILocator>) -> windows_core::Result<()>;
fn PerformExhaustiveScan(&self, dwlowerfreq: i32, dwhigherfreq: i32, bfinetune: super::super::super::Foundation::VARIANT_BOOL, hevent: usize) -> windows_core::Result<()>;
fn TerminateCurrentScan(&self) -> windows_core::Result<i32>;
fn ResumeCurrentScan(&self, hevent: usize) -> windows_core::Result<()>;
fn GetTunerScanningCapability(&self, hardwareassistedscanning: *mut i32, numstandardssupported: *mut i32, broadcaststandards: *mut windows_core::GUID) -> windows_core::Result<()>;
fn GetTunerStatus(&self, secondsleft: *mut i32, currentlocktype: *mut i32, autodetect: *mut i32, currentfreq: *mut i32) -> windows_core::Result<()>;
fn GetCurrentTunerStandardCapability(&self, currentbroadcaststandard: &windows_core::GUID, settlingtime: *mut i32, tvstandardssupported: *mut i32) -> windows_core::Result<()>;
fn SetScanSignalTypeFilter(&self, scanmodulationtypes: i32, analogvideostandard: i32) -> windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl IScanningTunerEx_Vtbl {
pub const fn new<Identity: IScanningTunerEx_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetCurrentLocator<Identity: IScanningTunerEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pilocator: *const *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTunerEx_Impl::GetCurrentLocator(this, core::mem::transmute_copy(&pilocator)).into()
}
}
unsafe extern "system" fn PerformExhaustiveScan<Identity: IScanningTunerEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwlowerfreq: i32, dwhigherfreq: i32, bfinetune: super::super::super::Foundation::VARIANT_BOOL, hevent: usize) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTunerEx_Impl::PerformExhaustiveScan(this, core::mem::transmute_copy(&dwlowerfreq), core::mem::transmute_copy(&dwhigherfreq), core::mem::transmute_copy(&bfinetune), core::mem::transmute_copy(&hevent)).into()
}
}
unsafe extern "system" fn TerminateCurrentScan<Identity: IScanningTunerEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pcurrentfreq: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IScanningTunerEx_Impl::TerminateCurrentScan(this) {
Ok(ok__) => {
pcurrentfreq.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn ResumeCurrentScan<Identity: IScanningTunerEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hevent: usize) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTunerEx_Impl::ResumeCurrentScan(this, core::mem::transmute_copy(&hevent)).into()
}
}
unsafe extern "system" fn GetTunerScanningCapability<Identity: IScanningTunerEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hardwareassistedscanning: *mut i32, numstandardssupported: *mut i32, broadcaststandards: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTunerEx_Impl::GetTunerScanningCapability(this, core::mem::transmute_copy(&hardwareassistedscanning), core::mem::transmute_copy(&numstandardssupported), core::mem::transmute_copy(&broadcaststandards)).into()
}
}
unsafe extern "system" fn GetTunerStatus<Identity: IScanningTunerEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, secondsleft: *mut i32, currentlocktype: *mut i32, autodetect: *mut i32, currentfreq: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTunerEx_Impl::GetTunerStatus(this, core::mem::transmute_copy(&secondsleft), core::mem::transmute_copy(¤tlocktype), core::mem::transmute_copy(&autodetect), core::mem::transmute_copy(¤tfreq)).into()
}
}
unsafe extern "system" fn GetCurrentTunerStandardCapability<Identity: IScanningTunerEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentbroadcaststandard: windows_core::GUID, settlingtime: *mut i32, tvstandardssupported: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTunerEx_Impl::GetCurrentTunerStandardCapability(this, core::mem::transmute(¤tbroadcaststandard), core::mem::transmute_copy(&settlingtime), core::mem::transmute_copy(&tvstandardssupported)).into()
}
}
unsafe extern "system" fn SetScanSignalTypeFilter<Identity: IScanningTunerEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, scanmodulationtypes: i32, analogvideostandard: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IScanningTunerEx_Impl::SetScanSignalTypeFilter(this, core::mem::transmute_copy(&scanmodulationtypes), core::mem::transmute_copy(&analogvideostandard)).into()
}
}
Self {
base__: IScanningTuner_Vtbl::new::<Identity, OFFSET>(),
GetCurrentLocator: GetCurrentLocator::<Identity, OFFSET>,
PerformExhaustiveScan: PerformExhaustiveScan::<Identity, OFFSET>,
TerminateCurrentScan: TerminateCurrentScan::<Identity, OFFSET>,
ResumeCurrentScan: ResumeCurrentScan::<Identity, OFFSET>,
GetTunerScanningCapability: GetTunerScanningCapability::<Identity, OFFSET>,
GetTunerStatus: GetTunerStatus::<Identity, OFFSET>,
GetCurrentTunerStandardCapability: GetCurrentTunerStandardCapability::<Identity, OFFSET>,
SetScanSignalTypeFilter: SetScanSignalTypeFilter::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IScanningTunerEx as windows_core::Interface>::IID || iid == &<ITuner as windows_core::Interface>::IID || iid == &<IScanningTuner as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for IScanningTunerEx {}
windows_core::imp::define_interface!(ISectionList, ISectionList_Vtbl, 0xafec1eb5_2a64_46c6_bf4b_ae3ccb6afdb0);
windows_core::imp::interface_hierarchy!(ISectionList, windows_core::IUnknown);
impl ISectionList {
pub unsafe fn Initialize<P1>(&self, requesttype: MPEG_REQUEST_TYPE, pmpeg2data: P1, pcontext: *const MPEG_CONTEXT, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, timeout: u32, hdoneevent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>
where
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), requesttype, pmpeg2data.param().abi(), pcontext, pid, tid, pfilter, timeout, hdoneevent).ok() }
}
pub unsafe fn InitializeWithRawSections(&self, pmplsections: *const MPEG_PACKET_LIST) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).InitializeWithRawSections)(windows_core::Interface::as_raw(self), pmplsections).ok() }
}
pub unsafe fn CancelPendingRequest(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).CancelPendingRequest)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn GetNumberOfSections(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberOfSections)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetSectionData(&self, sectionnumber: u16, pdwrawpacketlength: *mut u32, ppsection: *mut *mut SECTION) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetSectionData)(windows_core::Interface::as_raw(self), sectionnumber, pdwrawpacketlength as _, ppsection as _).ok() }
}
pub unsafe fn GetProgramIdentifier(&self, ppid: *const u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetProgramIdentifier)(windows_core::Interface::as_raw(self), ppid).ok() }
}
pub unsafe fn GetTableIdentifier(&self, ptableid: *const u8) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableIdentifier)(windows_core::Interface::as_raw(self), ptableid).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISectionList_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, MPEG_REQUEST_TYPE, *mut core::ffi::c_void, *const MPEG_CONTEXT, u16, u8, *const MPEG2_FILTER, u32, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub InitializeWithRawSections: unsafe extern "system" fn(*mut core::ffi::c_void, *const MPEG_PACKET_LIST) -> windows_core::HRESULT,
pub CancelPendingRequest: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNumberOfSections: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetSectionData: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *mut u32, *mut *mut SECTION) -> windows_core::HRESULT,
pub GetProgramIdentifier: unsafe extern "system" fn(*mut core::ffi::c_void, *const u16) -> windows_core::HRESULT,
pub GetTableIdentifier: unsafe extern "system" fn(*mut core::ffi::c_void, *const u8) -> windows_core::HRESULT,
}
pub trait ISectionList_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, requesttype: MPEG_REQUEST_TYPE, pmpeg2data: windows_core::Ref<IMpeg2Data>, pcontext: *const MPEG_CONTEXT, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, timeout: u32, hdoneevent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn InitializeWithRawSections(&self, pmplsections: *const MPEG_PACKET_LIST) -> windows_core::Result<()>;
fn CancelPendingRequest(&self) -> windows_core::Result<()>;
fn GetNumberOfSections(&self) -> windows_core::Result<u16>;
fn GetSectionData(&self, sectionnumber: u16, pdwrawpacketlength: *mut u32, ppsection: *mut *mut SECTION) -> windows_core::Result<()>;
fn GetProgramIdentifier(&self, ppid: *const u16) -> windows_core::Result<()>;
fn GetTableIdentifier(&self, ptableid: *const u8) -> windows_core::Result<()>;
}
impl ISectionList_Vtbl {
pub const fn new<Identity: ISectionList_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: ISectionList_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, requesttype: MPEG_REQUEST_TYPE, pmpeg2data: *mut core::ffi::c_void, pcontext: *const MPEG_CONTEXT, pid: u16, tid: u8, pfilter: *const MPEG2_FILTER, timeout: u32, hdoneevent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISectionList_Impl::Initialize(this, core::mem::transmute_copy(&requesttype), core::mem::transmute_copy(&pmpeg2data), core::mem::transmute_copy(&pcontext), core::mem::transmute_copy(&pid), core::mem::transmute_copy(&tid), core::mem::transmute_copy(&pfilter), core::mem::transmute_copy(&timeout), core::mem::transmute_copy(&hdoneevent)).into()
}
}
unsafe extern "system" fn InitializeWithRawSections<Identity: ISectionList_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pmplsections: *const MPEG_PACKET_LIST) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISectionList_Impl::InitializeWithRawSections(this, core::mem::transmute_copy(&pmplsections)).into()
}
}
unsafe extern "system" fn CancelPendingRequest<Identity: ISectionList_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISectionList_Impl::CancelPendingRequest(this).into()
}
}
unsafe extern "system" fn GetNumberOfSections<Identity: ISectionList_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pcount: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ISectionList_Impl::GetNumberOfSections(this) {
Ok(ok__) => {
pcount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetSectionData<Identity: ISectionList_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, sectionnumber: u16, pdwrawpacketlength: *mut u32, ppsection: *mut *mut SECTION) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISectionList_Impl::GetSectionData(this, core::mem::transmute_copy(§ionnumber), core::mem::transmute_copy(&pdwrawpacketlength), core::mem::transmute_copy(&ppsection)).into()
}
}
unsafe extern "system" fn GetProgramIdentifier<Identity: ISectionList_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppid: *const u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISectionList_Impl::GetProgramIdentifier(this, core::mem::transmute_copy(&ppid)).into()
}
}
unsafe extern "system" fn GetTableIdentifier<Identity: ISectionList_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ptableid: *const u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ISectionList_Impl::GetTableIdentifier(this, core::mem::transmute_copy(&ptableid)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
InitializeWithRawSections: InitializeWithRawSections::<Identity, OFFSET>,
CancelPendingRequest: CancelPendingRequest::<Identity, OFFSET>,
GetNumberOfSections: GetNumberOfSections::<Identity, OFFSET>,
GetSectionData: GetSectionData::<Identity, OFFSET>,
GetProgramIdentifier: GetProgramIdentifier::<Identity, OFFSET>,
GetTableIdentifier: GetTableIdentifier::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ISectionList as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ISectionList {}
windows_core::imp::define_interface!(IServiceLocationDescriptor, IServiceLocationDescriptor_Vtbl, 0x58c3c827_9d91_4215_bff3_820a49f0904c);
windows_core::imp::interface_hierarchy!(IServiceLocationDescriptor, windows_core::IUnknown);
impl IServiceLocationDescriptor {
pub unsafe fn GetPCR_PID(&self) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPCR_PID)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetNumberOfElements(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberOfElements)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetElementStreamType(&self, bindex: u8) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetElementStreamType)(windows_core::Interface::as_raw(self), bindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetElementPID(&self, bindex: u8) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetElementPID)(windows_core::Interface::as_raw(self), bindex, &mut result__).map(|| result__)
}
}
pub unsafe fn GetElementLanguageCode(&self, bindex: u8, langcode: &mut [u8; 3]) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetElementLanguageCode)(windows_core::Interface::as_raw(self), bindex, core::mem::transmute(langcode.as_ptr())).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IServiceLocationDescriptor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetPCR_PID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u16) -> windows_core::HRESULT,
pub GetNumberOfElements: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetElementStreamType: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
pub GetElementPID: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u16) -> windows_core::HRESULT,
pub GetElementLanguageCode: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u8) -> windows_core::HRESULT,
}
pub trait IServiceLocationDescriptor_Impl: windows_core::IUnknownImpl {
fn GetPCR_PID(&self) -> windows_core::Result<u16>;
fn GetNumberOfElements(&self) -> windows_core::Result<u8>;
fn GetElementStreamType(&self, bindex: u8) -> windows_core::Result<u8>;
fn GetElementPID(&self, bindex: u8) -> windows_core::Result<u16>;
fn GetElementLanguageCode(&self, bindex: u8, langcode: *mut u8) -> windows_core::Result<()>;
}
impl IServiceLocationDescriptor_Vtbl {
pub const fn new<Identity: IServiceLocationDescriptor_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetPCR_PID<Identity: IServiceLocationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IServiceLocationDescriptor_Impl::GetPCR_PID(this) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetNumberOfElements<Identity: IServiceLocationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IServiceLocationDescriptor_Impl::GetNumberOfElements(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetElementStreamType<Identity: IServiceLocationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IServiceLocationDescriptor_Impl::GetElementStreamType(this, core::mem::transmute_copy(&bindex)) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetElementPID<Identity: IServiceLocationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, pwval: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IServiceLocationDescriptor_Impl::GetElementPID(this, core::mem::transmute_copy(&bindex)) {
Ok(ok__) => {
pwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetElementLanguageCode<Identity: IServiceLocationDescriptor_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, bindex: u8, langcode: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IServiceLocationDescriptor_Impl::GetElementLanguageCode(this, core::mem::transmute_copy(&bindex), core::mem::transmute_copy(&langcode)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetPCR_PID: GetPCR_PID::<Identity, OFFSET>,
GetNumberOfElements: GetNumberOfElements::<Identity, OFFSET>,
GetElementStreamType: GetElementStreamType::<Identity, OFFSET>,
GetElementPID: GetElementPID::<Identity, OFFSET>,
GetElementLanguageCode: GetElementLanguageCode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IServiceLocationDescriptor as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IServiceLocationDescriptor {}
windows_core::imp::define_interface!(IStreamBufferConfigure, IStreamBufferConfigure_Vtbl, 0xce14dfae_4098_4af7_bbf7_d6511f835414);
windows_core::imp::interface_hierarchy!(IStreamBufferConfigure, windows_core::IUnknown);
impl IStreamBufferConfigure {
pub unsafe fn SetDirectory<P0>(&self, pszdirectoryname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).SetDirectory)(windows_core::Interface::as_raw(self), pszdirectoryname.param().abi()).ok() }
}
pub unsafe fn GetDirectory(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDirectory)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetBackingFileCount(&self, dwmin: u32, dwmax: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBackingFileCount)(windows_core::Interface::as_raw(self), dwmin, dwmax).ok() }
}
pub unsafe fn GetBackingFileCount(&self, pdwmin: *mut u32, pdwmax: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetBackingFileCount)(windows_core::Interface::as_raw(self), pdwmin as _, pdwmax as _).ok() }
}
pub unsafe fn SetBackingFileDuration(&self, dwseconds: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetBackingFileDuration)(windows_core::Interface::as_raw(self), dwseconds).ok() }
}
pub unsafe fn GetBackingFileDuration(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBackingFileDuration)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferConfigure_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub SetDirectory: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetDirectory: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::PWSTR) -> windows_core::HRESULT,
pub SetBackingFileCount: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetBackingFileCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetBackingFileDuration: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetBackingFileDuration: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IStreamBufferConfigure_Impl: windows_core::IUnknownImpl {
fn SetDirectory(&self, pszdirectoryname: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn GetDirectory(&self) -> windows_core::Result<windows_core::PWSTR>;
fn SetBackingFileCount(&self, dwmin: u32, dwmax: u32) -> windows_core::Result<()>;
fn GetBackingFileCount(&self, pdwmin: *mut u32, pdwmax: *mut u32) -> windows_core::Result<()>;
fn SetBackingFileDuration(&self, dwseconds: u32) -> windows_core::Result<()>;
fn GetBackingFileDuration(&self) -> windows_core::Result<u32>;
}
impl IStreamBufferConfigure_Vtbl {
pub const fn new<Identity: IStreamBufferConfigure_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetDirectory<Identity: IStreamBufferConfigure_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszdirectoryname: windows_core::PCWSTR) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferConfigure_Impl::SetDirectory(this, core::mem::transmute(&pszdirectoryname)).into()
}
}
unsafe extern "system" fn GetDirectory<Identity: IStreamBufferConfigure_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppszdirectoryname: *mut windows_core::PWSTR) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IStreamBufferConfigure_Impl::GetDirectory(this) {
Ok(ok__) => {
ppszdirectoryname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetBackingFileCount<Identity: IStreamBufferConfigure_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwmin: u32, dwmax: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferConfigure_Impl::SetBackingFileCount(this, core::mem::transmute_copy(&dwmin), core::mem::transmute_copy(&dwmax)).into()
}
}
unsafe extern "system" fn GetBackingFileCount<Identity: IStreamBufferConfigure_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwmin: *mut u32, pdwmax: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferConfigure_Impl::GetBackingFileCount(this, core::mem::transmute_copy(&pdwmin), core::mem::transmute_copy(&pdwmax)).into()
}
}
unsafe extern "system" fn SetBackingFileDuration<Identity: IStreamBufferConfigure_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwseconds: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferConfigure_Impl::SetBackingFileDuration(this, core::mem::transmute_copy(&dwseconds)).into()
}
}
unsafe extern "system" fn GetBackingFileDuration<Identity: IStreamBufferConfigure_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwseconds: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IStreamBufferConfigure_Impl::GetBackingFileDuration(this) {
Ok(ok__) => {
pdwseconds.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetDirectory: SetDirectory::<Identity, OFFSET>,
GetDirectory: GetDirectory::<Identity, OFFSET>,
SetBackingFileCount: SetBackingFileCount::<Identity, OFFSET>,
GetBackingFileCount: GetBackingFileCount::<Identity, OFFSET>,
SetBackingFileDuration: SetBackingFileDuration::<Identity, OFFSET>,
GetBackingFileDuration: GetBackingFileDuration::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferConfigure as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferConfigure {}
windows_core::imp::define_interface!(IStreamBufferConfigure2, IStreamBufferConfigure2_Vtbl, 0x53e037bf_3992_4282_ae34_2487b4dae06b);
impl core::ops::Deref for IStreamBufferConfigure2 {
type Target = IStreamBufferConfigure;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IStreamBufferConfigure2, windows_core::IUnknown, IStreamBufferConfigure);
impl IStreamBufferConfigure2 {
pub unsafe fn SetMultiplexedPacketSize(&self, cbbytesperpacket: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMultiplexedPacketSize)(windows_core::Interface::as_raw(self), cbbytesperpacket).ok() }
}
pub unsafe fn GetMultiplexedPacketSize(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetMultiplexedPacketSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetFFTransitionRates(&self, dwmaxfullframerate: u32, dwmaxnonskippingrate: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetFFTransitionRates)(windows_core::Interface::as_raw(self), dwmaxfullframerate, dwmaxnonskippingrate).ok() }
}
pub unsafe fn GetFFTransitionRates(&self, pdwmaxfullframerate: *mut u32, pdwmaxnonskippingrate: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetFFTransitionRates)(windows_core::Interface::as_raw(self), pdwmaxfullframerate as _, pdwmaxnonskippingrate as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferConfigure2_Vtbl {
pub base__: IStreamBufferConfigure_Vtbl,
pub SetMultiplexedPacketSize: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetMultiplexedPacketSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetFFTransitionRates: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetFFTransitionRates: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
}
pub trait IStreamBufferConfigure2_Impl: IStreamBufferConfigure_Impl {
fn SetMultiplexedPacketSize(&self, cbbytesperpacket: u32) -> windows_core::Result<()>;
fn GetMultiplexedPacketSize(&self) -> windows_core::Result<u32>;
fn SetFFTransitionRates(&self, dwmaxfullframerate: u32, dwmaxnonskippingrate: u32) -> windows_core::Result<()>;
fn GetFFTransitionRates(&self, pdwmaxfullframerate: *mut u32, pdwmaxnonskippingrate: *mut u32) -> windows_core::Result<()>;
}
impl IStreamBufferConfigure2_Vtbl {
pub const fn new<Identity: IStreamBufferConfigure2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetMultiplexedPacketSize<Identity: IStreamBufferConfigure2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, cbbytesperpacket: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferConfigure2_Impl::SetMultiplexedPacketSize(this, core::mem::transmute_copy(&cbbytesperpacket)).into()
}
}
unsafe extern "system" fn GetMultiplexedPacketSize<Identity: IStreamBufferConfigure2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pcbbytesperpacket: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IStreamBufferConfigure2_Impl::GetMultiplexedPacketSize(this) {
Ok(ok__) => {
pcbbytesperpacket.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetFFTransitionRates<Identity: IStreamBufferConfigure2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwmaxfullframerate: u32, dwmaxnonskippingrate: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferConfigure2_Impl::SetFFTransitionRates(this, core::mem::transmute_copy(&dwmaxfullframerate), core::mem::transmute_copy(&dwmaxnonskippingrate)).into()
}
}
unsafe extern "system" fn GetFFTransitionRates<Identity: IStreamBufferConfigure2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwmaxfullframerate: *mut u32, pdwmaxnonskippingrate: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferConfigure2_Impl::GetFFTransitionRates(this, core::mem::transmute_copy(&pdwmaxfullframerate), core::mem::transmute_copy(&pdwmaxnonskippingrate)).into()
}
}
Self {
base__: IStreamBufferConfigure_Vtbl::new::<Identity, OFFSET>(),
SetMultiplexedPacketSize: SetMultiplexedPacketSize::<Identity, OFFSET>,
GetMultiplexedPacketSize: GetMultiplexedPacketSize::<Identity, OFFSET>,
SetFFTransitionRates: SetFFTransitionRates::<Identity, OFFSET>,
GetFFTransitionRates: GetFFTransitionRates::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferConfigure2 as windows_core::Interface>::IID || iid == &<IStreamBufferConfigure as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferConfigure2 {}
windows_core::imp::define_interface!(IStreamBufferConfigure3, IStreamBufferConfigure3_Vtbl, 0x7e2d2a1e_7192_4bd7_80c1_061fd1d10402);
impl core::ops::Deref for IStreamBufferConfigure3 {
type Target = IStreamBufferConfigure2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IStreamBufferConfigure3, windows_core::IUnknown, IStreamBufferConfigure, IStreamBufferConfigure2);
impl IStreamBufferConfigure3 {
pub unsafe fn SetStartRecConfig(&self, fstartstopscur: bool) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetStartRecConfig)(windows_core::Interface::as_raw(self), fstartstopscur.into()).ok() }
}
pub unsafe fn GetStartRecConfig(&self) -> windows_core::Result<windows_core::BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStartRecConfig)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetNamespace<P0>(&self, psznamespace: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).SetNamespace)(windows_core::Interface::as_raw(self), psznamespace.param().abi()).ok() }
}
pub unsafe fn GetNamespace(&self) -> windows_core::Result<windows_core::PWSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNamespace)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferConfigure3_Vtbl {
pub base__: IStreamBufferConfigure2_Vtbl,
pub SetStartRecConfig: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::BOOL) -> windows_core::HRESULT,
pub GetStartRecConfig: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::BOOL) -> windows_core::HRESULT,
pub SetNamespace: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetNamespace: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::PWSTR) -> windows_core::HRESULT,
}
pub trait IStreamBufferConfigure3_Impl: IStreamBufferConfigure2_Impl {
fn SetStartRecConfig(&self, fstartstopscur: windows_core::BOOL) -> windows_core::Result<()>;
fn GetStartRecConfig(&self) -> windows_core::Result<windows_core::BOOL>;
fn SetNamespace(&self, psznamespace: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn GetNamespace(&self) -> windows_core::Result<windows_core::PWSTR>;
}
impl IStreamBufferConfigure3_Vtbl {
pub const fn new<Identity: IStreamBufferConfigure3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetStartRecConfig<Identity: IStreamBufferConfigure3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, fstartstopscur: windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferConfigure3_Impl::SetStartRecConfig(this, core::mem::transmute_copy(&fstartstopscur)).into()
}
}
unsafe extern "system" fn GetStartRecConfig<Identity: IStreamBufferConfigure3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pfstartstopscur: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IStreamBufferConfigure3_Impl::GetStartRecConfig(this) {
Ok(ok__) => {
pfstartstopscur.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetNamespace<Identity: IStreamBufferConfigure3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psznamespace: windows_core::PCWSTR) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferConfigure3_Impl::SetNamespace(this, core::mem::transmute(&psznamespace)).into()
}
}
unsafe extern "system" fn GetNamespace<Identity: IStreamBufferConfigure3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppsznamespace: *mut windows_core::PWSTR) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IStreamBufferConfigure3_Impl::GetNamespace(this) {
Ok(ok__) => {
ppsznamespace.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IStreamBufferConfigure2_Vtbl::new::<Identity, OFFSET>(),
SetStartRecConfig: SetStartRecConfig::<Identity, OFFSET>,
GetStartRecConfig: GetStartRecConfig::<Identity, OFFSET>,
SetNamespace: SetNamespace::<Identity, OFFSET>,
GetNamespace: GetNamespace::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferConfigure3 as windows_core::Interface>::IID || iid == &<IStreamBufferConfigure as windows_core::Interface>::IID || iid == &<IStreamBufferConfigure2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferConfigure3 {}
windows_core::imp::define_interface!(IStreamBufferDataCounters, IStreamBufferDataCounters_Vtbl, 0x9d2a2563_31ab_402e_9a6b_adb903489440);
windows_core::imp::interface_hierarchy!(IStreamBufferDataCounters, windows_core::IUnknown);
impl IStreamBufferDataCounters {
pub unsafe fn GetData(&self, ppindata: *mut SBE_PIN_DATA) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetData)(windows_core::Interface::as_raw(self), ppindata as _).ok() }
}
pub unsafe fn ResetData(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ResetData)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferDataCounters_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut SBE_PIN_DATA) -> windows_core::HRESULT,
pub ResetData: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IStreamBufferDataCounters_Impl: windows_core::IUnknownImpl {
fn GetData(&self, ppindata: *mut SBE_PIN_DATA) -> windows_core::Result<()>;
fn ResetData(&self) -> windows_core::Result<()>;
}
impl IStreamBufferDataCounters_Vtbl {
pub const fn new<Identity: IStreamBufferDataCounters_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetData<Identity: IStreamBufferDataCounters_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppindata: *mut SBE_PIN_DATA) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferDataCounters_Impl::GetData(this, core::mem::transmute_copy(&ppindata)).into()
}
}
unsafe extern "system" fn ResetData<Identity: IStreamBufferDataCounters_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferDataCounters_Impl::ResetData(this).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetData: GetData::<Identity, OFFSET>, ResetData: ResetData::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferDataCounters as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferDataCounters {}
windows_core::imp::define_interface!(IStreamBufferInitialize, IStreamBufferInitialize_Vtbl, 0x9ce50f2d_6ba7_40fb_a034_50b1a674ec78);
windows_core::imp::interface_hierarchy!(IStreamBufferInitialize, windows_core::IUnknown);
impl IStreamBufferInitialize {
#[cfg(feature = "Win32_System_Registry")]
pub unsafe fn SetHKEY(&self, hkeyroot: super::super::super::System::Registry::HKEY) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetHKEY)(windows_core::Interface::as_raw(self), hkeyroot).ok() }
}
#[cfg(feature = "Win32_Security")]
pub unsafe fn SetSIDs(&self, csids: u32, ppsid: *mut super::super::super::Security::PSID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetSIDs)(windows_core::Interface::as_raw(self), csids, ppsid as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferInitialize_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Registry")]
pub SetHKEY: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Registry::HKEY) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Registry"))]
SetHKEY: usize,
#[cfg(feature = "Win32_Security")]
pub SetSIDs: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut super::super::super::Security::PSID) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_Security"))]
SetSIDs: usize,
}
#[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))]
pub trait IStreamBufferInitialize_Impl: windows_core::IUnknownImpl {
fn SetHKEY(&self, hkeyroot: super::super::super::System::Registry::HKEY) -> windows_core::Result<()>;
fn SetSIDs(&self, csids: u32, ppsid: *mut super::super::super::Security::PSID) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))]
impl IStreamBufferInitialize_Vtbl {
pub const fn new<Identity: IStreamBufferInitialize_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetHKEY<Identity: IStreamBufferInitialize_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hkeyroot: super::super::super::System::Registry::HKEY) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferInitialize_Impl::SetHKEY(this, core::mem::transmute_copy(&hkeyroot)).into()
}
}
unsafe extern "system" fn SetSIDs<Identity: IStreamBufferInitialize_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, csids: u32, ppsid: *mut super::super::super::Security::PSID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferInitialize_Impl::SetSIDs(this, core::mem::transmute_copy(&csids), core::mem::transmute_copy(&ppsid)).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetHKEY: SetHKEY::<Identity, OFFSET>, SetSIDs: SetSIDs::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferInitialize as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))]
impl windows_core::RuntimeName for IStreamBufferInitialize {}
windows_core::imp::define_interface!(IStreamBufferMediaSeeking, IStreamBufferMediaSeeking_Vtbl, 0xf61f5c26_863d_4afa_b0ba_2f81dc978596);
impl core::ops::Deref for IStreamBufferMediaSeeking {
type Target = super::IMediaSeeking;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IStreamBufferMediaSeeking, windows_core::IUnknown, super::IMediaSeeking);
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferMediaSeeking_Vtbl {
pub base__: super::IMediaSeeking_Vtbl,
}
pub trait IStreamBufferMediaSeeking_Impl: super::IMediaSeeking_Impl {}
impl IStreamBufferMediaSeeking_Vtbl {
pub const fn new<Identity: IStreamBufferMediaSeeking_Impl, const OFFSET: isize>() -> Self {
Self { base__: super::IMediaSeeking_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferMediaSeeking as windows_core::Interface>::IID || iid == &<super::IMediaSeeking as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferMediaSeeking {}
windows_core::imp::define_interface!(IStreamBufferMediaSeeking2, IStreamBufferMediaSeeking2_Vtbl, 0x3a439ab0_155f_470a_86a6_9ea54afd6eaf);
impl core::ops::Deref for IStreamBufferMediaSeeking2 {
type Target = IStreamBufferMediaSeeking;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IStreamBufferMediaSeeking2, windows_core::IUnknown, super::IMediaSeeking, IStreamBufferMediaSeeking);
impl IStreamBufferMediaSeeking2 {
pub unsafe fn SetRateEx(&self, drate: f64, dwframespersec: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetRateEx)(windows_core::Interface::as_raw(self), drate, dwframespersec).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferMediaSeeking2_Vtbl {
pub base__: IStreamBufferMediaSeeking_Vtbl,
pub SetRateEx: unsafe extern "system" fn(*mut core::ffi::c_void, f64, u32) -> windows_core::HRESULT,
}
pub trait IStreamBufferMediaSeeking2_Impl: IStreamBufferMediaSeeking_Impl {
fn SetRateEx(&self, drate: f64, dwframespersec: u32) -> windows_core::Result<()>;
}
impl IStreamBufferMediaSeeking2_Vtbl {
pub const fn new<Identity: IStreamBufferMediaSeeking2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetRateEx<Identity: IStreamBufferMediaSeeking2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, drate: f64, dwframespersec: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferMediaSeeking2_Impl::SetRateEx(this, core::mem::transmute_copy(&drate), core::mem::transmute_copy(&dwframespersec)).into()
}
}
Self { base__: IStreamBufferMediaSeeking_Vtbl::new::<Identity, OFFSET>(), SetRateEx: SetRateEx::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferMediaSeeking2 as windows_core::Interface>::IID || iid == &<super::IMediaSeeking as windows_core::Interface>::IID || iid == &<IStreamBufferMediaSeeking as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferMediaSeeking2 {}
windows_core::imp::define_interface!(IStreamBufferRecComp, IStreamBufferRecComp_Vtbl, 0x9e259a9b_8815_42ae_b09f_221970b154fd);
windows_core::imp::interface_hierarchy!(IStreamBufferRecComp, windows_core::IUnknown);
impl IStreamBufferRecComp {
pub unsafe fn Initialize<P0, P1>(&self, psztargetfilename: P0, pszsbrecprofileref: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psztargetfilename.param().abi(), pszsbrecprofileref.param().abi()).ok() }
}
pub unsafe fn Append<P0>(&self, pszsbrecording: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).Append)(windows_core::Interface::as_raw(self), pszsbrecording.param().abi()).ok() }
}
pub unsafe fn AppendEx<P0>(&self, pszsbrecording: P0, rtstart: i64, rtstop: i64) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).AppendEx)(windows_core::Interface::as_raw(self), pszsbrecording.param().abi(), rtstart, rtstop).ok() }
}
pub unsafe fn GetCurrentLength(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentLength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Close(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Close)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn Cancel(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Cancel)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferRecComp_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub Append: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AppendEx: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, i64, i64) -> windows_core::HRESULT,
pub GetCurrentLength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub Close: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub Cancel: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IStreamBufferRecComp_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psztargetfilename: &windows_core::PCWSTR, pszsbrecprofileref: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn Append(&self, pszsbrecording: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn AppendEx(&self, pszsbrecording: &windows_core::PCWSTR, rtstart: i64, rtstop: i64) -> windows_core::Result<()>;
fn GetCurrentLength(&self) -> windows_core::Result<u32>;
fn Close(&self) -> windows_core::Result<()>;
fn Cancel(&self) -> windows_core::Result<()>;
}
impl IStreamBufferRecComp_Vtbl {
pub const fn new<Identity: IStreamBufferRecComp_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: IStreamBufferRecComp_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psztargetfilename: windows_core::PCWSTR, pszsbrecprofileref: windows_core::PCWSTR) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecComp_Impl::Initialize(this, core::mem::transmute(&psztargetfilename), core::mem::transmute(&pszsbrecprofileref)).into()
}
}
unsafe extern "system" fn Append<Identity: IStreamBufferRecComp_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszsbrecording: windows_core::PCWSTR) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecComp_Impl::Append(this, core::mem::transmute(&pszsbrecording)).into()
}
}
unsafe extern "system" fn AppendEx<Identity: IStreamBufferRecComp_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszsbrecording: windows_core::PCWSTR, rtstart: i64, rtstop: i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecComp_Impl::AppendEx(this, core::mem::transmute(&pszsbrecording), core::mem::transmute_copy(&rtstart), core::mem::transmute_copy(&rtstop)).into()
}
}
unsafe extern "system" fn GetCurrentLength<Identity: IStreamBufferRecComp_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pcseconds: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IStreamBufferRecComp_Impl::GetCurrentLength(this) {
Ok(ok__) => {
pcseconds.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Close<Identity: IStreamBufferRecComp_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecComp_Impl::Close(this).into()
}
}
unsafe extern "system" fn Cancel<Identity: IStreamBufferRecComp_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecComp_Impl::Cancel(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
Append: Append::<Identity, OFFSET>,
AppendEx: AppendEx::<Identity, OFFSET>,
GetCurrentLength: GetCurrentLength::<Identity, OFFSET>,
Close: Close::<Identity, OFFSET>,
Cancel: Cancel::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferRecComp as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferRecComp {}
windows_core::imp::define_interface!(IStreamBufferRecordControl, IStreamBufferRecordControl_Vtbl, 0xba9b6c99_f3c7_4ff2_92db_cfdd4851bf31);
windows_core::imp::interface_hierarchy!(IStreamBufferRecordControl, windows_core::IUnknown);
impl IStreamBufferRecordControl {
pub unsafe fn Start(&self, prtstart: *mut i64) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Start)(windows_core::Interface::as_raw(self), prtstart as _).ok() }
}
pub unsafe fn Stop(&self, rtstop: i64) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Stop)(windows_core::Interface::as_raw(self), rtstop).ok() }
}
pub unsafe fn GetRecordingStatus(&self, phresult: *mut windows_core::HRESULT, pbstarted: *mut windows_core::BOOL, pbstopped: *mut windows_core::BOOL) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetRecordingStatus)(windows_core::Interface::as_raw(self), phresult as _, pbstarted as _, pbstopped as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferRecordControl_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Start: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i64) -> windows_core::HRESULT,
pub Stop: unsafe extern "system" fn(*mut core::ffi::c_void, i64) -> windows_core::HRESULT,
pub GetRecordingStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::HRESULT, *mut windows_core::BOOL, *mut windows_core::BOOL) -> windows_core::HRESULT,
}
pub trait IStreamBufferRecordControl_Impl: windows_core::IUnknownImpl {
fn Start(&self, prtstart: *mut i64) -> windows_core::Result<()>;
fn Stop(&self, rtstop: i64) -> windows_core::Result<()>;
fn GetRecordingStatus(&self, phresult: *mut windows_core::HRESULT, pbstarted: *mut windows_core::BOOL, pbstopped: *mut windows_core::BOOL) -> windows_core::Result<()>;
}
impl IStreamBufferRecordControl_Vtbl {
pub const fn new<Identity: IStreamBufferRecordControl_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Start<Identity: IStreamBufferRecordControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prtstart: *mut i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecordControl_Impl::Start(this, core::mem::transmute_copy(&prtstart)).into()
}
}
unsafe extern "system" fn Stop<Identity: IStreamBufferRecordControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, rtstop: i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecordControl_Impl::Stop(this, core::mem::transmute_copy(&rtstop)).into()
}
}
unsafe extern "system" fn GetRecordingStatus<Identity: IStreamBufferRecordControl_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, phresult: *mut windows_core::HRESULT, pbstarted: *mut windows_core::BOOL, pbstopped: *mut windows_core::BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecordControl_Impl::GetRecordingStatus(this, core::mem::transmute_copy(&phresult), core::mem::transmute_copy(&pbstarted), core::mem::transmute_copy(&pbstopped)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Start: Start::<Identity, OFFSET>,
Stop: Stop::<Identity, OFFSET>,
GetRecordingStatus: GetRecordingStatus::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferRecordControl as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferRecordControl {}
windows_core::imp::define_interface!(IStreamBufferRecordingAttribute, IStreamBufferRecordingAttribute_Vtbl, 0x16ca4e03_fe69_4705_bd41_5b7dfc0c95f3);
windows_core::imp::interface_hierarchy!(IStreamBufferRecordingAttribute, windows_core::IUnknown);
impl IStreamBufferRecordingAttribute {
pub unsafe fn SetAttribute<P1>(&self, ulreserved: u32, pszattributename: P1, streambufferattributetype: STREAMBUFFER_ATTR_DATATYPE, pbattribute: &[u8]) -> windows_core::Result<()>
where
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).SetAttribute)(windows_core::Interface::as_raw(self), ulreserved, pszattributename.param().abi(), streambufferattributetype, core::mem::transmute(pbattribute.as_ptr()), pbattribute.len().try_into().unwrap()).ok() }
}
pub unsafe fn GetAttributeCount(&self, ulreserved: u32) -> windows_core::Result<u16> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAttributeCount)(windows_core::Interface::as_raw(self), ulreserved, &mut result__).map(|| result__)
}
}
pub unsafe fn GetAttributeByName<P0>(&self, pszattributename: P0, pulreserved: *const u32, pstreambufferattributetype: *mut STREAMBUFFER_ATTR_DATATYPE, pbattribute: *mut u8, pcblength: *mut u16) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).GetAttributeByName)(windows_core::Interface::as_raw(self), pszattributename.param().abi(), pulreserved, pstreambufferattributetype as _, pbattribute as _, pcblength as _).ok() }
}
pub unsafe fn GetAttributeByIndex(&self, windex: u16, pulreserved: *const u32, pszattributename: windows_core::PWSTR, pcchnamelength: *mut u16, pstreambufferattributetype: *mut STREAMBUFFER_ATTR_DATATYPE, pbattribute: *mut u8, pcblength: *mut u16) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetAttributeByIndex)(windows_core::Interface::as_raw(self), windex, pulreserved, core::mem::transmute(pszattributename), pcchnamelength as _, pstreambufferattributetype as _, pbattribute as _, pcblength as _).ok() }
}
pub unsafe fn EnumAttributes(&self) -> windows_core::Result<IEnumStreamBufferRecordingAttrib> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumAttributes)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferRecordingAttribute_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub SetAttribute: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, STREAMBUFFER_ATTR_DATATYPE, *const u8, u16) -> windows_core::HRESULT,
pub GetAttributeCount: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u16) -> windows_core::HRESULT,
pub GetAttributeByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *const u32, *mut STREAMBUFFER_ATTR_DATATYPE, *mut u8, *mut u16) -> windows_core::HRESULT,
pub GetAttributeByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u16, *const u32, windows_core::PWSTR, *mut u16, *mut STREAMBUFFER_ATTR_DATATYPE, *mut u8, *mut u16) -> windows_core::HRESULT,
pub EnumAttributes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IStreamBufferRecordingAttribute_Impl: windows_core::IUnknownImpl {
fn SetAttribute(&self, ulreserved: u32, pszattributename: &windows_core::PCWSTR, streambufferattributetype: STREAMBUFFER_ATTR_DATATYPE, pbattribute: *const u8, cbattributelength: u16) -> windows_core::Result<()>;
fn GetAttributeCount(&self, ulreserved: u32) -> windows_core::Result<u16>;
fn GetAttributeByName(&self, pszattributename: &windows_core::PCWSTR, pulreserved: *const u32, pstreambufferattributetype: *mut STREAMBUFFER_ATTR_DATATYPE, pbattribute: *mut u8, pcblength: *mut u16) -> windows_core::Result<()>;
fn GetAttributeByIndex(&self, windex: u16, pulreserved: *const u32, pszattributename: windows_core::PWSTR, pcchnamelength: *mut u16, pstreambufferattributetype: *mut STREAMBUFFER_ATTR_DATATYPE, pbattribute: *mut u8, pcblength: *mut u16) -> windows_core::Result<()>;
fn EnumAttributes(&self) -> windows_core::Result<IEnumStreamBufferRecordingAttrib>;
}
impl IStreamBufferRecordingAttribute_Vtbl {
pub const fn new<Identity: IStreamBufferRecordingAttribute_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetAttribute<Identity: IStreamBufferRecordingAttribute_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ulreserved: u32, pszattributename: windows_core::PCWSTR, streambufferattributetype: STREAMBUFFER_ATTR_DATATYPE, pbattribute: *const u8, cbattributelength: u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecordingAttribute_Impl::SetAttribute(this, core::mem::transmute_copy(&ulreserved), core::mem::transmute(&pszattributename), core::mem::transmute_copy(&streambufferattributetype), core::mem::transmute_copy(&pbattribute), core::mem::transmute_copy(&cbattributelength)).into()
}
}
unsafe extern "system" fn GetAttributeCount<Identity: IStreamBufferRecordingAttribute_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ulreserved: u32, pcattributes: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IStreamBufferRecordingAttribute_Impl::GetAttributeCount(this, core::mem::transmute_copy(&ulreserved)) {
Ok(ok__) => {
pcattributes.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetAttributeByName<Identity: IStreamBufferRecordingAttribute_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszattributename: windows_core::PCWSTR, pulreserved: *const u32, pstreambufferattributetype: *mut STREAMBUFFER_ATTR_DATATYPE, pbattribute: *mut u8, pcblength: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecordingAttribute_Impl::GetAttributeByName(this, core::mem::transmute(&pszattributename), core::mem::transmute_copy(&pulreserved), core::mem::transmute_copy(&pstreambufferattributetype), core::mem::transmute_copy(&pbattribute), core::mem::transmute_copy(&pcblength)).into()
}
}
unsafe extern "system" fn GetAttributeByIndex<Identity: IStreamBufferRecordingAttribute_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, windex: u16, pulreserved: *const u32, pszattributename: windows_core::PWSTR, pcchnamelength: *mut u16, pstreambufferattributetype: *mut STREAMBUFFER_ATTR_DATATYPE, pbattribute: *mut u8, pcblength: *mut u16) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferRecordingAttribute_Impl::GetAttributeByIndex(this, core::mem::transmute_copy(&windex), core::mem::transmute_copy(&pulreserved), core::mem::transmute_copy(&pszattributename), core::mem::transmute_copy(&pcchnamelength), core::mem::transmute_copy(&pstreambufferattributetype), core::mem::transmute_copy(&pbattribute), core::mem::transmute_copy(&pcblength)).into()
}
}
unsafe extern "system" fn EnumAttributes<Identity: IStreamBufferRecordingAttribute_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppienumstreambufferattrib: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IStreamBufferRecordingAttribute_Impl::EnumAttributes(this) {
Ok(ok__) => {
ppienumstreambufferattrib.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAttribute: SetAttribute::<Identity, OFFSET>,
GetAttributeCount: GetAttributeCount::<Identity, OFFSET>,
GetAttributeByName: GetAttributeByName::<Identity, OFFSET>,
GetAttributeByIndex: GetAttributeByIndex::<Identity, OFFSET>,
EnumAttributes: EnumAttributes::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferRecordingAttribute as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferRecordingAttribute {}
windows_core::imp::define_interface!(IStreamBufferSink, IStreamBufferSink_Vtbl, 0xafd1f242_7efd_45ee_ba4e_407a25c9a77a);
windows_core::imp::interface_hierarchy!(IStreamBufferSink, windows_core::IUnknown);
impl IStreamBufferSink {
pub unsafe fn LockProfile<P0>(&self, pszstreambufferfilename: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe { (windows_core::Interface::vtable(self).LockProfile)(windows_core::Interface::as_raw(self), pszstreambufferfilename.param().abi()).ok() }
}
pub unsafe fn CreateRecorder<P0>(&self, pszfilename: P0, dwrecordtype: u32) -> windows_core::Result<windows_core::IUnknown>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateRecorder)(windows_core::Interface::as_raw(self), pszfilename.param().abi(), dwrecordtype, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn IsProfileLocked(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).IsProfileLocked)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferSink_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub LockProfile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub CreateRecorder: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub IsProfileLocked: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IStreamBufferSink_Impl: windows_core::IUnknownImpl {
fn LockProfile(&self, pszstreambufferfilename: &windows_core::PCWSTR) -> windows_core::Result<()>;
fn CreateRecorder(&self, pszfilename: &windows_core::PCWSTR, dwrecordtype: u32) -> windows_core::Result<windows_core::IUnknown>;
fn IsProfileLocked(&self) -> windows_core::Result<()>;
}
impl IStreamBufferSink_Vtbl {
pub const fn new<Identity: IStreamBufferSink_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn LockProfile<Identity: IStreamBufferSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszstreambufferfilename: windows_core::PCWSTR) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferSink_Impl::LockProfile(this, core::mem::transmute(&pszstreambufferfilename)).into()
}
}
unsafe extern "system" fn CreateRecorder<Identity: IStreamBufferSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pszfilename: windows_core::PCWSTR, dwrecordtype: u32, precordingiunknown: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IStreamBufferSink_Impl::CreateRecorder(this, core::mem::transmute(&pszfilename), core::mem::transmute_copy(&dwrecordtype)) {
Ok(ok__) => {
precordingiunknown.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn IsProfileLocked<Identity: IStreamBufferSink_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferSink_Impl::IsProfileLocked(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
LockProfile: LockProfile::<Identity, OFFSET>,
CreateRecorder: CreateRecorder::<Identity, OFFSET>,
IsProfileLocked: IsProfileLocked::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferSink as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferSink {}
windows_core::imp::define_interface!(IStreamBufferSink2, IStreamBufferSink2_Vtbl, 0xdb94a660_f4fb_4bfa_bcc6_fe159a4eea93);
impl core::ops::Deref for IStreamBufferSink2 {
type Target = IStreamBufferSink;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IStreamBufferSink2, windows_core::IUnknown, IStreamBufferSink);
impl IStreamBufferSink2 {
pub unsafe fn UnlockProfile(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).UnlockProfile)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferSink2_Vtbl {
pub base__: IStreamBufferSink_Vtbl,
pub UnlockProfile: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IStreamBufferSink2_Impl: IStreamBufferSink_Impl {
fn UnlockProfile(&self) -> windows_core::Result<()>;
}
impl IStreamBufferSink2_Vtbl {
pub const fn new<Identity: IStreamBufferSink2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn UnlockProfile<Identity: IStreamBufferSink2_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferSink2_Impl::UnlockProfile(this).into()
}
}
Self { base__: IStreamBufferSink_Vtbl::new::<Identity, OFFSET>(), UnlockProfile: UnlockProfile::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferSink2 as windows_core::Interface>::IID || iid == &<IStreamBufferSink as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferSink2 {}
windows_core::imp::define_interface!(IStreamBufferSink3, IStreamBufferSink3_Vtbl, 0x974723f2_887a_4452_9366_2cff3057bc8f);
impl core::ops::Deref for IStreamBufferSink3 {
type Target = IStreamBufferSink2;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IStreamBufferSink3, windows_core::IUnknown, IStreamBufferSink, IStreamBufferSink2);
impl IStreamBufferSink3 {
pub unsafe fn SetAvailableFilter(&self, prtmin: *mut i64) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetAvailableFilter)(windows_core::Interface::as_raw(self), prtmin as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferSink3_Vtbl {
pub base__: IStreamBufferSink2_Vtbl,
pub SetAvailableFilter: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i64) -> windows_core::HRESULT,
}
pub trait IStreamBufferSink3_Impl: IStreamBufferSink2_Impl {
fn SetAvailableFilter(&self, prtmin: *mut i64) -> windows_core::Result<()>;
}
impl IStreamBufferSink3_Vtbl {
pub const fn new<Identity: IStreamBufferSink3_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetAvailableFilter<Identity: IStreamBufferSink3_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prtmin: *mut i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferSink3_Impl::SetAvailableFilter(this, core::mem::transmute_copy(&prtmin)).into()
}
}
Self { base__: IStreamBufferSink2_Vtbl::new::<Identity, OFFSET>(), SetAvailableFilter: SetAvailableFilter::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferSink3 as windows_core::Interface>::IID || iid == &<IStreamBufferSink as windows_core::Interface>::IID || iid == &<IStreamBufferSink2 as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferSink3 {}
windows_core::imp::define_interface!(IStreamBufferSource, IStreamBufferSource_Vtbl, 0x1c5bd776_6ced_4f44_8164_5eab0e98db12);
windows_core::imp::interface_hierarchy!(IStreamBufferSource, windows_core::IUnknown);
impl IStreamBufferSource {
pub unsafe fn SetStreamSink<P0>(&self, pistreambuffersink: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IStreamBufferSink>,
{
unsafe { (windows_core::Interface::vtable(self).SetStreamSink)(windows_core::Interface::as_raw(self), pistreambuffersink.param().abi()).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStreamBufferSource_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub SetStreamSink: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IStreamBufferSource_Impl: windows_core::IUnknownImpl {
fn SetStreamSink(&self, pistreambuffersink: windows_core::Ref<IStreamBufferSink>) -> windows_core::Result<()>;
}
impl IStreamBufferSource_Vtbl {
pub const fn new<Identity: IStreamBufferSource_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetStreamSink<Identity: IStreamBufferSource_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pistreambuffersink: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IStreamBufferSource_Impl::SetStreamSink(this, core::mem::transmute_copy(&pistreambuffersink)).into()
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetStreamSink: SetStreamSink::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IStreamBufferSource as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IStreamBufferSource {}
windows_core::imp::define_interface!(ITSDT, ITSDT_Vtbl, 0xd19bdb43_405b_4a7c_a791_c89110c33165);
windows_core::imp::interface_hierarchy!(ITSDT, windows_core::IUnknown);
impl ITSDT {
pub unsafe fn Initialize<P0, P1>(&self, psectionlist: P0, pmpegdata: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<ISectionList>,
P1: windows_core::Param<IMpeg2Data>,
{
unsafe { (windows_core::Interface::vtable(self).Initialize)(windows_core::Interface::as_raw(self), psectionlist.param().abi(), pmpegdata.param().abi()).ok() }
}
pub unsafe fn GetVersionNumber(&self) -> windows_core::Result<u8> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetVersionNumber)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCountOfTableDescriptors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTableDescriptorByIndex)(windows_core::Interface::as_raw(self), dwindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut Option<IGenericDescriptor>) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetTableDescriptorByTag)(windows_core::Interface::as_raw(self), btag, pdwcookie as _, core::mem::transmute(ppdescriptor)).ok() }
}
pub unsafe fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForNextTable)(windows_core::Interface::as_raw(self), hnexttableavailable).ok() }
}
pub unsafe fn GetNextTable(&self) -> windows_core::Result<ITSDT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextTable)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).RegisterForWhenCurrent)(windows_core::Interface::as_raw(self), hnexttableiscurrent).ok() }
}
pub unsafe fn ConvertNextToCurrent(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ConvertNextToCurrent)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ITSDT_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Initialize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetVersionNumber: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
pub GetCountOfTableDescriptors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTableDescriptorByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTableDescriptorByTag: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub GetNextTable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterForWhenCurrent: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Foundation::HANDLE) -> windows_core::HRESULT,
pub ConvertNextToCurrent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait ITSDT_Impl: windows_core::IUnknownImpl {
fn Initialize(&self, psectionlist: windows_core::Ref<ISectionList>, pmpegdata: windows_core::Ref<IMpeg2Data>) -> windows_core::Result<()>;
fn GetVersionNumber(&self) -> windows_core::Result<u8>;
fn GetCountOfTableDescriptors(&self) -> windows_core::Result<u32>;
fn GetTableDescriptorByIndex(&self, dwindex: u32) -> windows_core::Result<IGenericDescriptor>;
fn GetTableDescriptorByTag(&self, btag: u8, pdwcookie: *mut u32, ppdescriptor: windows_core::OutRef<IGenericDescriptor>) -> windows_core::Result<()>;
fn RegisterForNextTable(&self, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn GetNextTable(&self) -> windows_core::Result<ITSDT>;
fn RegisterForWhenCurrent(&self, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::Result<()>;
fn ConvertNextToCurrent(&self) -> windows_core::Result<()>;
}
impl ITSDT_Vtbl {
pub const fn new<Identity: ITSDT_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Initialize<Identity: ITSDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psectionlist: *mut core::ffi::c_void, pmpegdata: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITSDT_Impl::Initialize(this, core::mem::transmute_copy(&psectionlist), core::mem::transmute_copy(&pmpegdata)).into()
}
}
unsafe extern "system" fn GetVersionNumber<Identity: ITSDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbval: *mut u8) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITSDT_Impl::GetVersionNumber(this) {
Ok(ok__) => {
pbval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetCountOfTableDescriptors<Identity: ITSDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pdwval: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITSDT_Impl::GetCountOfTableDescriptors(this) {
Ok(ok__) => {
pdwval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByIndex<Identity: ITSDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwindex: u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITSDT_Impl::GetTableDescriptorByIndex(this, core::mem::transmute_copy(&dwindex)) {
Ok(ok__) => {
ppdescriptor.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetTableDescriptorByTag<Identity: ITSDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, btag: u8, pdwcookie: *mut u32, ppdescriptor: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITSDT_Impl::GetTableDescriptorByTag(this, core::mem::transmute_copy(&btag), core::mem::transmute_copy(&pdwcookie), core::mem::transmute_copy(&ppdescriptor)).into()
}
}
unsafe extern "system" fn RegisterForNextTable<Identity: ITSDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableavailable: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITSDT_Impl::RegisterForNextTable(this, core::mem::transmute_copy(&hnexttableavailable)).into()
}
}
unsafe extern "system" fn GetNextTable<Identity: ITSDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pptsdt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITSDT_Impl::GetNextTable(this) {
Ok(ok__) => {
pptsdt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn RegisterForWhenCurrent<Identity: ITSDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, hnexttableiscurrent: super::super::super::Foundation::HANDLE) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITSDT_Impl::RegisterForWhenCurrent(this, core::mem::transmute_copy(&hnexttableiscurrent)).into()
}
}
unsafe extern "system" fn ConvertNextToCurrent<Identity: ITSDT_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITSDT_Impl::ConvertNextToCurrent(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, OFFSET>,
GetVersionNumber: GetVersionNumber::<Identity, OFFSET>,
GetCountOfTableDescriptors: GetCountOfTableDescriptors::<Identity, OFFSET>,
GetTableDescriptorByIndex: GetTableDescriptorByIndex::<Identity, OFFSET>,
GetTableDescriptorByTag: GetTableDescriptorByTag::<Identity, OFFSET>,
RegisterForNextTable: RegisterForNextTable::<Identity, OFFSET>,
GetNextTable: GetNextTable::<Identity, OFFSET>,
RegisterForWhenCurrent: RegisterForWhenCurrent::<Identity, OFFSET>,
ConvertNextToCurrent: ConvertNextToCurrent::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ITSDT as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ITSDT {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(ITuneRequest, ITuneRequest_Vtbl, 0x07ddc146_fc3d_11d2_9d8c_00c04f72d980);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for ITuneRequest {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(ITuneRequest, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl ITuneRequest {
pub unsafe fn TuningSpace(&self) -> windows_core::Result<ITuningSpace> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TuningSpace)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Components(&self) -> windows_core::Result<IComponents> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Components)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Clone(&self) -> windows_core::Result<ITuneRequest> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn Locator(&self) -> windows_core::Result<ILocator> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Locator)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetLocator<P0>(&self, locator: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ILocator>,
{
unsafe { (windows_core::Interface::vtable(self).SetLocator)(windows_core::Interface::as_raw(self), locator.param().abi()).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct ITuneRequest_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub TuningSpace: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Components: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Locator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetLocator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait ITuneRequest_Impl: super::super::super::System::Com::IDispatch_Impl {
fn TuningSpace(&self) -> windows_core::Result<ITuningSpace>;
fn Components(&self) -> windows_core::Result<IComponents>;
fn Clone(&self) -> windows_core::Result<ITuneRequest>;
fn Locator(&self) -> windows_core::Result<ILocator>;
fn SetLocator(&self, locator: windows_core::Ref<ILocator>) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ITuneRequest_Vtbl {
pub const fn new<Identity: ITuneRequest_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn TuningSpace<Identity: ITuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tuningspace: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuneRequest_Impl::TuningSpace(this) {
Ok(ok__) => {
tuningspace.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Components<Identity: ITuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, components: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuneRequest_Impl::Components(this) {
Ok(ok__) => {
components.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Clone<Identity: ITuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newtunerequest: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuneRequest_Impl::Clone(this) {
Ok(ok__) => {
newtunerequest.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Locator<Identity: ITuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, locator: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuneRequest_Impl::Locator(this) {
Ok(ok__) => {
locator.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetLocator<Identity: ITuneRequest_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, locator: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuneRequest_Impl::SetLocator(this, core::mem::transmute_copy(&locator)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
TuningSpace: TuningSpace::<Identity, OFFSET>,
Components: Components::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
Locator: Locator::<Identity, OFFSET>,
SetLocator: SetLocator::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ITuneRequest as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for ITuneRequest {}
windows_core::imp::define_interface!(ITuneRequestInfo, ITuneRequestInfo_Vtbl, 0xa3b152df_7a90_4218_ac54_9830bee8c0b6);
windows_core::imp::interface_hierarchy!(ITuneRequestInfo, windows_core::IUnknown);
impl ITuneRequestInfo {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetLocatorData<P0>(&self, request: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe { (windows_core::Interface::vtable(self).GetLocatorData)(windows_core::Interface::as_raw(self), request.param().abi()).ok() }
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetComponentData<P0>(&self, currentrequest: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe { (windows_core::Interface::vtable(self).GetComponentData)(windows_core::Interface::as_raw(self), currentrequest.param().abi()).ok() }
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn CreateComponentList<P0>(&self, currentrequest: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe { (windows_core::Interface::vtable(self).CreateComponentList)(windows_core::Interface::as_raw(self), currentrequest.param().abi()).ok() }
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetNextProgram<P0>(&self, currentrequest: P0) -> windows_core::Result<ITuneRequest>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextProgram)(windows_core::Interface::as_raw(self), currentrequest.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetPreviousProgram<P0>(&self, currentrequest: P0) -> windows_core::Result<ITuneRequest>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPreviousProgram)(windows_core::Interface::as_raw(self), currentrequest.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetNextLocator<P0>(&self, currentrequest: P0) -> windows_core::Result<ITuneRequest>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextLocator)(windows_core::Interface::as_raw(self), currentrequest.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetPreviousLocator<P0>(&self, currentrequest: P0) -> windows_core::Result<ITuneRequest>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPreviousLocator)(windows_core::Interface::as_raw(self), currentrequest.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ITuneRequestInfo_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub GetLocatorData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetLocatorData: usize,
#[cfg(feature = "Win32_System_Com")]
pub GetComponentData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetComponentData: usize,
#[cfg(feature = "Win32_System_Com")]
pub CreateComponentList: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
CreateComponentList: usize,
#[cfg(feature = "Win32_System_Com")]
pub GetNextProgram: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetNextProgram: usize,
#[cfg(feature = "Win32_System_Com")]
pub GetPreviousProgram: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetPreviousProgram: usize,
#[cfg(feature = "Win32_System_Com")]
pub GetNextLocator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetNextLocator: usize,
#[cfg(feature = "Win32_System_Com")]
pub GetPreviousLocator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetPreviousLocator: usize,
}
#[cfg(feature = "Win32_System_Com")]
pub trait ITuneRequestInfo_Impl: windows_core::IUnknownImpl {
fn GetLocatorData(&self, request: windows_core::Ref<ITuneRequest>) -> windows_core::Result<()>;
fn GetComponentData(&self, currentrequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<()>;
fn CreateComponentList(&self, currentrequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<()>;
fn GetNextProgram(&self, currentrequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<ITuneRequest>;
fn GetPreviousProgram(&self, currentrequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<ITuneRequest>;
fn GetNextLocator(&self, currentrequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<ITuneRequest>;
fn GetPreviousLocator(&self, currentrequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<ITuneRequest>;
}
#[cfg(feature = "Win32_System_Com")]
impl ITuneRequestInfo_Vtbl {
pub const fn new<Identity: ITuneRequestInfo_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetLocatorData<Identity: ITuneRequestInfo_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, request: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuneRequestInfo_Impl::GetLocatorData(this, core::mem::transmute_copy(&request)).into()
}
}
unsafe extern "system" fn GetComponentData<Identity: ITuneRequestInfo_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentrequest: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuneRequestInfo_Impl::GetComponentData(this, core::mem::transmute_copy(¤trequest)).into()
}
}
unsafe extern "system" fn CreateComponentList<Identity: ITuneRequestInfo_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentrequest: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuneRequestInfo_Impl::CreateComponentList(this, core::mem::transmute_copy(¤trequest)).into()
}
}
unsafe extern "system" fn GetNextProgram<Identity: ITuneRequestInfo_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentrequest: *mut core::ffi::c_void, tunerequest: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuneRequestInfo_Impl::GetNextProgram(this, core::mem::transmute_copy(¤trequest)) {
Ok(ok__) => {
tunerequest.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPreviousProgram<Identity: ITuneRequestInfo_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentrequest: *mut core::ffi::c_void, tunerequest: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuneRequestInfo_Impl::GetPreviousProgram(this, core::mem::transmute_copy(¤trequest)) {
Ok(ok__) => {
tunerequest.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetNextLocator<Identity: ITuneRequestInfo_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentrequest: *mut core::ffi::c_void, tunerequest: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuneRequestInfo_Impl::GetNextLocator(this, core::mem::transmute_copy(¤trequest)) {
Ok(ok__) => {
tunerequest.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetPreviousLocator<Identity: ITuneRequestInfo_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentrequest: *mut core::ffi::c_void, tunerequest: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuneRequestInfo_Impl::GetPreviousLocator(this, core::mem::transmute_copy(¤trequest)) {
Ok(ok__) => {
tunerequest.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetLocatorData: GetLocatorData::<Identity, OFFSET>,
GetComponentData: GetComponentData::<Identity, OFFSET>,
CreateComponentList: CreateComponentList::<Identity, OFFSET>,
GetNextProgram: GetNextProgram::<Identity, OFFSET>,
GetPreviousProgram: GetPreviousProgram::<Identity, OFFSET>,
GetNextLocator: GetNextLocator::<Identity, OFFSET>,
GetPreviousLocator: GetPreviousLocator::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ITuneRequestInfo as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for ITuneRequestInfo {}
windows_core::imp::define_interface!(ITuneRequestInfoEx, ITuneRequestInfoEx_Vtbl, 0xee957c52_b0d0_4e78_8dd1_b87a08bfd893);
impl core::ops::Deref for ITuneRequestInfoEx {
type Target = ITuneRequestInfo;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(ITuneRequestInfoEx, windows_core::IUnknown, ITuneRequestInfo);
impl ITuneRequestInfoEx {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn CreateComponentListEx<P0>(&self, currentrequest: P0) -> windows_core::Result<windows_core::IUnknown>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateComponentListEx)(windows_core::Interface::as_raw(self), currentrequest.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ITuneRequestInfoEx_Vtbl {
pub base__: ITuneRequestInfo_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub CreateComponentListEx: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
CreateComponentListEx: usize,
}
#[cfg(feature = "Win32_System_Com")]
pub trait ITuneRequestInfoEx_Impl: ITuneRequestInfo_Impl {
fn CreateComponentListEx(&self, currentrequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<windows_core::IUnknown>;
}
#[cfg(feature = "Win32_System_Com")]
impl ITuneRequestInfoEx_Vtbl {
pub const fn new<Identity: ITuneRequestInfoEx_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn CreateComponentListEx<Identity: ITuneRequestInfoEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, currentrequest: *mut core::ffi::c_void, ppcurpmt: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuneRequestInfoEx_Impl::CreateComponentListEx(this, core::mem::transmute_copy(¤trequest)) {
Ok(ok__) => {
ppcurpmt.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: ITuneRequestInfo_Vtbl::new::<Identity, OFFSET>(), CreateComponentListEx: CreateComponentListEx::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ITuneRequestInfoEx as windows_core::Interface>::IID || iid == &<ITuneRequestInfo as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for ITuneRequestInfoEx {}
windows_core::imp::define_interface!(ITuner, ITuner_Vtbl, 0x28c52640_018a_11d3_9d8e_00c04f72d980);
windows_core::imp::interface_hierarchy!(ITuner, windows_core::IUnknown);
impl ITuner {
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn TuningSpace(&self) -> windows_core::Result<ITuningSpace> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TuningSpace)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn SetTuningSpace<P0>(&self, tuningspace: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ITuningSpace>,
{
unsafe { (windows_core::Interface::vtable(self).SetTuningSpace)(windows_core::Interface::as_raw(self), tuningspace.param().abi()).ok() }
}
pub unsafe fn EnumTuningSpaces(&self) -> windows_core::Result<IEnumTuningSpaces> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumTuningSpaces)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn TuneRequest(&self) -> windows_core::Result<ITuneRequest> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TuneRequest)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn SetTuneRequest<P0>(&self, tunerequest: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe { (windows_core::Interface::vtable(self).SetTuneRequest)(windows_core::Interface::as_raw(self), tunerequest.param().abi()).ok() }
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Validate<P0>(&self, tunerequest: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ITuneRequest>,
{
unsafe { (windows_core::Interface::vtable(self).Validate)(windows_core::Interface::as_raw(self), tunerequest.param().abi()).ok() }
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn PreferredComponentTypes(&self) -> windows_core::Result<IComponentTypes> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PreferredComponentTypes)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn SetPreferredComponentTypes<P0>(&self, componenttypes: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IComponentTypes>,
{
unsafe { (windows_core::Interface::vtable(self).SetPreferredComponentTypes)(windows_core::Interface::as_raw(self), componenttypes.param().abi()).ok() }
}
pub unsafe fn SignalStrength(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SignalStrength)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn TriggerSignalEvents(&self, interval: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).TriggerSignalEvents)(windows_core::Interface::as_raw(self), interval).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ITuner_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_System_Com")]
pub TuningSpace: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
TuningSpace: usize,
#[cfg(feature = "Win32_System_Com")]
pub SetTuningSpace: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
SetTuningSpace: usize,
pub EnumTuningSpaces: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub TuneRequest: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
TuneRequest: usize,
#[cfg(feature = "Win32_System_Com")]
pub SetTuneRequest: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
SetTuneRequest: usize,
#[cfg(feature = "Win32_System_Com")]
pub Validate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Validate: usize,
#[cfg(feature = "Win32_System_Com")]
pub PreferredComponentTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
PreferredComponentTypes: usize,
#[cfg(feature = "Win32_System_Com")]
pub SetPreferredComponentTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
SetPreferredComponentTypes: usize,
pub SignalStrength: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub TriggerSignalEvents: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(feature = "Win32_System_Com")]
pub trait ITuner_Impl: windows_core::IUnknownImpl {
fn TuningSpace(&self) -> windows_core::Result<ITuningSpace>;
fn SetTuningSpace(&self, tuningspace: windows_core::Ref<ITuningSpace>) -> windows_core::Result<()>;
fn EnumTuningSpaces(&self) -> windows_core::Result<IEnumTuningSpaces>;
fn TuneRequest(&self) -> windows_core::Result<ITuneRequest>;
fn SetTuneRequest(&self, tunerequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<()>;
fn Validate(&self, tunerequest: windows_core::Ref<ITuneRequest>) -> windows_core::Result<()>;
fn PreferredComponentTypes(&self) -> windows_core::Result<IComponentTypes>;
fn SetPreferredComponentTypes(&self, componenttypes: windows_core::Ref<IComponentTypes>) -> windows_core::Result<()>;
fn SignalStrength(&self) -> windows_core::Result<i32>;
fn TriggerSignalEvents(&self, interval: i32) -> windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ITuner_Vtbl {
pub const fn new<Identity: ITuner_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn TuningSpace<Identity: ITuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tuningspace: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuner_Impl::TuningSpace(this) {
Ok(ok__) => {
tuningspace.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTuningSpace<Identity: ITuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tuningspace: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuner_Impl::SetTuningSpace(this, core::mem::transmute_copy(&tuningspace)).into()
}
}
unsafe extern "system" fn EnumTuningSpaces<Identity: ITuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuner_Impl::EnumTuningSpaces(this) {
Ok(ok__) => {
ppenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn TuneRequest<Identity: ITuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tunerequest: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuner_Impl::TuneRequest(this) {
Ok(ok__) => {
tunerequest.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetTuneRequest<Identity: ITuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tunerequest: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuner_Impl::SetTuneRequest(this, core::mem::transmute_copy(&tunerequest)).into()
}
}
unsafe extern "system" fn Validate<Identity: ITuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tunerequest: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuner_Impl::Validate(this, core::mem::transmute_copy(&tunerequest)).into()
}
}
unsafe extern "system" fn PreferredComponentTypes<Identity: ITuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, componenttypes: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuner_Impl::PreferredComponentTypes(this) {
Ok(ok__) => {
componenttypes.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPreferredComponentTypes<Identity: ITuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, componenttypes: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuner_Impl::SetPreferredComponentTypes(this, core::mem::transmute_copy(&componenttypes)).into()
}
}
unsafe extern "system" fn SignalStrength<Identity: ITuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, strength: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuner_Impl::SignalStrength(this) {
Ok(ok__) => {
strength.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn TriggerSignalEvents<Identity: ITuner_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, interval: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuner_Impl::TriggerSignalEvents(this, core::mem::transmute_copy(&interval)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
TuningSpace: TuningSpace::<Identity, OFFSET>,
SetTuningSpace: SetTuningSpace::<Identity, OFFSET>,
EnumTuningSpaces: EnumTuningSpaces::<Identity, OFFSET>,
TuneRequest: TuneRequest::<Identity, OFFSET>,
SetTuneRequest: SetTuneRequest::<Identity, OFFSET>,
Validate: Validate::<Identity, OFFSET>,
PreferredComponentTypes: PreferredComponentTypes::<Identity, OFFSET>,
SetPreferredComponentTypes: SetPreferredComponentTypes::<Identity, OFFSET>,
SignalStrength: SignalStrength::<Identity, OFFSET>,
TriggerSignalEvents: TriggerSignalEvents::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ITuner as windows_core::Interface>::IID
}
}
#[cfg(feature = "Win32_System_Com")]
impl windows_core::RuntimeName for ITuner {}
windows_core::imp::define_interface!(ITunerCap, ITunerCap_Vtbl, 0xe60dfa45_8d56_4e65_a8ab_d6be9412c249);
windows_core::imp::interface_hierarchy!(ITunerCap, windows_core::IUnknown);
impl ITunerCap {
pub unsafe fn get_SupportedNetworkTypes(&self, ulcnetworktypesmax: u32, pulcnetworktypes: *mut u32, pguidnetworktypes: *mut windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).get_SupportedNetworkTypes)(windows_core::Interface::as_raw(self), ulcnetworktypesmax, pulcnetworktypes as _, pguidnetworktypes as _).ok() }
}
pub unsafe fn get_SupportedVideoFormats(&self, pulamtunermodetype: *mut u32, pulanalogvideostandard: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).get_SupportedVideoFormats)(windows_core::Interface::as_raw(self), pulamtunermodetype as _, pulanalogvideostandard as _).ok() }
}
pub unsafe fn get_AuxInputCount(&self, pulcompositecount: *mut u32, pulsvideocount: *mut u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).get_AuxInputCount)(windows_core::Interface::as_raw(self), pulcompositecount as _, pulsvideocount as _).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ITunerCap_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub get_SupportedNetworkTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32, *mut windows_core::GUID) -> windows_core::HRESULT,
pub get_SupportedVideoFormats: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub get_AuxInputCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
}
pub trait ITunerCap_Impl: windows_core::IUnknownImpl {
fn get_SupportedNetworkTypes(&self, ulcnetworktypesmax: u32, pulcnetworktypes: *mut u32, pguidnetworktypes: *mut windows_core::GUID) -> windows_core::Result<()>;
fn get_SupportedVideoFormats(&self, pulamtunermodetype: *mut u32, pulanalogvideostandard: *mut u32) -> windows_core::Result<()>;
fn get_AuxInputCount(&self, pulcompositecount: *mut u32, pulsvideocount: *mut u32) -> windows_core::Result<()>;
}
impl ITunerCap_Vtbl {
pub const fn new<Identity: ITunerCap_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn get_SupportedNetworkTypes<Identity: ITunerCap_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ulcnetworktypesmax: u32, pulcnetworktypes: *mut u32, pguidnetworktypes: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITunerCap_Impl::get_SupportedNetworkTypes(this, core::mem::transmute_copy(&ulcnetworktypesmax), core::mem::transmute_copy(&pulcnetworktypes), core::mem::transmute_copy(&pguidnetworktypes)).into()
}
}
unsafe extern "system" fn get_SupportedVideoFormats<Identity: ITunerCap_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pulamtunermodetype: *mut u32, pulanalogvideostandard: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITunerCap_Impl::get_SupportedVideoFormats(this, core::mem::transmute_copy(&pulamtunermodetype), core::mem::transmute_copy(&pulanalogvideostandard)).into()
}
}
unsafe extern "system" fn get_AuxInputCount<Identity: ITunerCap_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pulcompositecount: *mut u32, pulsvideocount: *mut u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITunerCap_Impl::get_AuxInputCount(this, core::mem::transmute_copy(&pulcompositecount), core::mem::transmute_copy(&pulsvideocount)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
get_SupportedNetworkTypes: get_SupportedNetworkTypes::<Identity, OFFSET>,
get_SupportedVideoFormats: get_SupportedVideoFormats::<Identity, OFFSET>,
get_AuxInputCount: get_AuxInputCount::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ITunerCap as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ITunerCap {}
windows_core::imp::define_interface!(ITunerCapEx, ITunerCapEx_Vtbl, 0xed3e0c66_18c8_4ea6_9300_f6841fdd35dc);
windows_core::imp::interface_hierarchy!(ITunerCapEx, windows_core::IUnknown);
impl ITunerCapEx {
pub unsafe fn Has608_708Caption(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Has608_708Caption)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ITunerCapEx_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Has608_708Caption: unsafe extern "system" fn(*mut core::ffi::c_void, *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
}
pub trait ITunerCapEx_Impl: windows_core::IUnknownImpl {
fn Has608_708Caption(&self) -> windows_core::Result<super::super::super::Foundation::VARIANT_BOOL>;
}
impl ITunerCapEx_Vtbl {
pub const fn new<Identity: ITunerCapEx_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Has608_708Caption<Identity: ITunerCapEx_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pbhascaption: *mut super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITunerCapEx_Impl::Has608_708Caption(this) {
Ok(ok__) => {
pbhascaption.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self { base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Has608_708Caption: Has608_708Caption::<Identity, OFFSET> }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ITunerCapEx as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for ITunerCapEx {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(ITuningSpace, ITuningSpace_Vtbl, 0x061c6e30_e622_11d2_9493_00c04f72d980);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for ITuningSpace {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(ITuningSpace, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl ITuningSpace {
pub unsafe fn UniqueName(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).UniqueName)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetUniqueName(&self, name: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetUniqueName)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(name)).ok() }
}
pub unsafe fn FriendlyName(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FriendlyName)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetFriendlyName(&self, name: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetFriendlyName)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(name)).ok() }
}
pub unsafe fn CLSID(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CLSID)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn NetworkType(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).NetworkType)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetNetworkType(&self, networktypeguid: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetNetworkType)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(networktypeguid)).ok() }
}
pub unsafe fn _NetworkType(&self) -> windows_core::Result<windows_core::GUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NetworkType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn Set_NetworkType(&self, networktypeguid: *const windows_core::GUID) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Set_NetworkType)(windows_core::Interface::as_raw(self), networktypeguid).ok() }
}
pub unsafe fn CreateTuneRequest(&self) -> windows_core::Result<ITuneRequest> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateTuneRequest)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn EnumCategoryGUIDs(&self) -> windows_core::Result<super::super::super::System::Com::IEnumGUID> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumCategoryGUIDs)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn EnumDeviceMonikers(&self) -> windows_core::Result<super::super::super::System::Com::IEnumMoniker> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumDeviceMonikers)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn DefaultPreferredComponentTypes(&self) -> windows_core::Result<IComponentTypes> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultPreferredComponentTypes)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetDefaultPreferredComponentTypes<P0>(&self, newcomponenttypes: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IComponentTypes>,
{
unsafe { (windows_core::Interface::vtable(self).SetDefaultPreferredComponentTypes)(windows_core::Interface::as_raw(self), newcomponenttypes.param().abi()).ok() }
}
pub unsafe fn FrequencyMapping(&self) -> windows_core::Result<windows_core::BSTR> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FrequencyMapping)(windows_core::Interface::as_raw(self), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn SetFrequencyMapping(&self, mapping: &windows_core::BSTR) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetFrequencyMapping)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(mapping)).ok() }
}
pub unsafe fn DefaultLocator(&self) -> windows_core::Result<ILocator> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).DefaultLocator)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetDefaultLocator<P0>(&self, locatorval: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<ILocator>,
{
unsafe { (windows_core::Interface::vtable(self).SetDefaultLocator)(windows_core::Interface::as_raw(self), locatorval.param().abi()).ok() }
}
pub unsafe fn Clone(&self) -> windows_core::Result<ITuningSpace> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Clone)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct ITuningSpace_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub UniqueName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetUniqueName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FriendlyName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetFriendlyName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CLSID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub NetworkType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetNetworkType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub _NetworkType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
pub Set_NetworkType: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID) -> windows_core::HRESULT,
pub CreateTuneRequest: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumCategoryGUIDs: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumDeviceMonikers: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub DefaultPreferredComponentTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetDefaultPreferredComponentTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FrequencyMapping: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetFrequencyMapping: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub DefaultLocator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetDefaultLocator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Clone: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait ITuningSpace_Impl: super::super::super::System::Com::IDispatch_Impl {
fn UniqueName(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetUniqueName(&self, name: &windows_core::BSTR) -> windows_core::Result<()>;
fn FriendlyName(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetFriendlyName(&self, name: &windows_core::BSTR) -> windows_core::Result<()>;
fn CLSID(&self) -> windows_core::Result<windows_core::BSTR>;
fn NetworkType(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetNetworkType(&self, networktypeguid: &windows_core::BSTR) -> windows_core::Result<()>;
fn _NetworkType(&self) -> windows_core::Result<windows_core::GUID>;
fn Set_NetworkType(&self, networktypeguid: *const windows_core::GUID) -> windows_core::Result<()>;
fn CreateTuneRequest(&self) -> windows_core::Result<ITuneRequest>;
fn EnumCategoryGUIDs(&self) -> windows_core::Result<super::super::super::System::Com::IEnumGUID>;
fn EnumDeviceMonikers(&self) -> windows_core::Result<super::super::super::System::Com::IEnumMoniker>;
fn DefaultPreferredComponentTypes(&self) -> windows_core::Result<IComponentTypes>;
fn SetDefaultPreferredComponentTypes(&self, newcomponenttypes: windows_core::Ref<IComponentTypes>) -> windows_core::Result<()>;
fn FrequencyMapping(&self) -> windows_core::Result<windows_core::BSTR>;
fn SetFrequencyMapping(&self, mapping: &windows_core::BSTR) -> windows_core::Result<()>;
fn DefaultLocator(&self) -> windows_core::Result<ILocator>;
fn SetDefaultLocator(&self, locatorval: windows_core::Ref<ILocator>) -> windows_core::Result<()>;
fn Clone(&self) -> windows_core::Result<ITuningSpace>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ITuningSpace_Vtbl {
pub const fn new<Identity: ITuningSpace_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn UniqueName<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, name: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::UniqueName(this) {
Ok(ok__) => {
name.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetUniqueName<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, name: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuningSpace_Impl::SetUniqueName(this, core::mem::transmute(&name)).into()
}
}
unsafe extern "system" fn FriendlyName<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, name: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::FriendlyName(this) {
Ok(ok__) => {
name.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetFriendlyName<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, name: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuningSpace_Impl::SetFriendlyName(this, core::mem::transmute(&name)).into()
}
}
unsafe extern "system" fn CLSID<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, spaceclsid: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::CLSID(this) {
Ok(ok__) => {
spaceclsid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn NetworkType<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, networktypeguid: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::NetworkType(this) {
Ok(ok__) => {
networktypeguid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetNetworkType<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, networktypeguid: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuningSpace_Impl::SetNetworkType(this, core::mem::transmute(&networktypeguid)).into()
}
}
unsafe extern "system" fn _NetworkType<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, networktypeguid: *mut windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::_NetworkType(this) {
Ok(ok__) => {
networktypeguid.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Set_NetworkType<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, networktypeguid: *const windows_core::GUID) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuningSpace_Impl::Set_NetworkType(this, core::mem::transmute_copy(&networktypeguid)).into()
}
}
unsafe extern "system" fn CreateTuneRequest<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tunerequest: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::CreateTuneRequest(this) {
Ok(ok__) => {
tunerequest.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn EnumCategoryGUIDs<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::EnumCategoryGUIDs(this) {
Ok(ok__) => {
ppenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn EnumDeviceMonikers<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::EnumDeviceMonikers(this) {
Ok(ok__) => {
ppenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn DefaultPreferredComponentTypes<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, componenttypes: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::DefaultPreferredComponentTypes(this) {
Ok(ok__) => {
componenttypes.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDefaultPreferredComponentTypes<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newcomponenttypes: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuningSpace_Impl::SetDefaultPreferredComponentTypes(this, core::mem::transmute_copy(&newcomponenttypes)).into()
}
}
unsafe extern "system" fn FrequencyMapping<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pmapping: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::FrequencyMapping(this) {
Ok(ok__) => {
pmapping.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetFrequencyMapping<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, mapping: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuningSpace_Impl::SetFrequencyMapping(this, core::mem::transmute(&mapping)).into()
}
}
unsafe extern "system" fn DefaultLocator<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, locatorval: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::DefaultLocator(this) {
Ok(ok__) => {
locatorval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetDefaultLocator<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, locatorval: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuningSpace_Impl::SetDefaultLocator(this, core::mem::transmute_copy(&locatorval)).into()
}
}
unsafe extern "system" fn Clone<Identity: ITuningSpace_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newts: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpace_Impl::Clone(this) {
Ok(ok__) => {
newts.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
UniqueName: UniqueName::<Identity, OFFSET>,
SetUniqueName: SetUniqueName::<Identity, OFFSET>,
FriendlyName: FriendlyName::<Identity, OFFSET>,
SetFriendlyName: SetFriendlyName::<Identity, OFFSET>,
CLSID: CLSID::<Identity, OFFSET>,
NetworkType: NetworkType::<Identity, OFFSET>,
SetNetworkType: SetNetworkType::<Identity, OFFSET>,
_NetworkType: _NetworkType::<Identity, OFFSET>,
Set_NetworkType: Set_NetworkType::<Identity, OFFSET>,
CreateTuneRequest: CreateTuneRequest::<Identity, OFFSET>,
EnumCategoryGUIDs: EnumCategoryGUIDs::<Identity, OFFSET>,
EnumDeviceMonikers: EnumDeviceMonikers::<Identity, OFFSET>,
DefaultPreferredComponentTypes: DefaultPreferredComponentTypes::<Identity, OFFSET>,
SetDefaultPreferredComponentTypes: SetDefaultPreferredComponentTypes::<Identity, OFFSET>,
FrequencyMapping: FrequencyMapping::<Identity, OFFSET>,
SetFrequencyMapping: SetFrequencyMapping::<Identity, OFFSET>,
DefaultLocator: DefaultLocator::<Identity, OFFSET>,
SetDefaultLocator: SetDefaultLocator::<Identity, OFFSET>,
Clone: Clone::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ITuningSpace as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for ITuningSpace {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(ITuningSpaceContainer, ITuningSpaceContainer_Vtbl, 0x5b692e84_e2f1_11d2_9493_00c04f72d980);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for ITuningSpaceContainer {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(ITuningSpaceContainer, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl ITuningSpaceContainer {
pub unsafe fn Count(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NewEnum)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn get_Item(&self, varindex: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<ITuningSpace> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varindex), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn put_Item<P1>(&self, varindex: &super::super::super::System::Variant::VARIANT, tuningspace: P1) -> windows_core::Result<()>
where
P1: windows_core::Param<ITuningSpace>,
{
unsafe { (windows_core::Interface::vtable(self).put_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varindex), tuningspace.param().abi()).ok() }
}
pub unsafe fn TuningSpacesForCLSID(&self, spaceclsid: &windows_core::BSTR) -> windows_core::Result<ITuningSpaces> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TuningSpacesForCLSID)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(spaceclsid), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn _TuningSpacesForCLSID2(&self, spaceclsid: *const windows_core::GUID) -> windows_core::Result<ITuningSpaces> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._TuningSpacesForCLSID2)(windows_core::Interface::as_raw(self), spaceclsid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn TuningSpacesForName(&self, name: &windows_core::BSTR) -> windows_core::Result<ITuningSpaces> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TuningSpacesForName)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(name), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn FindID<P0>(&self, tuningspace: P0) -> windows_core::Result<i32>
where
P0: windows_core::Param<ITuningSpace>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FindID)(windows_core::Interface::as_raw(self), tuningspace.param().abi(), &mut result__).map(|| result__)
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Add<P0>(&self, tuningspace: P0) -> windows_core::Result<super::super::super::System::Variant::VARIANT>
where
P0: windows_core::Param<ITuningSpace>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Add)(windows_core::Interface::as_raw(self), tuningspace.param().abi(), &mut result__).map(|| core::mem::transmute(result__))
}
}
pub unsafe fn EnumTuningSpaces(&self) -> windows_core::Result<IEnumTuningSpaces> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumTuningSpaces)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn Remove(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Remove)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(index)).ok() }
}
pub unsafe fn MaxCount(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).MaxCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetMaxCount(&self, maxcount: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetMaxCount)(windows_core::Interface::as_raw(self), maxcount).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct ITuningSpaceContainer_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub _NewEnum: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
_NewEnum: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub get_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
get_Item: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub put_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
put_Item: usize,
pub TuningSpacesForCLSID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub _TuningSpacesForCLSID2: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub TuningSpacesForName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FindID: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Add: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Add: usize,
pub EnumTuningSpaces: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub Remove: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
Remove: usize,
pub MaxCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub SetMaxCount: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait ITuningSpaceContainer_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> windows_core::Result<i32>;
fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn get_Item(&self, varindex: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<ITuningSpace>;
fn put_Item(&self, varindex: &super::super::super::System::Variant::VARIANT, tuningspace: windows_core::Ref<ITuningSpace>) -> windows_core::Result<()>;
fn TuningSpacesForCLSID(&self, spaceclsid: &windows_core::BSTR) -> windows_core::Result<ITuningSpaces>;
fn _TuningSpacesForCLSID2(&self, spaceclsid: *const windows_core::GUID) -> windows_core::Result<ITuningSpaces>;
fn TuningSpacesForName(&self, name: &windows_core::BSTR) -> windows_core::Result<ITuningSpaces>;
fn FindID(&self, tuningspace: windows_core::Ref<ITuningSpace>) -> windows_core::Result<i32>;
fn Add(&self, tuningspace: windows_core::Ref<ITuningSpace>) -> windows_core::Result<super::super::super::System::Variant::VARIANT>;
fn EnumTuningSpaces(&self) -> windows_core::Result<IEnumTuningSpaces>;
fn Remove(&self, index: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<()>;
fn MaxCount(&self) -> windows_core::Result<i32>;
fn SetMaxCount(&self, maxcount: i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ITuningSpaceContainer_Vtbl {
pub const fn new<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, count: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaceContainer_Impl::Count(this) {
Ok(ok__) => {
count.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _NewEnum<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaceContainer_Impl::_NewEnum(this) {
Ok(ok__) => {
newenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_Item<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varindex: super::super::super::System::Variant::VARIANT, tuningspace: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaceContainer_Impl::get_Item(this, core::mem::transmute(&varindex)) {
Ok(ok__) => {
tuningspace.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn put_Item<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varindex: super::super::super::System::Variant::VARIANT, tuningspace: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuningSpaceContainer_Impl::put_Item(this, core::mem::transmute(&varindex), core::mem::transmute_copy(&tuningspace)).into()
}
}
unsafe extern "system" fn TuningSpacesForCLSID<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, spaceclsid: *mut core::ffi::c_void, newcoll: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaceContainer_Impl::TuningSpacesForCLSID(this, core::mem::transmute(&spaceclsid)) {
Ok(ok__) => {
newcoll.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _TuningSpacesForCLSID2<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, spaceclsid: *const windows_core::GUID, newcoll: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaceContainer_Impl::_TuningSpacesForCLSID2(this, core::mem::transmute_copy(&spaceclsid)) {
Ok(ok__) => {
newcoll.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn TuningSpacesForName<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, name: *mut core::ffi::c_void, newcoll: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaceContainer_Impl::TuningSpacesForName(this, core::mem::transmute(&name)) {
Ok(ok__) => {
newcoll.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn FindID<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tuningspace: *mut core::ffi::c_void, id: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaceContainer_Impl::FindID(this, core::mem::transmute_copy(&tuningspace)) {
Ok(ok__) => {
id.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Add<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, tuningspace: *mut core::ffi::c_void, newindex: *mut super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaceContainer_Impl::Add(this, core::mem::transmute_copy(&tuningspace)) {
Ok(ok__) => {
newindex.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn EnumTuningSpaces<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaceContainer_Impl::EnumTuningSpaces(this) {
Ok(ok__) => {
ppenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn Remove<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, index: super::super::super::System::Variant::VARIANT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuningSpaceContainer_Impl::Remove(this, core::mem::transmute(&index)).into()
}
}
unsafe extern "system" fn MaxCount<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, maxcount: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaceContainer_Impl::MaxCount(this) {
Ok(ok__) => {
maxcount.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetMaxCount<Identity: ITuningSpaceContainer_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, maxcount: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
ITuningSpaceContainer_Impl::SetMaxCount(this, core::mem::transmute_copy(&maxcount)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
_NewEnum: _NewEnum::<Identity, OFFSET>,
get_Item: get_Item::<Identity, OFFSET>,
put_Item: put_Item::<Identity, OFFSET>,
TuningSpacesForCLSID: TuningSpacesForCLSID::<Identity, OFFSET>,
_TuningSpacesForCLSID2: _TuningSpacesForCLSID2::<Identity, OFFSET>,
TuningSpacesForName: TuningSpacesForName::<Identity, OFFSET>,
FindID: FindID::<Identity, OFFSET>,
Add: Add::<Identity, OFFSET>,
EnumTuningSpaces: EnumTuningSpaces::<Identity, OFFSET>,
Remove: Remove::<Identity, OFFSET>,
MaxCount: MaxCount::<Identity, OFFSET>,
SetMaxCount: SetMaxCount::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ITuningSpaceContainer as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for ITuningSpaceContainer {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(ITuningSpaces, ITuningSpaces_Vtbl, 0x901284e4_33fe_4b69_8d63_634a596f3756);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for ITuningSpaces {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(ITuningSpaces, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl ITuningSpaces {
pub unsafe fn Count(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Count)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[cfg(feature = "Win32_System_Ole")]
pub unsafe fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self)._NewEnum)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn get_Item(&self, varindex: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<ITuningSpace> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).get_Item)(windows_core::Interface::as_raw(self), core::mem::transmute_copy(varindex), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn EnumTuningSpaces(&self) -> windows_core::Result<IEnumTuningSpaces> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumTuningSpaces)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct ITuningSpaces_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Ole")]
pub _NewEnum: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Ole"))]
_NewEnum: usize,
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub get_Item: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::System::Variant::VARIANT, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
get_Item: usize,
pub EnumTuningSpaces: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait ITuningSpaces_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> windows_core::Result<i32>;
fn _NewEnum(&self) -> windows_core::Result<super::super::super::System::Ole::IEnumVARIANT>;
fn get_Item(&self, varindex: &super::super::super::System::Variant::VARIANT) -> windows_core::Result<ITuningSpace>;
fn EnumTuningSpaces(&self) -> windows_core::Result<IEnumTuningSpaces>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ITuningSpaces_Vtbl {
pub const fn new<Identity: ITuningSpaces_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Count<Identity: ITuningSpaces_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, count: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaces_Impl::Count(this) {
Ok(ok__) => {
count.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn _NewEnum<Identity: ITuningSpaces_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaces_Impl::_NewEnum(this) {
Ok(ok__) => {
newenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn get_Item<Identity: ITuningSpaces_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, varindex: super::super::super::System::Variant::VARIANT, tuningspace: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaces_Impl::get_Item(this, core::mem::transmute(&varindex)) {
Ok(ok__) => {
tuningspace.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn EnumTuningSpaces<Identity: ITuningSpaces_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, newenum: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match ITuningSpaces_Impl::EnumTuningSpaces(this) {
Ok(ok__) => {
newenum.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, OFFSET>,
_NewEnum: _NewEnum::<Identity, OFFSET>,
get_Item: get_Item::<Identity, OFFSET>,
EnumTuningSpaces: EnumTuningSpaces::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<ITuningSpaces as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for ITuningSpaces {}
windows_core::imp::define_interface!(IXDSCodec, IXDSCodec_Vtbl, 0xc4c4c4b3_0049_4e2b_98fb_9537f6ce516d);
windows_core::imp::interface_hierarchy!(IXDSCodec, windows_core::IUnknown);
impl IXDSCodec {
pub unsafe fn XDSToRatObjOK(&self) -> windows_core::Result<windows_core::HRESULT> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).XDSToRatObjOK)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn SetCCSubstreamService(&self, substreammask: i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetCCSubstreamService)(windows_core::Interface::as_raw(self), substreammask).ok() }
}
pub unsafe fn CCSubstreamService(&self) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CCSubstreamService)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
pub unsafe fn GetContentAdvisoryRating(&self, prat: *mut i32, ppktseqid: *mut i32, pcallseqid: *mut i32, ptimestart: *mut i64, ptimeend: *mut i64) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetContentAdvisoryRating)(windows_core::Interface::as_raw(self), prat as _, ppktseqid as _, pcallseqid as _, ptimestart as _, ptimeend as _).ok() }
}
pub unsafe fn GetXDSPacket(&self, pxdsclasspkt: *mut i32, pxdstypepkt: *mut i32, pbstrxdspkt: *mut windows_core::BSTR, ppktseqid: *mut i32, pcallseqid: *mut i32, ptimestart: *mut i64, ptimeend: *mut i64) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetXDSPacket)(windows_core::Interface::as_raw(self), pxdsclasspkt as _, pxdstypepkt as _, core::mem::transmute(pbstrxdspkt), ppktseqid as _, pcallseqid as _, ptimestart as _, ptimeend as _).ok() }
}
pub unsafe fn GetCurrLicenseExpDate(&self, prottype: *const ProtType) -> windows_core::Result<i32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrLicenseExpDate)(windows_core::Interface::as_raw(self), prottype, &mut result__).map(|| result__)
}
}
pub unsafe fn GetLastErrorCode(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).GetLastErrorCode)(windows_core::Interface::as_raw(self)).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IXDSCodec_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub XDSToRatObjOK: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::HRESULT) -> windows_core::HRESULT,
pub SetCCSubstreamService: unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT,
pub CCSubstreamService: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
pub GetContentAdvisoryRating: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32, *mut i32, *mut i32, *mut i64, *mut i64) -> windows_core::HRESULT,
pub GetXDSPacket: unsafe extern "system" fn(*mut core::ffi::c_void, *mut i32, *mut i32, *mut *mut core::ffi::c_void, *mut i32, *mut i32, *mut i64, *mut i64) -> windows_core::HRESULT,
pub GetCurrLicenseExpDate: unsafe extern "system" fn(*mut core::ffi::c_void, *const ProtType, *mut i32) -> windows_core::HRESULT,
pub GetLastErrorCode: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
pub trait IXDSCodec_Impl: windows_core::IUnknownImpl {
fn XDSToRatObjOK(&self) -> windows_core::Result<windows_core::HRESULT>;
fn SetCCSubstreamService(&self, substreammask: i32) -> windows_core::Result<()>;
fn CCSubstreamService(&self) -> windows_core::Result<i32>;
fn GetContentAdvisoryRating(&self, prat: *mut i32, ppktseqid: *mut i32, pcallseqid: *mut i32, ptimestart: *mut i64, ptimeend: *mut i64) -> windows_core::Result<()>;
fn GetXDSPacket(&self, pxdsclasspkt: *mut i32, pxdstypepkt: *mut i32, pbstrxdspkt: *mut windows_core::BSTR, ppktseqid: *mut i32, pcallseqid: *mut i32, ptimestart: *mut i64, ptimeend: *mut i64) -> windows_core::Result<()>;
fn GetCurrLicenseExpDate(&self, prottype: *const ProtType) -> windows_core::Result<i32>;
fn GetLastErrorCode(&self) -> windows_core::Result<()>;
}
impl IXDSCodec_Vtbl {
pub const fn new<Identity: IXDSCodec_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn XDSToRatObjOK<Identity: IXDSCodec_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, phrcocreateretval: *mut windows_core::HRESULT) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IXDSCodec_Impl::XDSToRatObjOK(this) {
Ok(ok__) => {
phrcocreateretval.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetCCSubstreamService<Identity: IXDSCodec_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, substreammask: i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IXDSCodec_Impl::SetCCSubstreamService(this, core::mem::transmute_copy(&substreammask)).into()
}
}
unsafe extern "system" fn CCSubstreamService<Identity: IXDSCodec_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, psubstreammask: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IXDSCodec_Impl::CCSubstreamService(this) {
Ok(ok__) => {
psubstreammask.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetContentAdvisoryRating<Identity: IXDSCodec_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prat: *mut i32, ppktseqid: *mut i32, pcallseqid: *mut i32, ptimestart: *mut i64, ptimeend: *mut i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IXDSCodec_Impl::GetContentAdvisoryRating(this, core::mem::transmute_copy(&prat), core::mem::transmute_copy(&ppktseqid), core::mem::transmute_copy(&pcallseqid), core::mem::transmute_copy(&ptimestart), core::mem::transmute_copy(&ptimeend)).into()
}
}
unsafe extern "system" fn GetXDSPacket<Identity: IXDSCodec_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, pxdsclasspkt: *mut i32, pxdstypepkt: *mut i32, pbstrxdspkt: *mut *mut core::ffi::c_void, ppktseqid: *mut i32, pcallseqid: *mut i32, ptimestart: *mut i64, ptimeend: *mut i64) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IXDSCodec_Impl::GetXDSPacket(this, core::mem::transmute_copy(&pxdsclasspkt), core::mem::transmute_copy(&pxdstypepkt), core::mem::transmute_copy(&pbstrxdspkt), core::mem::transmute_copy(&ppktseqid), core::mem::transmute_copy(&pcallseqid), core::mem::transmute_copy(&ptimestart), core::mem::transmute_copy(&ptimeend)).into()
}
}
unsafe extern "system" fn GetCurrLicenseExpDate<Identity: IXDSCodec_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, prottype: *const ProtType, lpdatetime: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IXDSCodec_Impl::GetCurrLicenseExpDate(this, core::mem::transmute_copy(&prottype)) {
Ok(ok__) => {
lpdatetime.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetLastErrorCode<Identity: IXDSCodec_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IXDSCodec_Impl::GetLastErrorCode(this).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
XDSToRatObjOK: XDSToRatObjOK::<Identity, OFFSET>,
SetCCSubstreamService: SetCCSubstreamService::<Identity, OFFSET>,
CCSubstreamService: CCSubstreamService::<Identity, OFFSET>,
GetContentAdvisoryRating: GetContentAdvisoryRating::<Identity, OFFSET>,
GetXDSPacket: GetXDSPacket::<Identity, OFFSET>,
GetCurrLicenseExpDate: GetCurrLicenseExpDate::<Identity, OFFSET>,
GetLastErrorCode: GetLastErrorCode::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IXDSCodec as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IXDSCodec {}
windows_core::imp::define_interface!(IXDSCodecConfig, IXDSCodecConfig_Vtbl, 0xc4c4c4d3_0049_4e2b_98fb_9537f6ce516d);
windows_core::imp::interface_hierarchy!(IXDSCodecConfig, windows_core::IUnknown);
impl IXDSCodecConfig {
pub unsafe fn GetSecureChannelObject(&self) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSecureChannelObject)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn SetPauseBufferTime(&self, dwpausebuffertime: u32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).SetPauseBufferTime)(windows_core::Interface::as_raw(self), dwpausebuffertime).ok() }
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IXDSCodecConfig_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetSecureChannelObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetPauseBufferTime: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
}
pub trait IXDSCodecConfig_Impl: windows_core::IUnknownImpl {
fn GetSecureChannelObject(&self) -> windows_core::Result<windows_core::IUnknown>;
fn SetPauseBufferTime(&self, dwpausebuffertime: u32) -> windows_core::Result<()>;
}
impl IXDSCodecConfig_Vtbl {
pub const fn new<Identity: IXDSCodecConfig_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetSecureChannelObject<Identity: IXDSCodecConfig_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, ppunkdrmsecurechannel: *mut *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IXDSCodecConfig_Impl::GetSecureChannelObject(this) {
Ok(ok__) => {
ppunkdrmsecurechannel.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn SetPauseBufferTime<Identity: IXDSCodecConfig_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, dwpausebuffertime: u32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IXDSCodecConfig_Impl::SetPauseBufferTime(this, core::mem::transmute_copy(&dwpausebuffertime)).into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSecureChannelObject: GetSecureChannelObject::<Identity, OFFSET>,
SetPauseBufferTime: SetPauseBufferTime::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IXDSCodecConfig as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IXDSCodecConfig {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IXDSCodecEvents, IXDSCodecEvents_Vtbl, 0xc4c4c4c3_0049_4e2b_98fb_9537f6ce516d);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IXDSCodecEvents {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IXDSCodecEvents, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IXDSCodecEvents_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IXDSCodecEvents_Impl: super::super::super::System::Com::IDispatch_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IXDSCodecEvents_Vtbl {
pub const fn new<Identity: IXDSCodecEvents_Impl, const OFFSET: isize>() -> Self {
Self { base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IXDSCodecEvents as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IXDSCodecEvents {}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(IXDSToRat, IXDSToRat_Vtbl, 0xc5c5c5b0_3abc_11d6_b25b_00c04fa0c026);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for IXDSToRat {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(IXDSToRat, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
impl IXDSToRat {
pub unsafe fn Init(&self) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).Init)(windows_core::Interface::as_raw(self)).ok() }
}
pub unsafe fn ParseXDSBytePair(&self, byte1: u8, byte2: u8, pensystem: *mut EnTvRat_System, penlevel: *mut EnTvRat_GenericLevel, plbfenattributes: *mut i32) -> windows_core::Result<()> {
unsafe { (windows_core::Interface::vtable(self).ParseXDSBytePair)(windows_core::Interface::as_raw(self), byte1, byte2, pensystem as _, penlevel as _, plbfenattributes as _).ok() }
}
}
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct IXDSToRat_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
pub Init: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ParseXDSBytePair: unsafe extern "system" fn(*mut core::ffi::c_void, u8, u8, *mut EnTvRat_System, *mut EnTvRat_GenericLevel, *mut i32) -> windows_core::HRESULT,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IXDSToRat_Impl: super::super::super::System::Com::IDispatch_Impl {
fn Init(&self) -> windows_core::Result<()>;
fn ParseXDSBytePair(&self, byte1: u8, byte2: u8, pensystem: *mut EnTvRat_System, penlevel: *mut EnTvRat_GenericLevel, plbfenattributes: *mut i32) -> windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IXDSToRat_Vtbl {
pub const fn new<Identity: IXDSToRat_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn Init<Identity: IXDSToRat_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IXDSToRat_Impl::Init(this).into()
}
}
unsafe extern "system" fn ParseXDSBytePair<Identity: IXDSToRat_Impl, const OFFSET: isize>(this: *mut core::ffi::c_void, byte1: u8, byte2: u8, pensystem: *mut EnTvRat_System, penlevel: *mut EnTvRat_GenericLevel, plbfenattributes: *mut i32) -> windows_core::HRESULT {
unsafe {
let this: &Identity = &*((this as *const *const ()).offset(OFFSET) as *const Identity);
IXDSToRat_Impl::ParseXDSBytePair(this, core::mem::transmute_copy(&byte1), core::mem::transmute_copy(&byte2), core::mem::transmute_copy(&pensystem), core::mem::transmute_copy(&penlevel), core::mem::transmute_copy(&plbfenattributes)).into()
}
}
Self {
base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>(),
Init: Init::<Identity, OFFSET>,
ParseXDSBytePair: ParseXDSBytePair::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IXDSToRat as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for IXDSToRat {}
pub const KSCATEGORY_BDA_IP_SINK: windows_core::GUID = windows_core::GUID::from_u128(0x71985f4a_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSCATEGORY_BDA_NETWORK_EPG: windows_core::GUID = windows_core::GUID::from_u128(0x71985f49_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSCATEGORY_BDA_NETWORK_PROVIDER: windows_core::GUID = windows_core::GUID::from_u128(0x71985f4b_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSCATEGORY_BDA_NETWORK_TUNER: windows_core::GUID = windows_core::GUID::from_u128(0x71985f48_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSCATEGORY_BDA_RECEIVER_COMPONENT: windows_core::GUID = windows_core::GUID::from_u128(0xfd0a5af4_b41d_11d2_9c95_00c04f7971e0);
pub const KSCATEGORY_BDA_TRANSPORT_INFORMATION: windows_core::GUID = windows_core::GUID::from_u128(0xa2e3074f_6c3d_11d3_b653_00c04f79498e);
pub const KSDATAFORMAT_SPECIFIER_BDA_IP: windows_core::GUID = windows_core::GUID::from_u128(0x6b891420_db09_11d2_8f32_00c04f7971e2);
pub const KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT: windows_core::GUID = windows_core::GUID::from_u128(0x8deda6fd_ac5f_4334_8ecf_a4ba8fa7d0f0);
pub const KSDATAFORMAT_SUBTYPE_ATSC_SI: windows_core::GUID = windows_core::GUID::from_u128(0xb3c7397c_d303_414d_b33c_4ed2c9d29733);
pub const KSDATAFORMAT_SUBTYPE_BDA_IP: windows_core::GUID = windows_core::GUID::from_u128(0x5a9a213c_db08_11d2_8f32_00c04f7971e2);
pub const KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL: windows_core::GUID = windows_core::GUID::from_u128(0x499856e8_e85b_48ed_9bea_410d0dd4ef81);
pub const KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT: windows_core::GUID = windows_core::GUID::from_u128(0xf4aeb342_0329_4fdd_a8fd_4aff4926c978);
pub const KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP: windows_core::GUID = windows_core::GUID::from_u128(0x951727db_d2ce_4528_96f6_3301fabb2de0);
pub const KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP: windows_core::GUID = windows_core::GUID::from_u128(0x762e3f66_336f_48d1_bf83_2b00352c11f0);
pub const KSDATAFORMAT_SUBTYPE_DVB_SI: windows_core::GUID = windows_core::GUID::from_u128(0xe9dd31a3_221d_4adb_8532_9af309c1a408);
pub const KSDATAFORMAT_SUBTYPE_ISDB_SI: windows_core::GUID = windows_core::GUID::from_u128(0x4a2eeb99_6458_4538_b187_04017c41413f);
pub const KSDATAFORMAT_SUBTYPE_PBDA_TRANSPORT_RAW: windows_core::GUID = windows_core::GUID::from_u128(0x0d7aed42_cb9a_11db_9705_005056c00008);
pub const KSDATAFORMAT_TYPE_BDA_ANTENNA: windows_core::GUID = windows_core::GUID::from_u128(0x71985f41_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSDATAFORMAT_TYPE_BDA_IF_SIGNAL: windows_core::GUID = windows_core::GUID::from_u128(0x61be0b47_a5eb_499b_9a85_5b16c07f1258);
pub const KSDATAFORMAT_TYPE_BDA_IP: windows_core::GUID = windows_core::GUID::from_u128(0xe25f7b8e_cccc_11d2_8f25_00c04f7971e2);
pub const KSDATAFORMAT_TYPE_BDA_IP_CONTROL: windows_core::GUID = windows_core::GUID::from_u128(0xdadd5799_7d5b_4b63_80fb_d1442f26b621);
pub const KSDATAFORMAT_TYPE_MPE: windows_core::GUID = windows_core::GUID::from_u128(0x455f176c_4b06_47ce_9aef_8caef73df7b5);
pub const KSDATAFORMAT_TYPE_MPEG2_SECTIONS: windows_core::GUID = windows_core::GUID::from_u128(0x455f176c_4b06_47ce_9aef_8caef73df7b5);
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSEVENTDATA_BDA_RF_TUNER_SCAN_S {
pub EventData: super::super::KernelStreaming::KSEVENTDATA,
pub StartFrequency: u32,
pub EndFrequency: u32,
pub LockRequested: BDA_LockType,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSEVENTDATA_BDA_RF_TUNER_SCAN_S {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const KSEVENTSETID_BdaCAEvent: windows_core::GUID = windows_core::GUID::from_u128(0x488c4ccc_b768_4129_8eb1_b00a071f9068);
pub const KSEVENTSETID_BdaDiseqCEvent: windows_core::GUID = windows_core::GUID::from_u128(0x8b19bbf0_4184_43ac_ad3c_0c889be4c212);
pub const KSEVENTSETID_BdaEvent: windows_core::GUID = windows_core::GUID::from_u128(0xae7e55b2_96d7_4e29_908f_62f95b2a1679);
pub const KSEVENTSETID_BdaPinEvent: windows_core::GUID = windows_core::GUID::from_u128(0x104781cd_50bd_40d5_95fb_087e0e86a591);
pub const KSEVENTSETID_BdaTunerEvent: windows_core::GUID = windows_core::GUID::from_u128(0xaab59e17_01c9_4ebf_93f2_fc3b79b46f91);
pub const KSEVENT_BDA_CA_MODULE_STATUS_CHANGED: KSPROPERTY_BDA_CA_EVENT = KSPROPERTY_BDA_CA_EVENT(1i32);
pub const KSEVENT_BDA_CA_MODULE_UI_REQUESTED: KSPROPERTY_BDA_CA_EVENT = KSPROPERTY_BDA_CA_EVENT(3i32);
pub const KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED: KSPROPERTY_BDA_CA_EVENT = KSPROPERTY_BDA_CA_EVENT(2i32);
pub const KSEVENT_BDA_DISEQC_DATA_RECEIVED: KSPROPERTY_BDA_DISEQC_EVENT = KSPROPERTY_BDA_DISEQC_EVENT(0i32);
pub const KSEVENT_BDA_EVENT_PENDINGEVENT: KSEVENT_BDA_EVENT_TYPE = KSEVENT_BDA_EVENT_TYPE(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSEVENT_BDA_EVENT_TYPE(pub i32);
pub const KSEVENT_BDA_PIN_CONNECTED: KSPROPERTY_BDA_PIN_EVENT = KSPROPERTY_BDA_PIN_EVENT(0i32);
pub const KSEVENT_BDA_PIN_DISCONNECTED: KSPROPERTY_BDA_PIN_EVENT = KSPROPERTY_BDA_PIN_EVENT(1i32);
pub const KSEVENT_BDA_PROGRAM_FLOW_STATUS_CHANGED: KSPROPERTY_BDA_CA_EVENT = KSPROPERTY_BDA_CA_EVENT(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSEVENT_BDA_TUNER(pub i32);
pub const KSEVENT_BDA_TUNER_SCAN: KSEVENT_BDA_TUNER = KSEVENT_BDA_TUNER(0i32);
pub const KSMETHODSETID_BdaChangeSync: windows_core::GUID = windows_core::GUID::from_u128(0xfd0a5af3_b41d_11d2_9c95_00c04f7971e0);
pub const KSMETHODSETID_BdaConditionalAccessService: windows_core::GUID = windows_core::GUID::from_u128(0x10ced3b4_320b_41bf_9824_1b2e68e71eb9);
pub const KSMETHODSETID_BdaDebug: windows_core::GUID = windows_core::GUID::from_u128(0x0d4a90ec_c69d_4ee2_8c5a_fb1f63a50da1);
pub const KSMETHODSETID_BdaDeviceConfiguration: windows_core::GUID = windows_core::GUID::from_u128(0x71985f45_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSMETHODSETID_BdaDrmService: windows_core::GUID = windows_core::GUID::from_u128(0xbff6b5bb_b0ae_484c_9dca_73528fb0b46e);
pub const KSMETHODSETID_BdaEventing: windows_core::GUID = windows_core::GUID::from_u128(0xf99492da_6193_4eb0_8690_6686cbff713e);
pub const KSMETHODSETID_BdaGuideDataDeliveryService: windows_core::GUID = windows_core::GUID::from_u128(0x8d9d5562_1589_417d_99ce_ac531dda19f9);
pub const KSMETHODSETID_BdaIsdbConditionalAccess: windows_core::GUID = windows_core::GUID::from_u128(0x5e68c627_16c2_4e6c_b1e2_d00170cdaa0f);
pub const KSMETHODSETID_BdaMux: windows_core::GUID = windows_core::GUID::from_u128(0x942aafec_4c05_4c74_b8eb_8706c2a4943f);
pub const KSMETHODSETID_BdaNameValue: windows_core::GUID = windows_core::GUID::from_u128(0x36e07304_9f0d_4e88_9118_ac0ba317b7f2);
pub const KSMETHODSETID_BdaNameValueA: windows_core::GUID = windows_core::GUID::from_u128(0x0c24096d_5ff5_47de_a856_062e587e3727);
pub const KSMETHODSETID_BdaScanning: windows_core::GUID = windows_core::GUID::from_u128(0x12eb49df_6249_47f3_b190_e21e6e2f8a9c);
pub const KSMETHODSETID_BdaTSSelector: windows_core::GUID = windows_core::GUID::from_u128(0x1dcfafe9_b45e_41b3_bb2a_561eb129ae98);
pub const KSMETHODSETID_BdaTuner: windows_core::GUID = windows_core::GUID::from_u128(0xb774102f_ac07_478a_8228_2742d961fa7e);
pub const KSMETHODSETID_BdaUserActivity: windows_core::GUID = windows_core::GUID::from_u128(0xeda5c834_4531_483c_be0a_94e6c96ff396);
pub const KSMETHODSETID_BdaWmdrmSession: windows_core::GUID = windows_core::GUID::from_u128(0x4be6fa3d_07cd_4139_8b80_8c18ba3aec88);
pub const KSMETHODSETID_BdaWmdrmTuner: windows_core::GUID = windows_core::GUID::from_u128(0x86d979cf_a8a7_4f94_b5fb_14c0aca68fe6);
pub const KSMETHOD_BDA_CAS_CHECKENTITLEMENTTOKEN: KSMETHOD_BDA_CAS_SERVICE = KSMETHOD_BDA_CAS_SERVICE(0i32);
pub const KSMETHOD_BDA_CAS_CLOSEMMIDIALOG: KSMETHOD_BDA_CAS_SERVICE = KSMETHOD_BDA_CAS_SERVICE(3i32);
pub const KSMETHOD_BDA_CAS_OPENBROADCASTMMI: KSMETHOD_BDA_CAS_SERVICE = KSMETHOD_BDA_CAS_SERVICE(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_CAS_SERVICE(pub i32);
pub const KSMETHOD_BDA_CAS_SETCAPTURETOKEN: KSMETHOD_BDA_CAS_SERVICE = KSMETHOD_BDA_CAS_SERVICE(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_CHANGE_SYNC(pub i32);
pub const KSMETHOD_BDA_CHECK_CHANGES: KSMETHOD_BDA_CHANGE_SYNC = KSMETHOD_BDA_CHANGE_SYNC(1i32);
pub const KSMETHOD_BDA_COMMIT_CHANGES: KSMETHOD_BDA_CHANGE_SYNC = KSMETHOD_BDA_CHANGE_SYNC(2i32);
pub const KSMETHOD_BDA_CREATE_PIN_FACTORY: KSMETHOD_BDA_DEVICE_CONFIGURATION = KSMETHOD_BDA_DEVICE_CONFIGURATION(0i32);
pub const KSMETHOD_BDA_CREATE_TOPOLOGY: KSMETHOD_BDA_DEVICE_CONFIGURATION = KSMETHOD_BDA_DEVICE_CONFIGURATION(2i32);
pub const KSMETHOD_BDA_DEBUG_DATA: KSMETHOD_BDA_DEBUG_SERVICE = KSMETHOD_BDA_DEBUG_SERVICE(1i32);
pub const KSMETHOD_BDA_DEBUG_LEVEL: KSMETHOD_BDA_DEBUG_SERVICE = KSMETHOD_BDA_DEBUG_SERVICE(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_DEBUG_SERVICE(pub i32);
pub const KSMETHOD_BDA_DELETE_PIN_FACTORY: KSMETHOD_BDA_DEVICE_CONFIGURATION = KSMETHOD_BDA_DEVICE_CONFIGURATION(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_DEVICE_CONFIGURATION(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_DRM(pub i32);
pub const KSMETHOD_BDA_DRM_CURRENT: KSMETHOD_BDA_DRM = KSMETHOD_BDA_DRM(0i32);
pub const KSMETHOD_BDA_DRM_DRMSTATUS: KSMETHOD_BDA_DRM = KSMETHOD_BDA_DRM(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_EVENTING_SERVICE(pub i32);
pub const KSMETHOD_BDA_EVENT_COMPLETE: KSMETHOD_BDA_EVENTING_SERVICE = KSMETHOD_BDA_EVENTING_SERVICE(1i32);
pub const KSMETHOD_BDA_EVENT_DATA: KSMETHOD_BDA_EVENTING_SERVICE = KSMETHOD_BDA_EVENTING_SERVICE(0i32);
pub const KSMETHOD_BDA_GDDS_DATA: KSMETHOD_BDA_GDDS_SERVICE = KSMETHOD_BDA_GDDS_SERVICE(1i32);
pub const KSMETHOD_BDA_GDDS_DATATYPE: KSMETHOD_BDA_GDDS_SERVICE = KSMETHOD_BDA_GDDS_SERVICE(0i32);
pub const KSMETHOD_BDA_GDDS_DATAUPDATE: KSMETHOD_BDA_GDDS_SERVICE = KSMETHOD_BDA_GDDS_SERVICE(5i32);
pub const KSMETHOD_BDA_GDDS_GETSERVICES: KSMETHOD_BDA_GDDS_SERVICE = KSMETHOD_BDA_GDDS_SERVICE(3i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_GDDS_SERVICE(pub i32);
pub const KSMETHOD_BDA_GDDS_SERVICEFROMTUNEXML: KSMETHOD_BDA_GDDS_SERVICE = KSMETHOD_BDA_GDDS_SERVICE(4i32);
pub const KSMETHOD_BDA_GDDS_TUNEXMLFROMIDX: KSMETHOD_BDA_GDDS_SERVICE = KSMETHOD_BDA_GDDS_SERVICE(2i32);
pub const KSMETHOD_BDA_GET_CHANGE_STATE: KSMETHOD_BDA_CHANGE_SYNC = KSMETHOD_BDA_CHANGE_SYNC(3i32);
pub const KSMETHOD_BDA_GPNV_GETVALUE: KSMETHOD_BDA_GPNV_SERVICE = KSMETHOD_BDA_GPNV_SERVICE(0i32);
pub const KSMETHOD_BDA_GPNV_GETVALUEUPDATENAME: KSMETHOD_BDA_GPNV_SERVICE = KSMETHOD_BDA_GPNV_SERVICE(3i32);
pub const KSMETHOD_BDA_GPNV_NAMEFROMINDEX: KSMETHOD_BDA_GPNV_SERVICE = KSMETHOD_BDA_GPNV_SERVICE(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_GPNV_SERVICE(pub i32);
pub const KSMETHOD_BDA_GPNV_SETVALUE: KSMETHOD_BDA_GPNV_SERVICE = KSMETHOD_BDA_GPNV_SERVICE(1i32);
pub const KSMETHOD_BDA_ISDBCAS_RESPONSEDATA: KSMETHOD_BDA_ISDB_CAS = KSMETHOD_BDA_ISDB_CAS(1i32);
pub const KSMETHOD_BDA_ISDBCAS_SETREQUEST: KSMETHOD_BDA_ISDB_CAS = KSMETHOD_BDA_ISDB_CAS(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_ISDB_CAS(pub i32);
pub const KSMETHOD_BDA_MUX_GETPIDLIST: KSMETHOD_BDA_MUX_SERVICE = KSMETHOD_BDA_MUX_SERVICE(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_MUX_SERVICE(pub i32);
pub const KSMETHOD_BDA_MUX_SETPIDLIST: KSMETHOD_BDA_MUX_SERVICE = KSMETHOD_BDA_MUX_SERVICE(1i32);
pub const KSMETHOD_BDA_SCANNING_STATE: KSMETHOD_BDA_SCAN_SERVICE = KSMETHOD_BDA_SCAN_SERVICE(1i32);
pub const KSMETHOD_BDA_SCAN_CAPABILTIES: KSMETHOD_BDA_SCAN_SERVICE = KSMETHOD_BDA_SCAN_SERVICE(0i32);
pub const KSMETHOD_BDA_SCAN_FILTER: KSMETHOD_BDA_SCAN_SERVICE = KSMETHOD_BDA_SCAN_SERVICE(2i32);
pub const KSMETHOD_BDA_SCAN_RESUME: KSMETHOD_BDA_SCAN_SERVICE = KSMETHOD_BDA_SCAN_SERVICE(4i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_SCAN_SERVICE(pub i32);
pub const KSMETHOD_BDA_SCAN_START: KSMETHOD_BDA_SCAN_SERVICE = KSMETHOD_BDA_SCAN_SERVICE(3i32);
pub const KSMETHOD_BDA_SCAN_STOP: KSMETHOD_BDA_SCAN_SERVICE = KSMETHOD_BDA_SCAN_SERVICE(5i32);
pub const KSMETHOD_BDA_START_CHANGES: KSMETHOD_BDA_CHANGE_SYNC = KSMETHOD_BDA_CHANGE_SYNC(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_TS_SELECTOR(pub i32);
pub const KSMETHOD_BDA_TS_SELECTOR_GETTSINFORMATION: KSMETHOD_BDA_TS_SELECTOR = KSMETHOD_BDA_TS_SELECTOR(1i32);
pub const KSMETHOD_BDA_TS_SELECTOR_SETTSID: KSMETHOD_BDA_TS_SELECTOR = KSMETHOD_BDA_TS_SELECTOR(0i32);
pub const KSMETHOD_BDA_TUNER_GETTUNERSTATE: KSMETHOD_BDA_TUNER_SERVICE = KSMETHOD_BDA_TUNER_SERVICE(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_TUNER_SERVICE(pub i32);
pub const KSMETHOD_BDA_TUNER_SETTUNER: KSMETHOD_BDA_TUNER_SERVICE = KSMETHOD_BDA_TUNER_SERVICE(0i32);
pub const KSMETHOD_BDA_TUNER_SIGNALNOISERATIO: KSMETHOD_BDA_TUNER_SERVICE = KSMETHOD_BDA_TUNER_SERVICE(2i32);
pub const KSMETHOD_BDA_USERACTIVITY_DETECTED: KSMETHOD_BDA_USERACTIVITY_SERVICE = KSMETHOD_BDA_USERACTIVITY_SERVICE(2i32);
pub const KSMETHOD_BDA_USERACTIVITY_INTERVAL: KSMETHOD_BDA_USERACTIVITY_SERVICE = KSMETHOD_BDA_USERACTIVITY_SERVICE(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_USERACTIVITY_SERVICE(pub i32);
pub const KSMETHOD_BDA_USERACTIVITY_USEREASON: KSMETHOD_BDA_USERACTIVITY_SERVICE = KSMETHOD_BDA_USERACTIVITY_SERVICE(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_WMDRM(pub i32);
pub const KSMETHOD_BDA_WMDRMTUNER_CANCELCAPTURETOKEN: KSMETHOD_BDA_WMDRM_TUNER = KSMETHOD_BDA_WMDRM_TUNER(0i32);
pub const KSMETHOD_BDA_WMDRMTUNER_GETPIDPROTECTION: KSMETHOD_BDA_WMDRM_TUNER = KSMETHOD_BDA_WMDRM_TUNER(2i32);
pub const KSMETHOD_BDA_WMDRMTUNER_PURCHASE_ENTITLEMENT: KSMETHOD_BDA_WMDRM_TUNER = KSMETHOD_BDA_WMDRM_TUNER(5i32);
pub const KSMETHOD_BDA_WMDRMTUNER_SETPIDPROTECTION: KSMETHOD_BDA_WMDRM_TUNER = KSMETHOD_BDA_WMDRM_TUNER(1i32);
pub const KSMETHOD_BDA_WMDRMTUNER_SETSYNCVALUE: KSMETHOD_BDA_WMDRM_TUNER = KSMETHOD_BDA_WMDRM_TUNER(3i32);
pub const KSMETHOD_BDA_WMDRMTUNER_STARTCODEPROFILE: KSMETHOD_BDA_WMDRM_TUNER = KSMETHOD_BDA_WMDRM_TUNER(4i32);
pub const KSMETHOD_BDA_WMDRM_CRL: KSMETHOD_BDA_WMDRM = KSMETHOD_BDA_WMDRM(2i32);
pub const KSMETHOD_BDA_WMDRM_KEYINFO: KSMETHOD_BDA_WMDRM = KSMETHOD_BDA_WMDRM(7i32);
pub const KSMETHOD_BDA_WMDRM_LICENSE: KSMETHOD_BDA_WMDRM = KSMETHOD_BDA_WMDRM(6i32);
pub const KSMETHOD_BDA_WMDRM_MESSAGE: KSMETHOD_BDA_WMDRM = KSMETHOD_BDA_WMDRM(3i32);
pub const KSMETHOD_BDA_WMDRM_REISSUELICENSE: KSMETHOD_BDA_WMDRM = KSMETHOD_BDA_WMDRM(4i32);
pub const KSMETHOD_BDA_WMDRM_RENEWLICENSE: KSMETHOD_BDA_WMDRM = KSMETHOD_BDA_WMDRM(5i32);
pub const KSMETHOD_BDA_WMDRM_REVINFO: KSMETHOD_BDA_WMDRM = KSMETHOD_BDA_WMDRM(1i32);
pub const KSMETHOD_BDA_WMDRM_STATUS: KSMETHOD_BDA_WMDRM = KSMETHOD_BDA_WMDRM(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSMETHOD_BDA_WMDRM_TUNER(pub i32);
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_BUFFER {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulBufferSize: u32,
pub argbBuffer: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_BUFFER {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_CAS_CAPTURETOKEN {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulTokenLength: u32,
pub argbToken: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_CAS_CAPTURETOKEN {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_CAS_CLOSEMMIDIALOG {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulDialogRequest: u32,
pub cLanguage: [i8; 12],
pub ulDialogNumber: u32,
pub ulReason: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_CAS_CLOSEMMIDIALOG {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_CAS_ENTITLEMENTTOKEN {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulDialogRequest: u32,
pub cLanguage: [i8; 12],
pub ulRequestType: u32,
pub ulEntitlementTokenLen: u32,
pub argbEntitlementToken: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_CAS_ENTITLEMENTTOKEN {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_CAS_OPENBROADCASTMMI {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulDialogRequest: u32,
pub cLanguage: [i8; 12],
pub ulEventId: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_CAS_OPENBROADCASTMMI {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_DEBUG_LEVEL {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub ucDebugLevel: u8,
pub ulDebugStringSize: u32,
pub argbDebugString: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_DEBUG_LEVEL {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_DRM_SETDRM {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub NewDRMuuid: windows_core::GUID,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_DRM_SETDRM {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_EVENT_COMPLETE {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub ulEventID: u32,
pub ulEventResult: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_EVENT_COMPLETE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_GDDS_SERVICEFROMTUNEXML {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub ulTuneXmlLength: u32,
pub argbTuneXml: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_GDDS_SERVICEFROMTUNEXML {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_GDDS_TUNEXMLFROMIDX {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub ulIdx: u64,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_GDDS_TUNEXMLFROMIDX {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_GPNV_GETVALUE {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub ulNameLength: u32,
pub cLanguage: [i8; 12],
pub argbData: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_GPNV_GETVALUE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_GPNV_NAMEINDEX {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub ulValueNameIndex: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_GPNV_NAMEINDEX {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_GPNV_SETVALUE {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub ulDialogRequest: u32,
pub cLanguage: [i8; 12],
pub ulNameLength: u32,
pub ulValueLength: u32,
pub argbName: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_GPNV_SETVALUE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_ISDBCAS_REQUEST {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulRequestID: u32,
pub ulIsdbCommandSize: u32,
pub argbIsdbCommandData: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_ISDBCAS_REQUEST {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_PIN {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub Anonymous: KSM_BDA_PIN_0,
pub Reserved: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_PIN {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub union KSM_BDA_PIN_0 {
pub PinId: u32,
pub PinType: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_PIN_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_PIN_PAIR {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub Anonymous1: KSM_BDA_PIN_PAIR_0,
pub Anonymous2: KSM_BDA_PIN_PAIR_1,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_PIN_PAIR {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub union KSM_BDA_PIN_PAIR_0 {
pub InputPinId: u32,
pub InputPinType: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_PIN_PAIR_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub union KSM_BDA_PIN_PAIR_1 {
pub OutputPinId: u32,
pub OutputPinType: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_PIN_PAIR_1 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_SCAN_CAPABILTIES {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub uuidBroadcastStandard: windows_core::GUID,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_SCAN_CAPABILTIES {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_SCAN_FILTER {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub ulScanModulationTypeSize: u32,
pub AnalogVideoStandards: u64,
pub argbScanModulationTypes: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_SCAN_FILTER {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_SCAN_START {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub LowerFrequency: u32,
pub HigherFrequency: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_SCAN_START {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_TS_SELECTOR_SETTSID {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub usTSID: u16,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_TS_SELECTOR_SETTSID {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_TUNER_TUNEREQUEST {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub ulTuneLength: u32,
pub argbTuneData: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_TUNER_TUNEREQUEST {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_USERACTIVITY_USEREASON {
pub Method: super::super::KernelStreaming::KSIDENTIFIER,
pub ulUseReason: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_USERACTIVITY_USEREASON {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_WMDRMTUNER_GETPIDPROTECTION {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulPID: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_WMDRMTUNER_GETPIDPROTECTION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_WMDRMTUNER_PURCHASEENTITLEMENT {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulDialogRequest: u32,
pub cLanguage: [i8; 12],
pub ulPurchaseTokenLength: u32,
pub argbDataBuffer: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_WMDRMTUNER_PURCHASEENTITLEMENT {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_WMDRMTUNER_SETPIDPROTECTION {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulPID: u32,
pub uuidKeyID: windows_core::GUID,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_WMDRMTUNER_SETPIDPROTECTION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_WMDRMTUNER_SYNCVALUE {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulSyncValue: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_WMDRMTUNER_SYNCVALUE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_WMDRM_LICENSE {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub uuidKeyID: windows_core::GUID,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_WMDRM_LICENSE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSM_BDA_WMDRM_RENEWLICENSE {
pub NodeMethod: super::super::KernelStreaming::KSM_NODE,
pub ulXMRLicenseLength: u32,
pub ulEntitlementTokenLength: u32,
pub argbDataBuffer: [u8; 1],
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSM_BDA_WMDRM_RENEWLICENSE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const KSNODE_BDA_8PSK_DEMODULATOR: windows_core::GUID = windows_core::GUID::from_u128(0xe957a0e7_dd98_4a3c_810b_3525157ab62e);
pub const KSNODE_BDA_8VSB_DEMODULATOR: windows_core::GUID = windows_core::GUID::from_u128(0x71985f4f_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSNODE_BDA_ANALOG_DEMODULATOR: windows_core::GUID = windows_core::GUID::from_u128(0x634db199_27dd_46b8_acfb_ecc98e61a2ad);
pub const KSNODE_BDA_COFDM_DEMODULATOR: windows_core::GUID = windows_core::GUID::from_u128(0x2dac6e05_edbe_4b9c_b387_1b6fad7d6495);
pub const KSNODE_BDA_COMMON_CA_POD: windows_core::GUID = windows_core::GUID::from_u128(0xd83ef8fc_f3b8_45ab_8b71_ecf7c339deb4);
pub const KSNODE_BDA_DRI_DRM: windows_core::GUID = windows_core::GUID::from_u128(0x4f95ad74_cefb_42d2_94a9_68c5b2c1aabe);
pub const KSNODE_BDA_IP_SINK: windows_core::GUID = windows_core::GUID::from_u128(0x71985f4e_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSNODE_BDA_ISDB_S_DEMODULATOR: windows_core::GUID = windows_core::GUID::from_u128(0xedde230a_9086_432d_b8a5_6670263807e9);
pub const KSNODE_BDA_ISDB_T_DEMODULATOR: windows_core::GUID = windows_core::GUID::from_u128(0xfcea3ae3_2cb2_464d_8f5d_305c0bb778a2);
pub const KSNODE_BDA_OPENCABLE_POD: windows_core::GUID = windows_core::GUID::from_u128(0x345812a0_fb7c_4790_aa7e_b1db88ac19c9);
pub const KSNODE_BDA_PBDA_CAS: windows_core::GUID = windows_core::GUID::from_u128(0xc026869f_7129_4e71_8696_ec8f75299b77);
pub const KSNODE_BDA_PBDA_DRM: windows_core::GUID = windows_core::GUID::from_u128(0x9eeebd03_eea1_450f_96ae_633e6de63cce);
pub const KSNODE_BDA_PBDA_ISDBCAS: windows_core::GUID = windows_core::GUID::from_u128(0xf2cf2ab3_5b9d_40ae_ab7c_4e7ad0bd1c52);
pub const KSNODE_BDA_PBDA_MUX: windows_core::GUID = windows_core::GUID::from_u128(0xf88c7787_6678_4f4b_a13e_da09861d682b);
pub const KSNODE_BDA_PBDA_TUNER: windows_core::GUID = windows_core::GUID::from_u128(0xaa5e8286_593c_4979_9494_46a2a9dfe076);
pub const KSNODE_BDA_PID_FILTER: windows_core::GUID = windows_core::GUID::from_u128(0xf5412789_b0a0_44e1_ae4f_ee999b1b7fbe);
pub const KSNODE_BDA_QAM_DEMODULATOR: windows_core::GUID = windows_core::GUID::from_u128(0x71985f4d_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSNODE_BDA_QPSK_DEMODULATOR: windows_core::GUID = windows_core::GUID::from_u128(0x6390c905_27c1_4d67_bdb7_77c50d079300);
pub const KSNODE_BDA_RF_TUNER: windows_core::GUID = windows_core::GUID::from_u128(0x71985f4c_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSNODE_BDA_TS_SELECTOR: windows_core::GUID = windows_core::GUID::from_u128(0x5eddf185_fed1_4f45_9685_bbb73c323cfc);
pub const KSNODE_BDA_VIDEO_ENCODER: windows_core::GUID = windows_core::GUID::from_u128(0xd98429e3_65c9_4ac4_93aa_766782833b7a);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_AUTODEMODULATE(pub i32);
pub const KSPROPERTY_BDA_AUTODEMODULATE_START: KSPROPERTY_BDA_AUTODEMODULATE = KSPROPERTY_BDA_AUTODEMODULATE(0i32);
pub const KSPROPERTY_BDA_AUTODEMODULATE_STOP: KSPROPERTY_BDA_AUTODEMODULATE = KSPROPERTY_BDA_AUTODEMODULATE(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_CA(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_CA_EVENT(pub i32);
pub const KSPROPERTY_BDA_CA_MODULE_STATUS: KSPROPERTY_BDA_CA = KSPROPERTY_BDA_CA(1i32);
pub const KSPROPERTY_BDA_CA_MODULE_UI: KSPROPERTY_BDA_CA = KSPROPERTY_BDA_CA(3i32);
pub const KSPROPERTY_BDA_CA_REMOVE_PROGRAM: KSPROPERTY_BDA_CA = KSPROPERTY_BDA_CA(5i32);
pub const KSPROPERTY_BDA_CA_SET_PROGRAM_PIDS: KSPROPERTY_BDA_CA = KSPROPERTY_BDA_CA(4i32);
pub const KSPROPERTY_BDA_CA_SMART_CARD_STATUS: KSPROPERTY_BDA_CA = KSPROPERTY_BDA_CA(2i32);
pub const KSPROPERTY_BDA_CONTROLLING_PIN_ID: KSPROPERTY_BDA_TOPOLOGY = KSPROPERTY_BDA_TOPOLOGY(6i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_DIGITAL_DEMODULATOR(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_DISEQC_COMMAND(pub i32);
pub const KSPROPERTY_BDA_DISEQC_ENABLE: KSPROPERTY_BDA_DISEQC_COMMAND = KSPROPERTY_BDA_DISEQC_COMMAND(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_DISEQC_EVENT(pub i32);
pub const KSPROPERTY_BDA_DISEQC_LNB_SOURCE: KSPROPERTY_BDA_DISEQC_COMMAND = KSPROPERTY_BDA_DISEQC_COMMAND(1i32);
pub const KSPROPERTY_BDA_DISEQC_REPEATS: KSPROPERTY_BDA_DISEQC_COMMAND = KSPROPERTY_BDA_DISEQC_COMMAND(3i32);
pub const KSPROPERTY_BDA_DISEQC_RESPONSE: KSPROPERTY_BDA_DISEQC_COMMAND = KSPROPERTY_BDA_DISEQC_COMMAND(5i32);
pub const KSPROPERTY_BDA_DISEQC_SEND: KSPROPERTY_BDA_DISEQC_COMMAND = KSPROPERTY_BDA_DISEQC_COMMAND(4i32);
pub const KSPROPERTY_BDA_DISEQC_USETONEBURST: KSPROPERTY_BDA_DISEQC_COMMAND = KSPROPERTY_BDA_DISEQC_COMMAND(2i32);
pub const KSPROPERTY_BDA_ECM_MAP_STATUS: KSPROPERTY_BDA_CA = KSPROPERTY_BDA_CA(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_ETHERNET_FILTER(pub i32);
pub const KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST: KSPROPERTY_BDA_ETHERNET_FILTER = KSPROPERTY_BDA_ETHERNET_FILTER(1i32);
pub const KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE: KSPROPERTY_BDA_ETHERNET_FILTER = KSPROPERTY_BDA_ETHERNET_FILTER(0i32);
pub const KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_MODE: KSPROPERTY_BDA_ETHERNET_FILTER = KSPROPERTY_BDA_ETHERNET_FILTER(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_FREQUENCY_FILTER(pub i32);
pub const KSPROPERTY_BDA_GUARD_INTERVAL: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(7i32);
pub const KSPROPERTY_BDA_INNER_FEC_RATE: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(2i32);
pub const KSPROPERTY_BDA_INNER_FEC_TYPE: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_IPv4_FILTER(pub i32);
pub const KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST: KSPROPERTY_BDA_IPv4_FILTER = KSPROPERTY_BDA_IPv4_FILTER(1i32);
pub const KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE: KSPROPERTY_BDA_IPv4_FILTER = KSPROPERTY_BDA_IPv4_FILTER(0i32);
pub const KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_MODE: KSPROPERTY_BDA_IPv4_FILTER = KSPROPERTY_BDA_IPv4_FILTER(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_IPv6_FILTER(pub i32);
pub const KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST: KSPROPERTY_BDA_IPv6_FILTER = KSPROPERTY_BDA_IPv6_FILTER(1i32);
pub const KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE: KSPROPERTY_BDA_IPv6_FILTER = KSPROPERTY_BDA_IPv6_FILTER(0i32);
pub const KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_MODE: KSPROPERTY_BDA_IPv6_FILTER = KSPROPERTY_BDA_IPv6_FILTER(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_LNB_INFO(pub i32);
pub const KSPROPERTY_BDA_LNB_LOF_HIGH_BAND: KSPROPERTY_BDA_LNB_INFO = KSPROPERTY_BDA_LNB_INFO(1i32);
pub const KSPROPERTY_BDA_LNB_LOF_LOW_BAND: KSPROPERTY_BDA_LNB_INFO = KSPROPERTY_BDA_LNB_INFO(0i32);
pub const KSPROPERTY_BDA_LNB_SWITCH_FREQUENCY: KSPROPERTY_BDA_LNB_INFO = KSPROPERTY_BDA_LNB_INFO(2i32);
pub const KSPROPERTY_BDA_MODULATION_TYPE: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(0i32);
pub const KSPROPERTY_BDA_NODE_DESCRIPTORS: KSPROPERTY_BDA_TOPOLOGY = KSPROPERTY_BDA_TOPOLOGY(7i32);
pub const KSPROPERTY_BDA_NODE_EVENTS: KSPROPERTY_BDA_TOPOLOGY = KSPROPERTY_BDA_TOPOLOGY(5i32);
pub const KSPROPERTY_BDA_NODE_METHODS: KSPROPERTY_BDA_TOPOLOGY = KSPROPERTY_BDA_TOPOLOGY(3i32);
pub const KSPROPERTY_BDA_NODE_PROPERTIES: KSPROPERTY_BDA_TOPOLOGY = KSPROPERTY_BDA_TOPOLOGY(4i32);
pub const KSPROPERTY_BDA_NODE_TYPES: KSPROPERTY_BDA_TOPOLOGY = KSPROPERTY_BDA_TOPOLOGY(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_NULL_TRANSFORM(pub i32);
pub const KSPROPERTY_BDA_NULL_TRANSFORM_START: KSPROPERTY_BDA_NULL_TRANSFORM = KSPROPERTY_BDA_NULL_TRANSFORM(0i32);
pub const KSPROPERTY_BDA_NULL_TRANSFORM_STOP: KSPROPERTY_BDA_NULL_TRANSFORM = KSPROPERTY_BDA_NULL_TRANSFORM(1i32);
pub const KSPROPERTY_BDA_OUTER_FEC_RATE: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(4i32);
pub const KSPROPERTY_BDA_OUTER_FEC_TYPE: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(3i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_PIDFILTER(pub i32);
pub const KSPROPERTY_BDA_PIDFILTER_LIST_PIDS: KSPROPERTY_BDA_PIDFILTER = KSPROPERTY_BDA_PIDFILTER(2i32);
pub const KSPROPERTY_BDA_PIDFILTER_MAP_PIDS: KSPROPERTY_BDA_PIDFILTER = KSPROPERTY_BDA_PIDFILTER(0i32);
pub const KSPROPERTY_BDA_PIDFILTER_UNMAP_PIDS: KSPROPERTY_BDA_PIDFILTER = KSPROPERTY_BDA_PIDFILTER(1i32);
pub const KSPROPERTY_BDA_PILOT: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(10i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_PIN_CONTROL(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_PIN_EVENT(pub i32);
pub const KSPROPERTY_BDA_PIN_ID: KSPROPERTY_BDA_PIN_CONTROL = KSPROPERTY_BDA_PIN_CONTROL(0i32);
pub const KSPROPERTY_BDA_PIN_TYPE: KSPROPERTY_BDA_PIN_CONTROL = KSPROPERTY_BDA_PIN_CONTROL(1i32);
pub const KSPROPERTY_BDA_PIN_TYPES: KSPROPERTY_BDA_TOPOLOGY = KSPROPERTY_BDA_TOPOLOGY(1i32);
pub const KSPROPERTY_BDA_PLP_NUMBER: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(12i32);
pub const KSPROPERTY_BDA_RF_TUNER_BANDWIDTH: KSPROPERTY_BDA_FREQUENCY_FILTER = KSPROPERTY_BDA_FREQUENCY_FILTER(4i32);
pub const KSPROPERTY_BDA_RF_TUNER_CAPS: KSPROPERTY_BDA_FREQUENCY_FILTER = KSPROPERTY_BDA_FREQUENCY_FILTER(6i32);
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSPROPERTY_BDA_RF_TUNER_CAPS_S {
pub Property: super::super::KernelStreaming::KSP_NODE,
pub Mode: u32,
pub AnalogStandardsSupported: u32,
pub DigitalStandardsSupported: u32,
pub MinFrequency: u32,
pub MaxFrequency: u32,
pub SettlingTime: u32,
pub AnalogSensingRange: u32,
pub DigitalSensingRange: u32,
pub MilliSecondsPerMHz: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSPROPERTY_BDA_RF_TUNER_CAPS_S {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const KSPROPERTY_BDA_RF_TUNER_FREQUENCY: KSPROPERTY_BDA_FREQUENCY_FILTER = KSPROPERTY_BDA_FREQUENCY_FILTER(0i32);
pub const KSPROPERTY_BDA_RF_TUNER_FREQUENCY_MULTIPLIER: KSPROPERTY_BDA_FREQUENCY_FILTER = KSPROPERTY_BDA_FREQUENCY_FILTER(5i32);
pub const KSPROPERTY_BDA_RF_TUNER_POLARITY: KSPROPERTY_BDA_FREQUENCY_FILTER = KSPROPERTY_BDA_FREQUENCY_FILTER(1i32);
pub const KSPROPERTY_BDA_RF_TUNER_RANGE: KSPROPERTY_BDA_FREQUENCY_FILTER = KSPROPERTY_BDA_FREQUENCY_FILTER(2i32);
pub const KSPROPERTY_BDA_RF_TUNER_SCAN_STATUS: KSPROPERTY_BDA_FREQUENCY_FILTER = KSPROPERTY_BDA_FREQUENCY_FILTER(7i32);
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSPROPERTY_BDA_RF_TUNER_SCAN_STATUS_S {
pub Property: super::super::KernelStreaming::KSP_NODE,
pub CurrentFrequency: u32,
pub FrequencyRangeMin: u32,
pub FrequencyRangeMax: u32,
pub MilliSecondsLeft: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSPROPERTY_BDA_RF_TUNER_SCAN_STATUS_S {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const KSPROPERTY_BDA_RF_TUNER_STANDARD: KSPROPERTY_BDA_FREQUENCY_FILTER = KSPROPERTY_BDA_FREQUENCY_FILTER(8i32);
pub const KSPROPERTY_BDA_RF_TUNER_STANDARD_MODE: KSPROPERTY_BDA_FREQUENCY_FILTER = KSPROPERTY_BDA_FREQUENCY_FILTER(9i32);
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSPROPERTY_BDA_RF_TUNER_STANDARD_MODE_S {
pub Property: super::super::KernelStreaming::KSP_NODE,
pub AutoDetect: windows_core::BOOL,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSPROPERTY_BDA_RF_TUNER_STANDARD_MODE_S {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSPROPERTY_BDA_RF_TUNER_STANDARD_S {
pub Property: super::super::KernelStreaming::KSP_NODE,
pub SignalType: BDA_SignalType,
pub SignalStandard: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSPROPERTY_BDA_RF_TUNER_STANDARD_S {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const KSPROPERTY_BDA_RF_TUNER_TRANSPONDER: KSPROPERTY_BDA_FREQUENCY_FILTER = KSPROPERTY_BDA_FREQUENCY_FILTER(3i32);
pub const KSPROPERTY_BDA_ROLL_OFF: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(9i32);
pub const KSPROPERTY_BDA_SAMPLE_TIME: KSPROPERTY_BDA_SIGNAL_STATS = KSPROPERTY_BDA_SIGNAL_STATS(4i32);
pub const KSPROPERTY_BDA_SIGNALTIMEOUTS: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(11i32);
pub const KSPROPERTY_BDA_SIGNAL_LOCKED: KSPROPERTY_BDA_SIGNAL_STATS = KSPROPERTY_BDA_SIGNAL_STATS(3i32);
pub const KSPROPERTY_BDA_SIGNAL_LOCK_CAPS: KSPROPERTY_BDA_SIGNAL_STATS = KSPROPERTY_BDA_SIGNAL_STATS(5i32);
pub const KSPROPERTY_BDA_SIGNAL_LOCK_TYPE: KSPROPERTY_BDA_SIGNAL_STATS = KSPROPERTY_BDA_SIGNAL_STATS(6i32);
pub const KSPROPERTY_BDA_SIGNAL_PRESENT: KSPROPERTY_BDA_SIGNAL_STATS = KSPROPERTY_BDA_SIGNAL_STATS(2i32);
pub const KSPROPERTY_BDA_SIGNAL_QUALITY: KSPROPERTY_BDA_SIGNAL_STATS = KSPROPERTY_BDA_SIGNAL_STATS(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_SIGNAL_STATS(pub i32);
pub const KSPROPERTY_BDA_SIGNAL_STRENGTH: KSPROPERTY_BDA_SIGNAL_STATS = KSPROPERTY_BDA_SIGNAL_STATS(0i32);
pub const KSPROPERTY_BDA_SPECTRAL_INVERSION: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(6i32);
pub const KSPROPERTY_BDA_SYMBOL_RATE: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(5i32);
pub const KSPROPERTY_BDA_TABLE_SECTION: KSPROPERTY_IDS_BDA_TABLE = KSPROPERTY_IDS_BDA_TABLE(0i32);
pub const KSPROPERTY_BDA_TEMPLATE_CONNECTIONS: KSPROPERTY_BDA_TOPOLOGY = KSPROPERTY_BDA_TOPOLOGY(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_TOPOLOGY(pub i32);
pub const KSPROPERTY_BDA_TRANSMISSION_MODE: KSPROPERTY_BDA_DIGITAL_DEMODULATOR = KSPROPERTY_BDA_DIGITAL_DEMODULATOR(8i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_BDA_VOID_TRANSFORM(pub i32);
pub const KSPROPERTY_BDA_VOID_TRANSFORM_START: KSPROPERTY_BDA_VOID_TRANSFORM = KSPROPERTY_BDA_VOID_TRANSFORM(0i32);
pub const KSPROPERTY_BDA_VOID_TRANSFORM_STOP: KSPROPERTY_BDA_VOID_TRANSFORM = KSPROPERTY_BDA_VOID_TRANSFORM(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct KSPROPERTY_IDS_BDA_TABLE(pub i32);
pub const KSPROPSETID_BdaAutodemodulate: windows_core::GUID = windows_core::GUID::from_u128(0xddf15b12_bd25_11d2_9ca0_00c04f7971e0);
pub const KSPROPSETID_BdaCA: windows_core::GUID = windows_core::GUID::from_u128(0xb0693766_5278_4ec6_b9e1_3ce40560ef5a);
pub const KSPROPSETID_BdaDigitalDemodulator: windows_core::GUID = windows_core::GUID::from_u128(0xef30f379_985b_4d10_b640_a79d5e04e1e0);
pub const KSPROPSETID_BdaDiseqCommand: windows_core::GUID = windows_core::GUID::from_u128(0xf84e2ab0_3c6b_45e3_a0fc_8669d4b81f11);
pub const KSPROPSETID_BdaEthernetFilter: windows_core::GUID = windows_core::GUID::from_u128(0x71985f43_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSPROPSETID_BdaFrequencyFilter: windows_core::GUID = windows_core::GUID::from_u128(0x71985f47_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSPROPSETID_BdaIPv4Filter: windows_core::GUID = windows_core::GUID::from_u128(0x71985f44_1ca1_11d3_9cc8_00c04f7971e0);
pub const KSPROPSETID_BdaIPv6Filter: windows_core::GUID = windows_core::GUID::from_u128(0xe1785a74_2a23_4fb3_9245_a8f88017ef33);
pub const KSPROPSETID_BdaLNBInfo: windows_core::GUID = windows_core::GUID::from_u128(0x992cf102_49f9_4719_a664_c4f23e2408f4);
pub const KSPROPSETID_BdaNullTransform: windows_core::GUID = windows_core::GUID::from_u128(0xddf15b0d_bd25_11d2_9ca0_00c04f7971e0);
pub const KSPROPSETID_BdaPIDFilter: windows_core::GUID = windows_core::GUID::from_u128(0xd0a67d65_08df_4fec_8533_e5b550410b85);
pub const KSPROPSETID_BdaPinControl: windows_core::GUID = windows_core::GUID::from_u128(0x0ded49d5_a8b7_4d5d_97a1_12b0c195874d);
pub const KSPROPSETID_BdaSignalStats: windows_core::GUID = windows_core::GUID::from_u128(0x1347d106_cf3a_428a_a5cb_ac0d9a2a4338);
pub const KSPROPSETID_BdaTableSection: windows_core::GUID = windows_core::GUID::from_u128(0x516b99c5_971c_4aaf_b3f3_d9fda8a15e16);
pub const KSPROPSETID_BdaTopology: windows_core::GUID = windows_core::GUID::from_u128(0xa14ee835_0a23_11d3_9cc7_00c04f7971e0);
pub const KSPROPSETID_BdaVoidTransform: windows_core::GUID = windows_core::GUID::from_u128(0x71985f46_1ca1_11d3_9cc8_00c04f7971e0);
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSP_BDA_NODE_PIN {
pub Property: super::super::KernelStreaming::KSIDENTIFIER,
pub ulNodeType: u32,
pub ulInputPinId: u32,
pub ulOutputPinId: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSP_BDA_NODE_PIN {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KSP_NODE_ESPID {
pub Property: super::super::KernelStreaming::KSP_NODE,
pub EsPid: u32,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KSP_NODE_ESPID {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KS_DATARANGE_BDA_ANTENNA {
pub DataRange: super::super::KernelStreaming::KSDATAFORMAT,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KS_DATARANGE_BDA_ANTENNA {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_Media_KernelStreaming")]
#[derive(Clone, Copy)]
pub struct KS_DATARANGE_BDA_TRANSPORT {
pub DataRange: super::super::KernelStreaming::KSDATAFORMAT,
pub BdaTransportInfo: BDA_TRANSPORT_INFO,
}
#[cfg(feature = "Win32_Media_KernelStreaming")]
impl Default for KS_DATARANGE_BDA_TRANSPORT {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const LIC_BadLicense: LicenseEventBlockReason = LicenseEventBlockReason(0i32);
pub const LIC_Expired: LicenseEventBlockReason = LicenseEventBlockReason(2i32);
pub const LIC_ExtenderBlocked: LicenseEventBlockReason = LicenseEventBlockReason(4i32);
pub const LIC_NeedActivation: LicenseEventBlockReason = LicenseEventBlockReason(3i32);
pub const LIC_NeedIndiv: LicenseEventBlockReason = LicenseEventBlockReason(1i32);
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct LONG_SECTION {
pub TableId: u8,
pub Header: LONG_SECTION_0,
pub TableIdExtension: u16,
pub Version: LONG_SECTION_1,
pub SectionNumber: u8,
pub LastSectionNumber: u8,
pub RemainingData: [u8; 1],
}
impl Default for LONG_SECTION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub union LONG_SECTION_0 {
pub S: MPEG_HEADER_BITS_MIDL,
pub W: u16,
}
impl Default for LONG_SECTION_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union LONG_SECTION_1 {
pub S: MPEG_HEADER_VERSION_BITS_MIDL,
pub B: u8,
}
impl Default for LONG_SECTION_1 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const LanguageComponentType: windows_core::GUID = windows_core::GUID::from_u128(0x1be49f30_0e1b_11d3_9d8e_00c04f72d980);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct LanguageInfo {
pub LangID: u16,
pub lISOLangCode: i32,
}
pub const LastReservedDeviceDispid: SegDispidList = SegDispidList(16383i32);
pub const LastReservedDeviceEvent: SegEventidList = SegEventidList(16383i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct LicenseEventBlockReason(pub i32);
pub const Locator: windows_core::GUID = windows_core::GUID::from_u128(0x0888c883_ac4f_4943_b516_2c38d9b34562);
pub const MAX_COUNTRY_CODE_STRING: u32 = 3u32;
pub const MEDIASUBTYPE_CPFilters_Processed: windows_core::GUID = windows_core::GUID::from_u128(0x46adbd28_6fd0_4796_93b2_155c51dc048d);
pub const MEDIASUBTYPE_ETDTFilter_Tagged: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4d0_0049_4e2b_98fb_9537f6ce516d);
pub const MPAA: EnTvRat_System = EnTvRat_System(0i32);
pub const MPAA_G: EnTvRat_MPAA = EnTvRat_MPAA(1i32);
pub const MPAA_IsBlocked: BfEnTvRat_Attributes_MPAA = BfEnTvRat_Attributes_MPAA(1i32);
pub const MPAA_NC17: EnTvRat_MPAA = EnTvRat_MPAA(5i32);
pub const MPAA_NotApplicable: EnTvRat_MPAA = EnTvRat_MPAA(0i32);
pub const MPAA_NotRated: EnTvRat_MPAA = EnTvRat_MPAA(7i32);
pub const MPAA_PG: EnTvRat_MPAA = EnTvRat_MPAA(2i32);
pub const MPAA_PG13: EnTvRat_MPAA = EnTvRat_MPAA(3i32);
pub const MPAA_R: EnTvRat_MPAA = EnTvRat_MPAA(4i32);
pub const MPAA_ValidAttrSubmask: BfEnTvRat_Attributes_MPAA = BfEnTvRat_Attributes_MPAA(1i32);
pub const MPAA_X: EnTvRat_MPAA = EnTvRat_MPAA(6i32);
pub const MPEG2Component: windows_core::GUID = windows_core::GUID::from_u128(0x055cb2d7_2969_45cd_914b_76890722f112);
pub const MPEG2ComponentType: windows_core::GUID = windows_core::GUID::from_u128(0x418008f3_cf67_4668_9628_10dc52be1d08);
pub const MPEG2TuneRequest: windows_core::GUID = windows_core::GUID::from_u128(0x0955ac62_bf2e_4cba_a2b9_a63f772d46cf);
pub const MPEG2TuneRequestFactory: windows_core::GUID = windows_core::GUID::from_u128(0x2c63e4eb_4cea_41b8_919c_e947ea19a77c);
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct MPEG2_FILTER {
pub bVersionNumber: u8,
pub wFilterSize: u16,
pub fUseRawFilteringBits: windows_core::BOOL,
pub Filter: [u8; 16],
pub Mask: [u8; 16],
pub fSpecifyTableIdExtension: windows_core::BOOL,
pub TableIdExtension: u16,
pub fSpecifyVersion: windows_core::BOOL,
pub Version: u8,
pub fSpecifySectionNumber: windows_core::BOOL,
pub SectionNumber: u8,
pub fSpecifyCurrentNext: windows_core::BOOL,
pub fNext: windows_core::BOOL,
pub fSpecifyDsmccOptions: windows_core::BOOL,
pub Dsmcc: DSMCC_FILTER_OPTIONS,
pub fSpecifyAtscOptions: windows_core::BOOL,
pub Atsc: ATSC_FILTER_OPTIONS,
}
impl Default for MPEG2_FILTER {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct MPEG2_FILTER2 {
pub Anonymous: MPEG2_FILTER2_0,
pub fSpecifyDvbEitOptions: windows_core::BOOL,
pub DvbEit: DVB_EIT_FILTER_OPTIONS,
}
impl Default for MPEG2_FILTER2 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union MPEG2_FILTER2_0 {
pub Anonymous: MPEG2_FILTER2_0_0,
pub bVersion1Bytes: [u8; 124],
}
impl Default for MPEG2_FILTER2_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct MPEG2_FILTER2_0_0 {
pub bVersionNumber: u8,
pub wFilterSize: u16,
pub fUseRawFilteringBits: windows_core::BOOL,
pub Filter: [u8; 16],
pub Mask: [u8; 16],
pub fSpecifyTableIdExtension: windows_core::BOOL,
pub TableIdExtension: u16,
pub fSpecifyVersion: windows_core::BOOL,
pub Version: u8,
pub fSpecifySectionNumber: windows_core::BOOL,
pub SectionNumber: u8,
pub fSpecifyCurrentNext: windows_core::BOOL,
pub fNext: windows_core::BOOL,
pub fSpecifyDsmccOptions: windows_core::BOOL,
pub Dsmcc: DSMCC_FILTER_OPTIONS,
pub fSpecifyAtscOptions: windows_core::BOOL,
pub Atsc: ATSC_FILTER_OPTIONS,
}
impl Default for MPEG2_FILTER2_0_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const MPEG2_FILTER_VERSION_1_SIZE: u32 = 124u32;
pub const MPEG2_FILTER_VERSION_2_SIZE: u32 = 133u32;
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct MPEG_BCS_DEMUX {
pub AVMGraphId: u32,
}
pub const MPEG_CAT_PID: u32 = 1u32;
pub const MPEG_CAT_TID: u32 = 1u32;
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct MPEG_CONTEXT {
pub Type: MPEG_CONTEXT_TYPE,
pub U: MPEG_CONTEXT_0,
}
impl Default for MPEG_CONTEXT {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union MPEG_CONTEXT_0 {
pub Demux: MPEG_BCS_DEMUX,
pub Winsock: MPEG_WINSOCK,
}
impl Default for MPEG_CONTEXT_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const MPEG_CONTEXT_BCS_DEMUX: MPEG_CONTEXT_TYPE = MPEG_CONTEXT_TYPE(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct MPEG_CONTEXT_TYPE(pub i32);
pub const MPEG_CONTEXT_WINSOCK: MPEG_CONTEXT_TYPE = MPEG_CONTEXT_TYPE(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct MPEG_CURRENT_NEXT_BIT(pub i32);
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct MPEG_DATE {
pub Date: u8,
pub Month: u8,
pub Year: u16,
}
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct MPEG_DATE_AND_TIME {
pub D: MPEG_DATE,
pub T: MPEG_TIME,
}
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct MPEG_HEADER_BITS {
pub _bitfield: u16,
}
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct MPEG_HEADER_BITS_MIDL {
pub Bits: u16,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct MPEG_HEADER_VERSION_BITS {
pub _bitfield: u8,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct MPEG_HEADER_VERSION_BITS_MIDL {
pub Bits: u8,
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct MPEG_PACKET_LIST {
pub wPacketCount: u16,
pub PacketList: [*mut MPEG_RQST_PACKET; 1],
}
impl Default for MPEG_PACKET_LIST {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const MPEG_PAT_PID: u32 = 0u32;
pub const MPEG_PAT_TID: u32 = 0u32;
pub const MPEG_PMT_TID: u32 = 2u32;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct MPEG_REQUEST_TYPE(pub i32);
pub const MPEG_RQST_GET_PES_STREAM: MPEG_REQUEST_TYPE = MPEG_REQUEST_TYPE(6i32);
pub const MPEG_RQST_GET_SECTION: MPEG_REQUEST_TYPE = MPEG_REQUEST_TYPE(1i32);
pub const MPEG_RQST_GET_SECTIONS_STREAM: MPEG_REQUEST_TYPE = MPEG_REQUEST_TYPE(5i32);
pub const MPEG_RQST_GET_SECTION_ASYNC: MPEG_REQUEST_TYPE = MPEG_REQUEST_TYPE(2i32);
pub const MPEG_RQST_GET_TABLE: MPEG_REQUEST_TYPE = MPEG_REQUEST_TYPE(3i32);
pub const MPEG_RQST_GET_TABLE_ASYNC: MPEG_REQUEST_TYPE = MPEG_REQUEST_TYPE(4i32);
pub const MPEG_RQST_GET_TS_STREAM: MPEG_REQUEST_TYPE = MPEG_REQUEST_TYPE(7i32);
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct MPEG_RQST_PACKET {
pub dwLength: u32,
pub pSection: *mut SECTION,
}
impl Default for MPEG_RQST_PACKET {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const MPEG_RQST_START_MPE_STREAM: MPEG_REQUEST_TYPE = MPEG_REQUEST_TYPE(8i32);
pub const MPEG_RQST_UNKNOWN: MPEG_REQUEST_TYPE = MPEG_REQUEST_TYPE(0i32);
pub const MPEG_SECTION_IS_CURRENT: MPEG_CURRENT_NEXT_BIT = MPEG_CURRENT_NEXT_BIT(1i32);
pub const MPEG_SECTION_IS_NEXT: MPEG_CURRENT_NEXT_BIT = MPEG_CURRENT_NEXT_BIT(0i32);
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct MPEG_SERVICE_REQUEST {
pub Type: MPEG_REQUEST_TYPE,
pub Context: MPEG_CONTEXT,
pub Pid: u16,
pub TableId: u8,
pub Filter: MPEG2_FILTER,
pub Flags: u32,
}
impl Default for MPEG_SERVICE_REQUEST {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct MPEG_SERVICE_RESPONSE {
pub IPAddress: u32,
pub Port: u16,
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct MPEG_STREAM_BUFFER {
pub hr: windows_core::HRESULT,
pub dwDataBufferSize: u32,
pub dwSizeOfDataRead: u32,
pub pDataBuffer: *mut u8,
}
impl Default for MPEG_STREAM_BUFFER {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct MPEG_STREAM_FILTER {
pub wPidValue: u16,
pub dwFilterSize: u32,
pub fCrcEnabled: windows_core::BOOL,
pub rgchFilter: [u8; 16],
pub rgchMask: [u8; 16],
}
impl Default for MPEG_STREAM_FILTER {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct MPEG_TIME {
pub Hours: u8,
pub Minutes: u8,
pub Seconds: u8,
}
pub const MPEG_TSDT_PID: u32 = 2u32;
pub const MPEG_TSDT_TID: u32 = 3u32;
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct MPEG_WINSOCK {
pub AVMGraphId: u32,
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct MPE_ELEMENT {
pub pid: u16,
pub bComponentTag: u8,
pub pNext: *mut MPE_ELEMENT,
}
impl Default for MPE_ELEMENT {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const MSEventBinder: windows_core::GUID = windows_core::GUID::from_u128(0x577faa18_4518_445e_8f70_1473f8cf4ba4);
pub const MSVIDCTL_ALT: MSVidCtlButtonstate = MSVidCtlButtonstate(4i32);
pub const MSVIDCTL_CTRL: MSVidCtlButtonstate = MSVidCtlButtonstate(2i32);
pub const MSVIDCTL_LEFT_BUTTON: MSVidCtlButtonstate = MSVidCtlButtonstate(1i32);
pub const MSVIDCTL_MIDDLE_BUTTON: MSVidCtlButtonstate = MSVidCtlButtonstate(4i32);
pub const MSVIDCTL_RIGHT_BUTTON: MSVidCtlButtonstate = MSVidCtlButtonstate(2i32);
pub const MSVIDCTL_SHIFT: MSVidCtlButtonstate = MSVidCtlButtonstate(1i32);
pub const MSVIDCTL_X_BUTTON1: MSVidCtlButtonstate = MSVidCtlButtonstate(8i32);
pub const MSVIDCTL_X_BUTTON2: MSVidCtlButtonstate = MSVidCtlButtonstate(16i32);
pub const MSVidAnalogCaptureToCCA: windows_core::GUID = windows_core::GUID::from_u128(0x942b7909_a28e_49a1_a207_34ebcbcb4b3b);
pub const MSVidAnalogCaptureToDataServices: windows_core::GUID = windows_core::GUID::from_u128(0xc5702cd6_9b79_11d3_b654_00c04f79498e);
pub const MSVidAnalogCaptureToOverlayMixer: windows_core::GUID = windows_core::GUID::from_u128(0xe18af75a_08af_11d3_b64a_00c04f79498e);
pub const MSVidAnalogCaptureToStreamBufferSink: windows_core::GUID = windows_core::GUID::from_u128(0x9f50e8b1_9530_4ddc_825e_1af81d47aed6);
pub const MSVidAnalogCaptureToXDS: windows_core::GUID = windows_core::GUID::from_u128(0x3540d440_5b1d_49cb_821a_e84b8cf065a7);
pub const MSVidAnalogTVToEncoder: windows_core::GUID = windows_core::GUID::from_u128(0x28953661_0231_41db_8986_21ff4388ee9b);
pub const MSVidAnalogTunerDevice: windows_core::GUID = windows_core::GUID::from_u128(0x1c15d484_911d_11d2_b632_00c04f79498e);
pub const MSVidAudioRenderer: windows_core::GUID = windows_core::GUID::from_u128(0x37b03544_a4c8_11d2_b634_00c04f79498e);
pub const MSVidAudioRendererDevices: windows_core::GUID = windows_core::GUID::from_u128(0xc5702ccf_9b79_11d3_b654_00c04f79498e);
pub const MSVidBDATunerDevice: windows_core::GUID = windows_core::GUID::from_u128(0xa2e3074e_6c3d_11d3_b653_00c04f79498e);
pub const MSVidCCA: windows_core::GUID = windows_core::GUID::from_u128(0x86151827_e47b_45ee_8421_d10e6e690979);
pub const MSVidCCAToStreamBufferSink: windows_core::GUID = windows_core::GUID::from_u128(0x3ef76d68_8661_4843_8b8f_c37163d8c9ce);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct MSVidCCService(pub i32);
impl MSVidCCService {
pub const None: Self = Self(0i32);
pub const Caption1: Self = Self(1i32);
pub const Caption2: Self = Self(2i32);
pub const Text1: Self = Self(3i32);
pub const Text2: Self = Self(4i32);
pub const XDS: Self = Self(5i32);
}
pub const MSVidCCToAR: windows_core::GUID = windows_core::GUID::from_u128(0xd76334ca_d89e_4baf_86ab_ddb59372afc2);
pub const MSVidCCToVMR: windows_core::GUID = windows_core::GUID::from_u128(0xc4bf2784_ae00_41ba_9828_9c953bd3c54a);
pub const MSVidClosedCaptioning: windows_core::GUID = windows_core::GUID::from_u128(0x7f9cb14d_48e4_43b6_9346_1aebc39c64d3);
pub const MSVidClosedCaptioningSI: windows_core::GUID = windows_core::GUID::from_u128(0x92ed88bf_879e_448f_b6b6_a385bceb846d);
pub const MSVidCtl: windows_core::GUID = windows_core::GUID::from_u128(0xb0edf163_910a_11d2_b632_00c04f79498e);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct MSVidCtlButtonstate(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct MSVidCtlStateList(pub i32);
pub const MSVidDataServices: windows_core::GUID = windows_core::GUID::from_u128(0x334125c0_77e5_11d3_b653_00c04f79498e);
pub const MSVidDataServicesToStreamBufferSink: windows_core::GUID = windows_core::GUID::from_u128(0x38f03426_e83b_4e68_b65b_dcae73304838);
pub const MSVidDataServicesToXDS: windows_core::GUID = windows_core::GUID::from_u128(0x0429ec6e_1144_4bed_b88b_2fb9899a4a3d);
pub const MSVidDevice: windows_core::GUID = windows_core::GUID::from_u128(0x6e40476f_9c49_4c3e_8bb9_8587958eff74);
pub const MSVidDevice2: windows_core::GUID = windows_core::GUID::from_u128(0x30997f7d_b3b5_4a1c_983a_1fe8098cb77d);
pub const MSVidDigitalCaptureToCCA: windows_core::GUID = windows_core::GUID::from_u128(0x73d14237_b9db_4efa_a6dd_84350421fb2f);
pub const MSVidDigitalCaptureToITV: windows_core::GUID = windows_core::GUID::from_u128(0x5d8e73f7_4989_4ac8_8a98_39ba0d325302);
pub const MSVidDigitalCaptureToStreamBufferSink: windows_core::GUID = windows_core::GUID::from_u128(0xabe40035_27c3_4a2f_8153_6624471608af);
pub const MSVidEVR: windows_core::GUID = windows_core::GUID::from_u128(0xc45268a2_fa81_4e19_b1e3_72edbd60aeda);
pub const MSVidEncoder: windows_core::GUID = windows_core::GUID::from_u128(0xbb530c63_d9df_4b49_9439_63453962e598);
pub const MSVidEncoderToStreamBufferSink: windows_core::GUID = windows_core::GUID::from_u128(0xa0b9b497_afbc_45ad_a8a6_9b077c40d4f2);
pub const MSVidFeature: windows_core::GUID = windows_core::GUID::from_u128(0x7748530b_c08a_47ea_b24c_be8695ff405f);
pub const MSVidFeatures: windows_core::GUID = windows_core::GUID::from_u128(0xc5702cd0_9b79_11d3_b654_00c04f79498e);
pub const MSVidFilePlaybackDevice: windows_core::GUID = windows_core::GUID::from_u128(0x37b0353c_a4c8_11d2_b634_00c04f79498e);
pub const MSVidFilePlaybackToAudioRenderer: windows_core::GUID = windows_core::GUID::from_u128(0xcc23f537_18d4_4ece_93bd_207a84726979);
pub const MSVidFilePlaybackToVideoRenderer: windows_core::GUID = windows_core::GUID::from_u128(0xb401c5eb_8457_427f_84ea_a4d2363364b0);
pub const MSVidGenericComposite: windows_core::GUID = windows_core::GUID::from_u128(0x2764bce5_cc39_11d2_b639_00c04f79498e);
pub const MSVidGenericSink: windows_core::GUID = windows_core::GUID::from_u128(0x4a5869cf_929d_4040_ae03_fcafc5b9cd42);
pub const MSVidITVCapture: windows_core::GUID = windows_core::GUID::from_u128(0x5740a302_ef0b_45ce_bf3b_4470a14a8980);
pub const MSVidITVPlayback: windows_core::GUID = windows_core::GUID::from_u128(0x9e797ed0_5253_4243_a9b7_bd06c58f8ef3);
pub const MSVidITVToStreamBufferSink: windows_core::GUID = windows_core::GUID::from_u128(0x92b94828_1af7_4e6e_9ebf_770657f77af5);
pub const MSVidInputDevice: windows_core::GUID = windows_core::GUID::from_u128(0xac1972f2_138a_4ca3_90da_ae51112eda28);
pub const MSVidInputDevices: windows_core::GUID = windows_core::GUID::from_u128(0xc5702ccc_9b79_11d3_b654_00c04f79498e);
pub const MSVidMPEG2DecoderToClosedCaptioning: windows_core::GUID = windows_core::GUID::from_u128(0x6ad28ee1_5002_4e71_aaf7_bd077907b1a4);
pub const MSVidOutput: windows_core::GUID = windows_core::GUID::from_u128(0x87eb890d_03ad_4e9d_9866_376e5ec572ed);
pub const MSVidOutputDevices: windows_core::GUID = windows_core::GUID::from_u128(0xc5702ccd_9b79_11d3_b654_00c04f79498e);
pub const MSVidRect: windows_core::GUID = windows_core::GUID::from_u128(0xcb4276e6_7d5f_4cf1_9727_629c5e6db6ae);
pub const MSVidSBESourceToCC: windows_core::GUID = windows_core::GUID::from_u128(0x9193a8f9_0cba_400e_aa97_eb4709164576);
pub const MSVidSBESourceToGenericSink: windows_core::GUID = windows_core::GUID::from_u128(0x991da7e5_953f_435b_be5e_b92a05edfc42);
pub const MSVidSBESourceToITV: windows_core::GUID = windows_core::GUID::from_u128(0x2291478c_5ee3_4bef_ab5d_b5ff2cf58352);
pub const MSVidSEG_DEST: MSVidSegmentType = MSVidSegmentType(2i32);
pub const MSVidSEG_SOURCE: MSVidSegmentType = MSVidSegmentType(0i32);
pub const MSVidSEG_XFORM: MSVidSegmentType = MSVidSegmentType(1i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct MSVidSegmentType(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct MSVidSinkStreams(pub i32);
pub const MSVidSink_Audio: MSVidSinkStreams = MSVidSinkStreams(2i32);
pub const MSVidSink_Other: MSVidSinkStreams = MSVidSinkStreams(4i32);
pub const MSVidSink_Video: MSVidSinkStreams = MSVidSinkStreams(1i32);
pub const MSVidStreamBufferRecordingControl: windows_core::GUID = windows_core::GUID::from_u128(0xcaafdd83_cefc_4e3d_ba03_175f17a24f91);
pub const MSVidStreamBufferSink: windows_core::GUID = windows_core::GUID::from_u128(0x9e77aac4_35e5_42a1_bdc2_8f3ff399847c);
pub const MSVidStreamBufferSource: windows_core::GUID = windows_core::GUID::from_u128(0xad8e510d_217f_409b_8076_29c5e73b98e8);
pub const MSVidStreamBufferSourceToVideoRenderer: windows_core::GUID = windows_core::GUID::from_u128(0x3c4708dc_b181_46a8_8da8_4ab0371758cd);
pub const MSVidStreamBufferV2Source: windows_core::GUID = windows_core::GUID::from_u128(0xfd351ea1_4173_4af4_821d_80d4ae979048);
pub const MSVidVMR9: windows_core::GUID = windows_core::GUID::from_u128(0x24dc3975_09bf_4231_8655_3ee71f43837d);
pub const MSVidVideoInputDevice: windows_core::GUID = windows_core::GUID::from_u128(0x95f4820b_bb3a_4e2d_bc64_5b817bc2c30e);
pub const MSVidVideoPlaybackDevice: windows_core::GUID = windows_core::GUID::from_u128(0x1990d634_1a5e_4071_a34a_53aaffce9f36);
pub const MSVidVideoRenderer: windows_core::GUID = windows_core::GUID::from_u128(0x37b03543_a4c8_11d2_b634_00c04f79498e);
pub const MSVidVideoRendererDevices: windows_core::GUID = windows_core::GUID::from_u128(0xc5702cce_9b79_11d3_b654_00c04f79498e);
pub const MSVidWebDVD: windows_core::GUID = windows_core::GUID::from_u128(0x011b3619_fe63_4814_8a84_15a194ce9ce3);
pub const MSVidWebDVDAdm: windows_core::GUID = windows_core::GUID::from_u128(0xfa7c375b_66a7_4280_879d_fd459c84bb02);
pub const MSVidWebDVDToAudioRenderer: windows_core::GUID = windows_core::GUID::from_u128(0x8d04238e_9fd1_41c6_8de3_9e1ee309e935);
pub const MSVidWebDVDToVideoRenderer: windows_core::GUID = windows_core::GUID::from_u128(0x267db0b3_55e3_4902_949b_df8f5cec0191);
pub const MSVidXDS: windows_core::GUID = windows_core::GUID::from_u128(0x0149eedf_d08f_4142_8d73_d23903d21e90);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct MSViddispidList(pub i32);
pub const Mpeg2Data: windows_core::GUID = windows_core::GUID::from_u128(0xc666e115_bb62_4027_a113_82d643fe2d99);
pub const Mpeg2DataLib: windows_core::GUID = windows_core::GUID::from_u128(0xdbaf6c1b_b6a4_4898_ae65_204f0d9509a1);
pub const Mpeg2Stream: windows_core::GUID = windows_core::GUID::from_u128(0xf91d96c7_8509_4d0b_ab26_a0dd10904bb7);
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct Mpeg2TableSampleHdr {
pub SectionCount: u8,
pub Reserved: [u8; 3],
pub SectionOffsets: [i32; 1],
}
impl Default for Mpeg2TableSampleHdr {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const OCUR_PAIRING_PROTOCOL_VERSION: u32 = 2u32;
pub const PARENTAL_CONTROL_ATTRIB_DIALOGUE: u32 = 515u32;
pub const PARENTAL_CONTROL_ATTRIB_FANTASY: u32 = 516u32;
pub const PARENTAL_CONTROL_ATTRIB_LANGUAGE: u32 = 513u32;
pub const PARENTAL_CONTROL_ATTRIB_SEXUAL: u32 = 514u32;
pub const PARENTAL_CONTROL_ATTRIB_VIOLENCE: u32 = 512u32;
pub const PARENTAL_CONTROL_CONTENT_RATING: u32 = 256u32;
pub const PARENTAL_CONTROL_TIME_RANGE: u32 = 1u32;
pub const PARENTAL_CONTROL_VALUE_UNDEFINED: u32 = 0u32;
pub const PBDA: EnTvRat_System = EnTvRat_System(8i32);
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct PBDAParentalControl {
pub rating_system_count: u32,
pub rating_systems: *mut RATING_SYSTEM,
}
impl Default for PBDAParentalControl {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const PBDA_ALWAYS_TUNE_IN_MUX: windows_core::GUID = windows_core::GUID::from_u128(0x1e1d7141_583f_4ac2_b019_1f430eda0f4c);
pub const PBDA_PAIRING_PROTOCOL_VERSION: u32 = 3u32;
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct PBDA_TAG_ATTRIBUTE {
pub TableUUId: windows_core::GUID,
pub TableId: u8,
pub VersionNo: u16,
pub TableDataSize: u32,
pub TableData: [u8; 1],
}
impl Default for PBDA_TAG_ATTRIBUTE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct PIC_SEQ_SAMPLE {
pub _bitfield: u32,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct PIDListSpanningEvent {
pub wPIDCount: u16,
pub pulPIDs: [u32; 1],
}
impl Default for PIDListSpanningEvent {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct PID_BITS {
pub _bitfield: u16,
}
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct PID_BITS_MIDL {
pub Bits: u16,
}
pub const PINNAME_BDA_ANALOG_AUDIO: windows_core::GUID = windows_core::GUID::from_u128(0xd28a580a_9b1f_4b0c_9c33_9bf0a8ea636b);
pub const PINNAME_BDA_ANALOG_VIDEO: windows_core::GUID = windows_core::GUID::from_u128(0x5c0c8281_5667_486c_8482_63e31f01a6e9);
pub const PINNAME_BDA_FM_RADIO: windows_core::GUID = windows_core::GUID::from_u128(0xd2855fed_b2d3_4eeb_9bd0_193436a2f890);
pub const PINNAME_BDA_IF_PIN: windows_core::GUID = windows_core::GUID::from_u128(0x1a9d4a42_f3cd_48a1_9aea_71de133cbe14);
pub const PINNAME_BDA_OPENCABLE_PSIP_PIN: windows_core::GUID = windows_core::GUID::from_u128(0x297bb104_e5c9_4ace_b123_95c3cbb24d4f);
pub const PINNAME_BDA_TRANSPORT: windows_core::GUID = windows_core::GUID::from_u128(0x78216a81_cfa8_493e_9711_36a61c08bd9d);
pub const PINNAME_IPSINK_INPUT: windows_core::GUID = windows_core::GUID::from_u128(0x3fdffa70_ac9a_11d2_8f17_00c04f7971e2);
pub const PINNAME_MPE: windows_core::GUID = windows_core::GUID::from_u128(0xc1b06d73_1dbb_11d3_8f46_00c04f7971e2);
pub const PROT_COPY_BF: ProtType = ProtType(7i32);
pub const PROT_COPY_CN_RECORDING_STOP: ProtType = ProtType(8i32);
pub const PROT_COPY_FREE: ProtType = ProtType(1i32);
pub const PROT_COPY_FREE_CIT: ProtType = ProtType(6i32);
pub const PROT_COPY_FREE_SECURE: ProtType = ProtType(9i32);
pub const PROT_COPY_INVALID: ProtType = ProtType(50i32);
pub const PROT_COPY_NEVER: ProtType = ProtType(3i32);
pub const PROT_COPY_NEVER_REALLY: ProtType = ProtType(4i32);
pub const PROT_COPY_NO_MORE: ProtType = ProtType(5i32);
pub const PROT_COPY_ONCE: ProtType = ProtType(2i32);
pub const PersistTuneXmlUtility: windows_core::GUID = windows_core::GUID::from_u128(0xe77026b0_b97f_4cbb_b7fb_f4f03ad69f11);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct PositionModeList(pub i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct ProgramElement {
pub wProgramNumber: u16,
pub wProgramMapPID: u16,
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct ProtType(pub i32);
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct RATING_ATTRIBUTE {
pub rating_attribute_id: u32,
pub rating_attribute_value: u32,
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct RATING_INFO {
pub rating_system_count: u32,
pub lpratingsystem: *mut RATING_SYSTEM,
}
impl Default for RATING_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct RATING_SYSTEM {
pub rating_system_id: windows_core::GUID,
pub _bitfield: u8,
pub country_code: [u8; 3],
pub rating_attribute_count: u32,
pub lpratingattrib: *mut RATING_ATTRIBUTE,
}
impl Default for RATING_SYSTEM {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const RECORDING_STARTED: CPRecordingStatus = CPRecordingStatus(1i32);
pub const RECORDING_STOPPED: CPRecordingStatus = CPRecordingStatus(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct RECORDING_TYPE(pub i32);
pub const RECORDING_TYPE_CONTENT: RECORDING_TYPE = RECORDING_TYPE(0i32);
pub const RECORDING_TYPE_REFERENCE: RECORDING_TYPE = RECORDING_TYPE(1i32);
pub const REFERENCE: RecordingType = RecordingType(1i32);
pub const REQUIRED_PARENTAL_CONTROL_TIME_RANGE: u32 = 2u32;
pub const REVOKED_APP_STUB: RevokedComponent = RevokedComponent(2i32);
pub const REVOKED_COPP: RevokedComponent = RevokedComponent(0i32);
pub const REVOKED_MAX_TYPES: RevokedComponent = RevokedComponent(4i32);
pub const REVOKED_SAC: RevokedComponent = RevokedComponent(1i32);
pub const REVOKED_SECURE_PIPELINE: RevokedComponent = RevokedComponent(3i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct RecordingType(pub i32);
pub const Reserved4: EnTvRat_System = EnTvRat_System(4i32);
pub const Reserved7: EnTvRat_System = EnTvRat_System(7i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct RevokedComponent(pub i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct SAMPLE_LIVE_STREAM_TIME {
pub qwStreamTime: u64,
pub qwLiveTime: u64,
}
pub const SAMPLE_SEQ_CONTENT_B_FRAME: u32 = 3u32;
pub const SAMPLE_SEQ_CONTENT_I_FRAME: u32 = 1u32;
pub const SAMPLE_SEQ_CONTENT_NONREF_FRAME: u32 = 3u32;
pub const SAMPLE_SEQ_CONTENT_P_FRAME: u32 = 2u32;
pub const SAMPLE_SEQ_CONTENT_REF_FRAME: u32 = 2u32;
pub const SAMPLE_SEQ_CONTENT_STANDALONE_FRAME: u32 = 1u32;
pub const SAMPLE_SEQ_CONTENT_UNKNOWN: u32 = 0u32;
pub const SAMPLE_SEQ_FRAME_START: u32 = 3u32;
pub const SAMPLE_SEQ_GOP_HEADER: u32 = 2u32;
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct SAMPLE_SEQ_OFFSET {
pub _bitfield: u32,
}
pub const SAMPLE_SEQ_PICTURE_HEADER: u32 = 3u32;
pub const SAMPLE_SEQ_SEEK_POINT: u32 = 2u32;
pub const SAMPLE_SEQ_SEQUENCE_HEADER: u32 = 1u32;
pub const SAMPLE_SEQ_SEQUENCE_START: u32 = 1u32;
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct SBE2_STREAM_DESC {
pub Version: u32,
pub StreamId: u32,
pub Default: u32,
pub Reserved: u32,
}
pub const SBE2_STREAM_DESC_EVENT: windows_core::GUID = windows_core::GUID::from_u128(0x2313a4ed_bf2d_454f_ad8a_d95ba7f91fee);
pub const SBE2_STREAM_DESC_VERSION: u32 = 1u32;
pub const SBE2_V1_STREAMS_CREATION_EVENT: windows_core::GUID = windows_core::GUID::from_u128(0x000fcf09_97f5_46ac_9769_7a83b35384fb);
pub const SBE2_V2_STREAMS_CREATION_EVENT: windows_core::GUID = windows_core::GUID::from_u128(0xa72530a3_0344_4cab_a2d0_fe937dbdcab3);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct SBE_PIN_DATA {
pub cDataBytes: u64,
pub cSamplesProcessed: u64,
pub cDiscontinuities: u64,
pub cSyncPoints: u64,
pub cTimestamps: u64,
}
pub const SCTE_EAS_IB_PID: u32 = 8187u32;
pub const SCTE_EAS_OOB_PID: u32 = 8188u32;
pub const SCTE_EAS_TID: u32 = 216u32;
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct SECTION {
pub TableId: u8,
pub Header: SECTION_0,
pub SectionData: [u8; 1],
}
impl Default for SECTION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub union SECTION_0 {
pub S: MPEG_HEADER_BITS_MIDL,
pub W: u16,
}
impl Default for SECTION_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const SID_DRMSecureServiceChannel: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4c4_0049_4e2b_98fb_9537f6ce516d);
pub const SID_MSVidCtl_CurrentAudioEndpoint: windows_core::GUID = windows_core::GUID::from_u128(0xcf9a88f4_abcf_4ed8_9b74_7db33445459e);
pub const STATE_PAUSE: MSVidCtlStateList = MSVidCtlStateList(1i32);
pub const STATE_PLAY: MSVidCtlStateList = MSVidCtlStateList(2i32);
pub const STATE_STOP: MSVidCtlStateList = MSVidCtlStateList(0i32);
pub const STATE_UNBUILT: MSVidCtlStateList = MSVidCtlStateList(-1i32);
pub const STRCONV_MODE_DVB: DVB_STRCONV_MODE = DVB_STRCONV_MODE(0i32);
pub const STRCONV_MODE_DVB_EMPHASIS: DVB_STRCONV_MODE = DVB_STRCONV_MODE(1i32);
pub const STRCONV_MODE_DVB_WITHOUT_EMPHASIS: DVB_STRCONV_MODE = DVB_STRCONV_MODE(2i32);
pub const STRCONV_MODE_ISDB: DVB_STRCONV_MODE = DVB_STRCONV_MODE(3i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct STREAMBUFFER_ATTRIBUTE {
pub pszName: windows_core::PWSTR,
pub StreamBufferAttributeType: STREAMBUFFER_ATTR_DATATYPE,
pub pbAttribute: *mut u8,
pub cbLength: u16,
}
impl Default for STREAMBUFFER_ATTRIBUTE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct STREAMBUFFER_ATTR_DATATYPE(pub i32);
pub const STREAMBUFFER_EC_BASE: u32 = 806u32;
pub const STREAMBUFFER_EC_CONTENT_BECOMING_STALE: i32 = 809i32;
pub const STREAMBUFFER_EC_PRIMARY_AUDIO: i32 = 814i32;
pub const STREAMBUFFER_EC_RATE_CHANGED: i32 = 813i32;
pub const STREAMBUFFER_EC_RATE_CHANGING_FOR_SETPOSITIONS: i32 = 815i32;
pub const STREAMBUFFER_EC_READ_FAILURE: i32 = 812i32;
pub const STREAMBUFFER_EC_SETPOSITIONS_EVENTS_DONE: i32 = 816i32;
pub const STREAMBUFFER_EC_STALE_DATA_READ: i32 = 807i32;
pub const STREAMBUFFER_EC_STALE_FILE_DELETED: i32 = 808i32;
pub const STREAMBUFFER_EC_TIMEHOLE: i32 = 806i32;
pub const STREAMBUFFER_EC_WRITE_FAILURE: i32 = 810i32;
pub const STREAMBUFFER_EC_WRITE_FAILURE_CLEAR: i32 = 811i32;
pub const STREAMBUFFER_TYPE_BINARY: STREAMBUFFER_ATTR_DATATYPE = STREAMBUFFER_ATTR_DATATYPE(2i32);
pub const STREAMBUFFER_TYPE_BOOL: STREAMBUFFER_ATTR_DATATYPE = STREAMBUFFER_ATTR_DATATYPE(3i32);
pub const STREAMBUFFER_TYPE_DWORD: STREAMBUFFER_ATTR_DATATYPE = STREAMBUFFER_ATTR_DATATYPE(0i32);
pub const STREAMBUFFER_TYPE_GUID: STREAMBUFFER_ATTR_DATATYPE = STREAMBUFFER_ATTR_DATATYPE(6i32);
pub const STREAMBUFFER_TYPE_QWORD: STREAMBUFFER_ATTR_DATATYPE = STREAMBUFFER_ATTR_DATATYPE(4i32);
pub const STREAMBUFFER_TYPE_STRING: STREAMBUFFER_ATTR_DATATYPE = STREAMBUFFER_ATTR_DATATYPE(1i32);
pub const STREAMBUFFER_TYPE_WORD: STREAMBUFFER_ATTR_DATATYPE = STREAMBUFFER_ATTR_DATATYPE(5i32);
pub const SectionList: windows_core::GUID = windows_core::GUID::from_u128(0x73da5d04_4347_45d3_a9dc_fae9ddbe558d);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct SegDispidList(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct SegEventidList(pub i32);
pub const SignalAndServiceStatusSpanningEvent_AllAVScrambled: SignalAndServiceStatusSpanningEvent_State = SignalAndServiceStatusSpanningEvent_State(5i32);
pub const SignalAndServiceStatusSpanningEvent_Clear: SignalAndServiceStatusSpanningEvent_State = SignalAndServiceStatusSpanningEvent_State(0i32);
pub const SignalAndServiceStatusSpanningEvent_NoSubscription: SignalAndServiceStatusSpanningEvent_State = SignalAndServiceStatusSpanningEvent_State(4i32);
pub const SignalAndServiceStatusSpanningEvent_NoTVSignal: SignalAndServiceStatusSpanningEvent_State = SignalAndServiceStatusSpanningEvent_State(1i32);
pub const SignalAndServiceStatusSpanningEvent_None: SignalAndServiceStatusSpanningEvent_State = SignalAndServiceStatusSpanningEvent_State(-1i32);
pub const SignalAndServiceStatusSpanningEvent_ServiceOffAir: SignalAndServiceStatusSpanningEvent_State = SignalAndServiceStatusSpanningEvent_State(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct SignalAndServiceStatusSpanningEvent_State(pub i32);
pub const SignalAndServiceStatusSpanningEvent_WeakTVSignal: SignalAndServiceStatusSpanningEvent_State = SignalAndServiceStatusSpanningEvent_State(3i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct SourceSizeList(pub i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct SpanningEventDescriptor {
pub wDataLen: u16,
pub wProgNumber: u16,
pub wSID: u16,
pub bDescriptor: [u8; 1],
}
impl Default for SpanningEventDescriptor {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct SpanningEventEmmMessage {
pub bCAbroadcasterGroupId: u8,
pub bMessageControl: u8,
pub wServiceId: u16,
pub wTableIdExtension: u16,
pub bDeletionStatus: u8,
pub bDisplayingDuration1: u8,
pub bDisplayingDuration2: u8,
pub bDisplayingDuration3: u8,
pub bDisplayingCycle: u8,
pub bFormatVersion: u8,
pub bDisplayPosition: u8,
pub wMessageLength: u16,
pub szMessageArea: [u16; 1],
}
impl Default for SpanningEventEmmMessage {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const System5: EnTvRat_System = EnTvRat_System(5i32);
pub const System6: EnTvRat_System = EnTvRat_System(6i32);
pub const SystemTuningSpaces: windows_core::GUID = windows_core::GUID::from_u128(0xd02aac50_027e_11d3_9d8e_00c04f72d980);
#[repr(C, packed(1))]
#[derive(Clone, Copy, Default)]
pub struct TID_EXTENSION {
pub wTidExt: u16,
pub wCount: u16,
}
pub const TIFLoad: windows_core::GUID = windows_core::GUID::from_u128(0x14eb8748_1753_4393_95ae_4f7e7a87aad6);
#[repr(C)]
#[derive(Clone, Copy)]
pub struct TRANSPORT_PROPERTIES {
pub PID: u32,
pub PCR: i64,
pub Fields: TRANSPORT_PROPERTIES_0,
}
impl Default for TRANSPORT_PROPERTIES {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union TRANSPORT_PROPERTIES_0 {
pub Others: TRANSPORT_PROPERTIES_0_0,
pub Value: i64,
}
impl Default for TRANSPORT_PROPERTIES_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct TRANSPORT_PROPERTIES_0_0 {
pub _bitfield: i64,
}
pub const TenthsSecondsMode: PositionModeList = PositionModeList(1i32);
pub const TuneRequest: windows_core::GUID = windows_core::GUID::from_u128(0xb46e0d38_ab35_4a06_a137_70576b01b39f);
pub const TunerMarshaler: windows_core::GUID = windows_core::GUID::from_u128(0x6438570b_0c08_4a25_9504_8012bb4d50cf);
pub const TuningSpace: windows_core::GUID = windows_core::GUID::from_u128(0x5ffdc5e6_b83a_4b55_b6e8_c69e765fe9db);
pub const TvRat_0: EnTvRat_GenericLevel = EnTvRat_GenericLevel(0i32);
pub const TvRat_1: EnTvRat_GenericLevel = EnTvRat_GenericLevel(1i32);
pub const TvRat_10: EnTvRat_GenericLevel = EnTvRat_GenericLevel(10i32);
pub const TvRat_11: EnTvRat_GenericLevel = EnTvRat_GenericLevel(11i32);
pub const TvRat_12: EnTvRat_GenericLevel = EnTvRat_GenericLevel(12i32);
pub const TvRat_13: EnTvRat_GenericLevel = EnTvRat_GenericLevel(13i32);
pub const TvRat_14: EnTvRat_GenericLevel = EnTvRat_GenericLevel(14i32);
pub const TvRat_15: EnTvRat_GenericLevel = EnTvRat_GenericLevel(15i32);
pub const TvRat_16: EnTvRat_GenericLevel = EnTvRat_GenericLevel(16i32);
pub const TvRat_17: EnTvRat_GenericLevel = EnTvRat_GenericLevel(17i32);
pub const TvRat_18: EnTvRat_GenericLevel = EnTvRat_GenericLevel(18i32);
pub const TvRat_19: EnTvRat_GenericLevel = EnTvRat_GenericLevel(19i32);
pub const TvRat_2: EnTvRat_GenericLevel = EnTvRat_GenericLevel(2i32);
pub const TvRat_20: EnTvRat_GenericLevel = EnTvRat_GenericLevel(20i32);
pub const TvRat_21: EnTvRat_GenericLevel = EnTvRat_GenericLevel(21i32);
pub const TvRat_3: EnTvRat_GenericLevel = EnTvRat_GenericLevel(3i32);
pub const TvRat_4: EnTvRat_GenericLevel = EnTvRat_GenericLevel(4i32);
pub const TvRat_5: EnTvRat_GenericLevel = EnTvRat_GenericLevel(5i32);
pub const TvRat_6: EnTvRat_GenericLevel = EnTvRat_GenericLevel(6i32);
pub const TvRat_7: EnTvRat_GenericLevel = EnTvRat_GenericLevel(7i32);
pub const TvRat_8: EnTvRat_GenericLevel = EnTvRat_GenericLevel(8i32);
pub const TvRat_9: EnTvRat_GenericLevel = EnTvRat_GenericLevel(9i32);
pub const TvRat_LevelDontKnow: EnTvRat_GenericLevel = EnTvRat_GenericLevel(255i32);
pub const TvRat_SystemDontKnow: EnTvRat_System = EnTvRat_System(255i32);
pub const TvRat_Unblock: EnTvRat_GenericLevel = EnTvRat_GenericLevel(-1i32);
pub const TvRat_kLevels: EnTvRat_GenericLevel = EnTvRat_GenericLevel(22i32);
pub const TvRat_kSystems: EnTvRat_System = EnTvRat_System(10i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct UDCR_TAG {
pub bVersion: u8,
pub KID: [u8; 25],
pub ullBaseCounter: u64,
pub ullBaseCounterRange: u64,
pub fScrambled: windows_core::BOOL,
pub bStreamMark: u8,
pub dwReserved1: u32,
pub dwReserved2: u32,
}
impl Default for UDCR_TAG {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const US_TV: EnTvRat_System = EnTvRat_System(1i32);
pub const US_TV_14: EnTvRat_US_TV = EnTvRat_US_TV(5i32);
pub const US_TV_G: EnTvRat_US_TV = EnTvRat_US_TV(3i32);
pub const US_TV_IsAdultLanguage: BfEnTvRat_Attributes_US_TV = BfEnTvRat_Attributes_US_TV(8i32);
pub const US_TV_IsBlocked: BfEnTvRat_Attributes_US_TV = BfEnTvRat_Attributes_US_TV(1i32);
pub const US_TV_IsSexualSituation: BfEnTvRat_Attributes_US_TV = BfEnTvRat_Attributes_US_TV(4i32);
pub const US_TV_IsSexuallySuggestiveDialog: BfEnTvRat_Attributes_US_TV = BfEnTvRat_Attributes_US_TV(16i32);
pub const US_TV_IsViolent: BfEnTvRat_Attributes_US_TV = BfEnTvRat_Attributes_US_TV(2i32);
pub const US_TV_MA: EnTvRat_US_TV = EnTvRat_US_TV(6i32);
pub const US_TV_None: EnTvRat_US_TV = EnTvRat_US_TV(0i32);
pub const US_TV_None7: EnTvRat_US_TV = EnTvRat_US_TV(7i32);
pub const US_TV_PG: EnTvRat_US_TV = EnTvRat_US_TV(4i32);
pub const US_TV_ValidAttrSubmask: BfEnTvRat_Attributes_US_TV = BfEnTvRat_Attributes_US_TV(31i32);
pub const US_TV_Y: EnTvRat_US_TV = EnTvRat_US_TV(1i32);
pub const US_TV_Y7: EnTvRat_US_TV = EnTvRat_US_TV(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct VA_COLOR_PRIMARIES(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct VA_MATRIX_COEFFICIENTS(pub i32);
pub const VA_MATRIX_COEFF_FCC: VA_MATRIX_COEFFICIENTS = VA_MATRIX_COEFFICIENTS(4i32);
pub const VA_MATRIX_COEFF_H264_RGB: VA_MATRIX_COEFFICIENTS = VA_MATRIX_COEFFICIENTS(0i32);
pub const VA_MATRIX_COEFF_H264_YCgCo: VA_MATRIX_COEFFICIENTS = VA_MATRIX_COEFFICIENTS(8i32);
pub const VA_MATRIX_COEFF_ITU_R_BT_470_SYSTEM_B_G: VA_MATRIX_COEFFICIENTS = VA_MATRIX_COEFFICIENTS(5i32);
pub const VA_MATRIX_COEFF_ITU_R_BT_709: VA_MATRIX_COEFFICIENTS = VA_MATRIX_COEFFICIENTS(1i32);
pub const VA_MATRIX_COEFF_SMPTE_170M: VA_MATRIX_COEFFICIENTS = VA_MATRIX_COEFFICIENTS(6i32);
pub const VA_MATRIX_COEFF_SMPTE_240M: VA_MATRIX_COEFFICIENTS = VA_MATRIX_COEFFICIENTS(7i32);
pub const VA_MATRIX_COEFF_UNSPECIFIED: VA_MATRIX_COEFFICIENTS = VA_MATRIX_COEFFICIENTS(2i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct VA_OPTIONAL_VIDEO_PROPERTIES {
pub dwPictureHeight: u16,
pub dwPictureWidth: u16,
pub dwAspectRatioX: u16,
pub dwAspectRatioY: u16,
pub VAVideoFormat: VA_VIDEO_FORMAT,
pub VAColorPrimaries: VA_COLOR_PRIMARIES,
pub VATransferCharacteristics: VA_TRANSFER_CHARACTERISTICS,
pub VAMatrixCoefficients: VA_MATRIX_COEFFICIENTS,
}
pub const VA_PRIMARIES_H264_GENERIC_FILM: VA_COLOR_PRIMARIES = VA_COLOR_PRIMARIES(8i32);
pub const VA_PRIMARIES_ITU_R_BT_470_SYSTEM_B_G: VA_COLOR_PRIMARIES = VA_COLOR_PRIMARIES(5i32);
pub const VA_PRIMARIES_ITU_R_BT_470_SYSTEM_M: VA_COLOR_PRIMARIES = VA_COLOR_PRIMARIES(4i32);
pub const VA_PRIMARIES_ITU_R_BT_709: VA_COLOR_PRIMARIES = VA_COLOR_PRIMARIES(1i32);
pub const VA_PRIMARIES_SMPTE_170M: VA_COLOR_PRIMARIES = VA_COLOR_PRIMARIES(6i32);
pub const VA_PRIMARIES_SMPTE_240M: VA_COLOR_PRIMARIES = VA_COLOR_PRIMARIES(7i32);
pub const VA_PRIMARIES_UNSPECIFIED: VA_COLOR_PRIMARIES = VA_COLOR_PRIMARIES(2i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct VA_TRANSFER_CHARACTERISTICS(pub i32);
pub const VA_TRANSFER_CHARACTERISTICS_H264_LOG_100_TO_1: VA_TRANSFER_CHARACTERISTICS = VA_TRANSFER_CHARACTERISTICS(9i32);
pub const VA_TRANSFER_CHARACTERISTICS_H264_LOG_316_TO_1: VA_TRANSFER_CHARACTERISTICS = VA_TRANSFER_CHARACTERISTICS(10i32);
pub const VA_TRANSFER_CHARACTERISTICS_ITU_R_BT_470_SYSTEM_B_G: VA_TRANSFER_CHARACTERISTICS = VA_TRANSFER_CHARACTERISTICS(5i32);
pub const VA_TRANSFER_CHARACTERISTICS_ITU_R_BT_470_SYSTEM_M: VA_TRANSFER_CHARACTERISTICS = VA_TRANSFER_CHARACTERISTICS(4i32);
pub const VA_TRANSFER_CHARACTERISTICS_ITU_R_BT_709: VA_TRANSFER_CHARACTERISTICS = VA_TRANSFER_CHARACTERISTICS(1i32);
pub const VA_TRANSFER_CHARACTERISTICS_LINEAR: VA_TRANSFER_CHARACTERISTICS = VA_TRANSFER_CHARACTERISTICS(8i32);
pub const VA_TRANSFER_CHARACTERISTICS_SMPTE_170M: VA_TRANSFER_CHARACTERISTICS = VA_TRANSFER_CHARACTERISTICS(6i32);
pub const VA_TRANSFER_CHARACTERISTICS_SMPTE_240M: VA_TRANSFER_CHARACTERISTICS = VA_TRANSFER_CHARACTERISTICS(7i32);
pub const VA_TRANSFER_CHARACTERISTICS_UNSPECIFIED: VA_TRANSFER_CHARACTERISTICS = VA_TRANSFER_CHARACTERISTICS(2i32);
pub const VA_VIDEO_COMPONENT: VA_VIDEO_FORMAT = VA_VIDEO_FORMAT(0i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct VA_VIDEO_FORMAT(pub i32);
pub const VA_VIDEO_MAC: VA_VIDEO_FORMAT = VA_VIDEO_FORMAT(4i32);
pub const VA_VIDEO_NTSC: VA_VIDEO_FORMAT = VA_VIDEO_FORMAT(2i32);
pub const VA_VIDEO_PAL: VA_VIDEO_FORMAT = VA_VIDEO_FORMAT(1i32);
pub const VA_VIDEO_SECAM: VA_VIDEO_FORMAT = VA_VIDEO_FORMAT(3i32);
pub const VA_VIDEO_UNSPECIFIED: VA_VIDEO_FORMAT = VA_VIDEO_FORMAT(5i32);
#[repr(C, packed(1))]
#[derive(Clone, Copy)]
pub struct WMDRMProtectionInfo {
pub wszKID: [u16; 25],
pub qwCounter: u64,
pub qwIndex: u64,
pub bOffset: u8,
}
impl Default for WMDRMProtectionInfo {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub const XDSCodec: windows_core::GUID = windows_core::GUID::from_u128(0xc4c4c4f3_0049_4e2b_98fb_9537f6ce516d);
pub const XDSToRat: windows_core::GUID = windows_core::GUID::from_u128(0xc5c5c5f0_3abc_11d6_b25b_00c04fa0c026);
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::define_interface!(_IMSVidCtlEvents, _IMSVidCtlEvents_Vtbl, 0xb0edf164_910a_11d2_b632_00c04f79498e);
#[cfg(feature = "Win32_System_Com")]
impl core::ops::Deref for _IMSVidCtlEvents {
type Target = super::super::super::System::Com::IDispatch;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
#[cfg(feature = "Win32_System_Com")]
windows_core::imp::interface_hierarchy!(_IMSVidCtlEvents, windows_core::IUnknown, super::super::super::System::Com::IDispatch);
#[cfg(feature = "Win32_System_Com")]
#[repr(C)]
#[doc(hidden)]
pub struct _IMSVidCtlEvents_Vtbl {
pub base__: super::super::super::System::Com::IDispatch_Vtbl,
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait _IMSVidCtlEvents_Impl: super::super::super::System::Com::IDispatch_Impl {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl _IMSVidCtlEvents_Vtbl {
pub const fn new<Identity: _IMSVidCtlEvents_Impl, const OFFSET: isize>() -> Self {
Self { base__: super::super::super::System::Com::IDispatch_Vtbl::new::<Identity, OFFSET>() }
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<_IMSVidCtlEvents as windows_core::Interface>::IID || iid == &<super::super::super::System::Com::IDispatch as windows_core::Interface>::IID
}
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl windows_core::RuntimeName for _IMSVidCtlEvents {}
pub const dispidAVAudioChannelConfigEvent: SegEventidList = SegEventidList(51i32);
pub const dispidAVAudioChannelCountEvent: SegEventidList = SegEventidList(52i32);
pub const dispidAVAudioSampleRateEvent: SegEventidList = SegEventidList(50i32);
pub const dispidAVDDSurroundModeEvent: SegEventidList = SegEventidList(54i32);
pub const dispidAVDecAudioDualMonoEvent: SegEventidList = SegEventidList(49i32);
pub const dispidAVDecCommonInputFormatEvent: SegEventidList = SegEventidList(55i32);
pub const dispidAVDecCommonMeanBitRateEvent: SegEventidList = SegEventidList(53i32);
pub const dispidAVDecCommonOutputFormatEvent: SegEventidList = SegEventidList(56i32);
pub const dispidAllocPresentID: SegDispidList = SegDispidList(165i32);
pub const dispidAlloctor: SegDispidList = SegDispidList(163i32);
pub const dispidAudioRenderer: MSViddispidList = MSViddispidList(10i32);
pub const dispidAudioRenderers: MSViddispidList = MSViddispidList(5i32);
pub const dispidAuxInputs: SegDispidList = SegDispidList(195i32);
pub const dispidAvailableSourceRect: SegDispidList = SegDispidList(33i32);
pub const dispidBookmarkOnStop: SegDispidList = SegDispidList(158i32);
pub const dispidBuild: MSViddispidList = MSViddispidList(13i32);
pub const dispidCCEnable: SegDispidList = SegDispidList(38i32);
pub const dispidCLSID: SegDispidList = SegDispidList(24i32);
pub const dispidCapture: SegDispidList = SegDispidList(161i32);
pub const dispidChangePassword: SegDispidList = SegDispidList(149i32);
pub const dispidChannelAvailable: SegDispidList = SegDispidList(13i32);
pub const dispidClip: SegDispidList = SegDispidList(30i32);
pub const dispidClippedSourceRect: SegDispidList = SegDispidList(32i32);
pub const dispidColorKey: MSViddispidList = MSViddispidList(20i32);
pub const dispidConfirmPassword: SegDispidList = SegDispidList(152i32);
pub const dispidCount: SegDispidList = SegDispidList(16i32);
pub const dispidCustomCompositorClass: SegDispidList = SegDispidList(134i32);
pub const dispidDecompose: MSViddispidList = MSViddispidList(17i32);
pub const dispidDefaultAudioLCID: SegDispidList = SegDispidList(155i32);
pub const dispidDefaultMenuLCID: SegDispidList = SegDispidList(157i32);
pub const dispidDefaultSubpictureLCID: SegDispidList = SegDispidList(156i32);
pub const dispidDevAudioFrequency: SegDispidList = SegDispidList(15i32);
pub const dispidDevAudioSubchannel: SegDispidList = SegDispidList(12i32);
pub const dispidDevBalance: SegDispidList = SegDispidList(8i32);
pub const dispidDevCanStep: SegDispidList = SegDispidList(40i32);
pub const dispidDevCountryCode: SegDispidList = SegDispidList(4i32);
pub const dispidDevFileName: SegDispidList = SegDispidList(17i32);
pub const dispidDevImageSourceHeight: SegDispidList = SegDispidList(3i32);
pub const dispidDevImageSourceWidth: SegDispidList = SegDispidList(2i32);
pub const dispidDevOverScan: SegDispidList = SegDispidList(5i32);
pub const dispidDevPause: SegDispidList = SegDispidList(36i32);
pub const dispidDevPower: SegDispidList = SegDispidList(9i32);
pub const dispidDevRun: SegDispidList = SegDispidList(35i32);
pub const dispidDevSAP: SegDispidList = SegDispidList(29i32);
pub const dispidDevStep: SegDispidList = SegDispidList(39i32);
pub const dispidDevStop: SegDispidList = SegDispidList(37i32);
pub const dispidDevVideoFrequency: SegDispidList = SegDispidList(14i32);
pub const dispidDevVideoSubchannel: SegDispidList = SegDispidList(11i32);
pub const dispidDevView: SegDispidList = SegDispidList(22i32);
pub const dispidDevVolume: SegDispidList = SegDispidList(7i32);
pub const dispidDevicePath: SegDispidList = SegDispidList(217i32);
pub const dispidDisableAudio: MSViddispidList = MSViddispidList(26i32);
pub const dispidDisableVideo: MSViddispidList = MSViddispidList(25i32);
pub const dispidDisplayChange: SegDispidList = SegDispidList(142i32);
pub const dispidDisplaySize: MSViddispidList = MSViddispidList(18i32);
pub const dispidFeatures: MSViddispidList = MSViddispidList(6i32);
pub const dispidGetParentalCountry: SegDispidList = SegDispidList(154i32);
pub const dispidGetParentalLevel: SegDispidList = SegDispidList(153i32);
pub const dispidInput: MSViddispidList = MSViddispidList(7i32);
pub const dispidInputs: MSViddispidList = MSViddispidList(0i32);
pub const dispidKSCat: SegDispidList = SegDispidList(23i32);
pub const dispidMaintainAspectRatio: MSViddispidList = MSViddispidList(19i32);
pub const dispidMaxVidRect: SegDispidList = SegDispidList(159i32);
pub const dispidMediaPosition: SegDispidList = SegDispidList(34i32);
pub const dispidMessageDrain: SegDispidList = SegDispidList(20i32);
pub const dispidMinVidRect: SegDispidList = SegDispidList(160i32);
pub const dispidMixerBitmap: SegDispidList = SegDispidList(136i32);
pub const dispidMixerBitmapOpacity: SegDispidList = SegDispidList(138i32);
pub const dispidMixerBitmapRect: SegDispidList = SegDispidList(139i32);
pub const dispidModes: SegDispidList = SegDispidList(194i32);
pub const dispidName: SegDispidList = SegDispidList(0i32);
pub const dispidNameSetLock: SegDispidList = SegDispidList(176i32);
pub const dispidOutput: MSViddispidList = MSViddispidList(8i32);
pub const dispidOutputs: MSViddispidList = MSViddispidList(1i32);
pub const dispidOwner: SegDispidList = SegDispidList(19i32);
pub const dispidPause: MSViddispidList = MSViddispidList(14i32);
pub const dispidRateEx: SegDispidList = SegDispidList(201i32);
pub const dispidRePaint: SegDispidList = SegDispidList(143i32);
pub const dispidRecordingAttribute: SegDispidList = SegDispidList(179i32);
pub const dispidRequestedClipRect: SegDispidList = SegDispidList(31i32);
pub const dispidRun: MSViddispidList = MSViddispidList(15i32);
pub const dispidSBEConfigure: SegDispidList = SegDispidList(181i32);
pub const dispidSaveParentalCountry: SegDispidList = SegDispidList(151i32);
pub const dispidSaveParentalLevel: SegDispidList = SegDispidList(150i32);
pub const dispidSegment: SegDispidList = SegDispidList(6i32);
pub const dispidSelectedFeatures: MSViddispidList = MSViddispidList(11i32);
pub const dispidService: SegDispidList = SegDispidList(186i32);
pub const dispidServiceP: MSViddispidList = MSViddispidList(28i32);
pub const dispidSetAllocator: SegDispidList = SegDispidList(166i32);
pub const dispidSetMinSeek: SegDispidList = SegDispidList(200i32);
pub const dispidSetSinkFilter: SegDispidList = SegDispidList(191i32);
pub const dispidSetupMixerBitmap: SegDispidList = SegDispidList(140i32);
pub const dispidSourceSize: SegDispidList = SegDispidList(41i32);
pub const dispidStateChange: MSViddispidList = MSViddispidList(21i32);
pub const dispidStatus: SegDispidList = SegDispidList(1i32);
pub const dispidStop: MSViddispidList = MSViddispidList(16i32);
pub const dispidStreamBufferContentRecording: SegDispidList = SegDispidList(170i32);
pub const dispidStreamBufferReferenceRecording: SegDispidList = SegDispidList(171i32);
pub const dispidStreamBufferSinkName: SegDispidList = SegDispidList(168i32);
pub const dispidStreamBufferSourceName: SegDispidList = SegDispidList(169i32);
pub const dispidTS: SegDispidList = SegDispidList(28i32);
pub const dispidTVFormats: SegDispidList = SegDispidList(193i32);
pub const dispidTeleTextFilter: SegDispidList = SegDispidList(196i32);
pub const dispidTune: SegDispidList = SegDispidList(27i32);
pub const dispidTuneChan: SegDispidList = SegDispidList(10i32);
pub const dispidUnlockProfile: SegDispidList = SegDispidList(198i32);
pub const dispidUserEvent: SegDispidList = SegDispidList(220i32);
pub const dispidUsingOverlay: SegDispidList = SegDispidList(141i32);
pub const dispidVideoRenderer: MSViddispidList = MSViddispidList(9i32);
pub const dispidVideoRenderers: MSViddispidList = MSViddispidList(4i32);
pub const dispidView: MSViddispidList = MSViddispidList(12i32);
pub const dispidViewNext: MSViddispidList = MSViddispidList(27i32);
pub const dispidViewable: SegDispidList = SegDispidList(21i32);
pub const dispidVisible: SegDispidList = SegDispidList(18i32);
pub const dispid_AcceptParentalLevelChange: SegDispidList = SegDispidList(97i32);
pub const dispid_ActivateAtPosition: SegDispidList = SegDispidList(67i32);
pub const dispid_ActivateButton: SegDispidList = SegDispidList(62i32);
pub const dispid_AddFilter: SegDispidList = SegDispidList(199i32);
pub const dispid_Allocator: SegDispidList = SegDispidList(164i32);
pub const dispid_AnglesAvailable: SegDispidList = SegDispidList(89i32);
pub const dispid_AudioStreamsAvailable: SegDispidList = SegDispidList(88i32);
pub const dispid_BlockUnrated: SegDispidList = SegDispidList(187i32);
pub const dispid_Bookmark: SegDispidList = SegDispidList(221i32);
pub const dispid_ButtonAtPosition: SegDispidList = SegDispidList(69i32);
pub const dispid_ButtonRect: SegDispidList = SegDispidList(131i32);
pub const dispid_CCActive: SegDispidList = SegDispidList(91i32);
pub const dispid_CLSID: SegDispidList = SegDispidList(26i32);
pub const dispid_CurrentAngle: SegDispidList = SegDispidList(90i32);
pub const dispid_CurrentAudioStream: SegDispidList = SegDispidList(87i32);
pub const dispid_CurrentCCService: SegDispidList = SegDispidList(92i32);
pub const dispid_CurrentChapter: SegDispidList = SegDispidList(77i32);
pub const dispid_CurrentDiscSide: SegDispidList = SegDispidList(75i32);
pub const dispid_CurrentDomain: SegDispidList = SegDispidList(76i32);
pub const dispid_CurrentRatings: SegDispidList = SegDispidList(182i32);
pub const dispid_CurrentSubpictureStream: SegDispidList = SegDispidList(85i32);
pub const dispid_CurrentTime: SegDispidList = SegDispidList(79i32);
pub const dispid_CurrentTitle: SegDispidList = SegDispidList(78i32);
pub const dispid_CurrentVolume: SegDispidList = SegDispidList(74i32);
pub const dispid_CustomCompositor: SegDispidList = SegDispidList(135i32);
pub const dispid_CustomCompositorClass: SegDispidList = SegDispidList(133i32);
pub const dispid_DVDAdm: SegDispidList = SegDispidList(114i32);
pub const dispid_DVDDirectory: SegDispidList = SegDispidList(82i32);
pub const dispid_DVDScreenInMouseCoordinates: SegDispidList = SegDispidList(132i32);
pub const dispid_DVDTextLanguageLCID: SegDispidList = SegDispidList(112i32);
pub const dispid_DVDTextNumberOfLanguages: SegDispidList = SegDispidList(111i32);
pub const dispid_DVDTextNumberOfStrings: SegDispidList = SegDispidList(110i32);
pub const dispid_DVDTextString: SegDispidList = SegDispidList(109i32);
pub const dispid_DVDTextStringType: SegDispidList = SegDispidList(108i32);
pub const dispid_DVDTimeCode2bstr: SegDispidList = SegDispidList(81i32);
pub const dispid_DVDUniqueID: SegDispidList = SegDispidList(95i32);
pub const dispid_DecimateInput: SegDispidList = SegDispidList(162i32);
pub const dispid_DefaultAudioLanguage: SegDispidList = SegDispidList(123i32);
pub const dispid_DefaultAudioLanguageExt: SegDispidList = SegDispidList(125i32);
pub const dispid_DefaultMenuLanguage: SegDispidList = SegDispidList(121i32);
pub const dispid_DefaultSubpictureLanguage: SegDispidList = SegDispidList(122i32);
pub const dispid_DefaultSubpictureLanguageExt: SegDispidList = SegDispidList(124i32);
pub const dispid_DeleteBookmark: SegDispidList = SegDispidList(115i32);
pub const dispid_Eject: SegDispidList = SegDispidList(104i32);
pub const dispid_EnableResetOnStop: SegDispidList = SegDispidList(96i32);
pub const dispid_FramesPerSecond: SegDispidList = SegDispidList(80i32);
pub const dispid_GPRM: SegDispidList = SegDispidList(107i32);
pub const dispid_Inputs: MSViddispidList = MSViddispidList(2i32);
pub const dispid_IsAudioStreamEnabled: SegDispidList = SegDispidList(84i32);
pub const dispid_IsEqualDevice: SegDispidList = SegDispidList(144i32);
pub const dispid_IsSubpictureStreamEnabled: SegDispidList = SegDispidList(83i32);
pub const dispid_KSCat: SegDispidList = SegDispidList(25i32);
pub const dispid_KaraokeAudioPresentationMode: SegDispidList = SegDispidList(127i32);
pub const dispid_KaraokeChannelAssignment: SegDispidList = SegDispidList(129i32);
pub const dispid_KaraokeChannelContent: SegDispidList = SegDispidList(128i32);
pub const dispid_LanguageFromLCID: SegDispidList = SegDispidList(126i32);
pub const dispid_MaxRatingsLevel: SegDispidList = SegDispidList(183i32);
pub const dispid_MixerBitmap: SegDispidList = SegDispidList(137i32);
pub const dispid_NotifyParentalLevelChange: SegDispidList = SegDispidList(98i32);
pub const dispid_NumberOfChapters: SegDispidList = SegDispidList(70i32);
pub const dispid_Outputs: MSViddispidList = MSViddispidList(3i32);
pub const dispid_PlayerParentalCountry: SegDispidList = SegDispidList(102i32);
pub const dispid_PlayerParentalLevel: SegDispidList = SegDispidList(103i32);
pub const dispid_PreferredSubpictureStream: SegDispidList = SegDispidList(120i32);
pub const dispid_RecordingAttribute: SegDispidList = SegDispidList(180i32);
pub const dispid_RegionChange: SegDispidList = SegDispidList(113i32);
pub const dispid_RestoreBookmark: SegDispidList = SegDispidList(116i32);
pub const dispid_RestorePreferredSettings: SegDispidList = SegDispidList(130i32);
pub const dispid_SPRM: SegDispidList = SegDispidList(106i32);
pub const dispid_SaveBookmark: SegDispidList = SegDispidList(117i32);
pub const dispid_SelectAndActivateButton: SegDispidList = SegDispidList(61i32);
pub const dispid_SelectAtPosition: SegDispidList = SegDispidList(68i32);
pub const dispid_SelectDefaultAudioLanguage: SegDispidList = SegDispidList(118i32);
pub const dispid_SelectDefaultSubpictureLanguage: SegDispidList = SegDispidList(119i32);
pub const dispid_SelectLeftButton: SegDispidList = SegDispidList(64i32);
pub const dispid_SelectLowerButton: SegDispidList = SegDispidList(65i32);
pub const dispid_SelectParentalCountry: SegDispidList = SegDispidList(99i32);
pub const dispid_SelectParentalLevel: SegDispidList = SegDispidList(100i32);
pub const dispid_SelectRightButton: SegDispidList = SegDispidList(63i32);
pub const dispid_SelectUpperButton: SegDispidList = SegDispidList(66i32);
pub const dispid_SetAllocator: SegDispidList = SegDispidList(167i32);
pub const dispid_SinkStreams: SegDispidList = SegDispidList(192i32);
pub const dispid_SourceFilter: SegDispidList = SegDispidList(218i32);
pub const dispid_SubpictureLanguage: SegDispidList = SegDispidList(86i32);
pub const dispid_SubpictureOn: SegDispidList = SegDispidList(94i32);
pub const dispid_SubpictureStreamsAvailable: SegDispidList = SegDispidList(93i32);
pub const dispid_SuppressEffects: SegDispidList = SegDispidList(189i32);
pub const dispid_TitleParentalLevels: SegDispidList = SegDispidList(101i32);
pub const dispid_TitlesAvailable: SegDispidList = SegDispidList(72i32);
pub const dispid_TotalTitleTime: SegDispidList = SegDispidList(71i32);
pub const dispid_UOPValid: SegDispidList = SegDispidList(105i32);
pub const dispid_UnratedDelay: SegDispidList = SegDispidList(188i32);
pub const dispid_VolumesAvailable: SegDispidList = SegDispidList(73i32);
pub const dispid__SourceFilter: SegDispidList = SegDispidList(219i32);
pub const dispid_audiocounter: SegDispidList = SegDispidList(206i32);
pub const dispid_audioencoderint: SegDispidList = SegDispidList(184i32);
pub const dispid_audiolanguage: SegDispidList = SegDispidList(55i32);
pub const dispid_buttonsavailable: SegDispidList = SegDispidList(59i32);
pub const dispid_cccounter: SegDispidList = SegDispidList(208i32);
pub const dispid_channelchangeint: SegDispidList = SegDispidList(197i32);
pub const dispid_currentbutton: SegDispidList = SegDispidList(60i32);
pub const dispid_playattime: SegDispidList = SegDispidList(46i32);
pub const dispid_playattimeintitle: SegDispidList = SegDispidList(47i32);
pub const dispid_playbackwards: SegDispidList = SegDispidList(53i32);
pub const dispid_playchapter: SegDispidList = SegDispidList(44i32);
pub const dispid_playchapterintitle: SegDispidList = SegDispidList(43i32);
pub const dispid_playchaptersautostop: SegDispidList = SegDispidList(45i32);
pub const dispid_playforwards: SegDispidList = SegDispidList(52i32);
pub const dispid_playnextchapter: SegDispidList = SegDispidList(51i32);
pub const dispid_playperiodintitleautostop: SegDispidList = SegDispidList(48i32);
pub const dispid_playprevchapter: SegDispidList = SegDispidList(50i32);
pub const dispid_playtitle: SegDispidList = SegDispidList(42i32);
pub const dispid_replaychapter: SegDispidList = SegDispidList(49i32);
pub const dispid_resetFilterList: SegDispidList = SegDispidList(216i32);
pub const dispid_resume: SegDispidList = SegDispidList(57i32);
pub const dispid_returnfromsubmenu: SegDispidList = SegDispidList(58i32);
pub const dispid_showmenu: SegDispidList = SegDispidList(56i32);
pub const dispid_stilloff: SegDispidList = SegDispidList(54i32);
pub const dispid_videocounter: SegDispidList = SegDispidList(207i32);
pub const dispid_videoencoderint: SegDispidList = SegDispidList(185i32);
pub const dispid_wstcounter: SegDispidList = SegDispidList(209i32);
pub const dispidaudio_analysis: SegDispidList = SegDispidList(213i32);
pub const dispidaudioanalysis: SegDispidList = SegDispidList(210i32);
pub const dispidaudiocounter: SegDispidList = SegDispidList(202i32);
pub const dispidbind: MSViddispidList = MSViddispidList(24i32);
pub const dispidcccounter: SegDispidList = SegDispidList(204i32);
pub const dispiddata_analysis: SegDispidList = SegDispidList(215i32);
pub const dispiddataanalysis: SegDispidList = SegDispidList(212i32);
pub const dispidgetState: MSViddispidList = MSViddispidList(22i32);
pub const dispidlength: SegDispidList = SegDispidList(148i32);
pub const dispidlicenseerrorcode: SegEventidList = SegEventidList(45i32);
pub const dispidposition: SegDispidList = SegDispidList(146i32);
pub const dispidpositionmode: SegDispidList = SegDispidList(147i32);
pub const dispidrate: SegDispidList = SegDispidList(145i32);
pub const dispidrecordingstarted: SegDispidList = SegDispidList(175i32);
pub const dispidrecordingstopped: SegDispidList = SegDispidList(174i32);
pub const dispidrecordingtype: SegDispidList = SegDispidList(177i32);
pub const dispidsbesource: SegDispidList = SegDispidList(190i32);
pub const dispidstart: SegDispidList = SegDispidList(178i32);
pub const dispidstarttime: SegDispidList = SegDispidList(172i32);
pub const dispidstoptime: SegDispidList = SegDispidList(173i32);
pub const dispidunbind: MSViddispidList = MSViddispidList(23i32);
pub const dispidvideo_analysis: SegDispidList = SegDispidList(214i32);
pub const dispidvideoanalysis: SegDispidList = SegDispidList(211i32);
pub const dispidvideocounter: SegDispidList = SegDispidList(203i32);
pub const dispidwstcounter: SegDispidList = SegDispidList(205i32);
pub const dslDefaultSize: DisplaySizeList = DisplaySizeList(0i32);
pub const dslDoubleSourceSize: DisplaySizeList = DisplaySizeList(2i32);
pub const dslFullScreen: DisplaySizeList = DisplaySizeList(3i32);
pub const dslHalfScreen: DisplaySizeList = DisplaySizeList(4i32);
pub const dslHalfSourceSize: DisplaySizeList = DisplaySizeList(1i32);
pub const dslQuarterScreen: DisplaySizeList = DisplaySizeList(5i32);
pub const dslSixteenthScreen: DisplaySizeList = DisplaySizeList(6i32);
pub const dslSourceSize: DisplaySizeList = DisplaySizeList(0i32);
pub const dvdChannel_Audio: DVDTextStringType = DVDTextStringType(32i32);
pub const dvdGeneral_Comments: DVDTextStringType = DVDTextStringType(49i32);
pub const dvdGeneral_Name: DVDTextStringType = DVDTextStringType(48i32);
pub const dvdMenu_Angle: DVDMenuIDConstants = DVDMenuIDConstants(6i32);
pub const dvdMenu_Audio: DVDMenuIDConstants = DVDMenuIDConstants(5i32);
pub const dvdMenu_Chapter: DVDMenuIDConstants = DVDMenuIDConstants(7i32);
pub const dvdMenu_Root: DVDMenuIDConstants = DVDMenuIDConstants(3i32);
pub const dvdMenu_Subpicture: DVDMenuIDConstants = DVDMenuIDConstants(4i32);
pub const dvdMenu_Title: DVDMenuIDConstants = DVDMenuIDConstants(2i32);
pub const dvdOther_Cut: DVDTextStringType = DVDTextStringType(81i32);
pub const dvdOther_Scene: DVDTextStringType = DVDTextStringType(80i32);
pub const dvdOther_Take: DVDTextStringType = DVDTextStringType(82i32);
pub const dvdSPExt_CC_Big: DVDSPExt = DVDSPExt(6i32);
pub const dvdSPExt_CC_Children: DVDSPExt = DVDSPExt(7i32);
pub const dvdSPExt_CC_Normal: DVDSPExt = DVDSPExt(5i32);
pub const dvdSPExt_Caption_Big: DVDSPExt = DVDSPExt(2i32);
pub const dvdSPExt_Caption_Children: DVDSPExt = DVDSPExt(3i32);
pub const dvdSPExt_Caption_Normal: DVDSPExt = DVDSPExt(1i32);
pub const dvdSPExt_DirectorComments_Big: DVDSPExt = DVDSPExt(14i32);
pub const dvdSPExt_DirectorComments_Children: DVDSPExt = DVDSPExt(15i32);
pub const dvdSPExt_DirectorComments_Normal: DVDSPExt = DVDSPExt(13i32);
pub const dvdSPExt_Forced: DVDSPExt = DVDSPExt(9i32);
pub const dvdSPExt_NotSpecified: DVDSPExt = DVDSPExt(0i32);
pub const dvdState_Paused: DVDFilterState = DVDFilterState(1i32);
pub const dvdState_Running: DVDFilterState = DVDFilterState(2i32);
pub const dvdState_Stopped: DVDFilterState = DVDFilterState(0i32);
pub const dvdState_Undefined: DVDFilterState = DVDFilterState(-2i32);
pub const dvdState_Unitialized: DVDFilterState = DVDFilterState(-1i32);
pub const dvdStream_Angle: DVDTextStringType = DVDTextStringType(18i32);
pub const dvdStream_Audio: DVDTextStringType = DVDTextStringType(16i32);
pub const dvdStream_Subpicture: DVDTextStringType = DVDTextStringType(17i32);
pub const dvdStruct_Cell: DVDTextStringType = DVDTextStringType(5i32);
pub const dvdStruct_ParentalID: DVDTextStringType = DVDTextStringType(3i32);
pub const dvdStruct_PartOfTitle: DVDTextStringType = DVDTextStringType(4i32);
pub const dvdStruct_Title: DVDTextStringType = DVDTextStringType(2i32);
pub const dvdStruct_Volume: DVDTextStringType = DVDTextStringType(1i32);
pub const dvdTitle_Album: DVDTextStringType = DVDTextStringType(59i32);
pub const dvdTitle_Movie: DVDTextStringType = DVDTextStringType(57i32);
pub const dvdTitle_Orig_Album: DVDTextStringType = DVDTextStringType(75i32);
pub const dvdTitle_Orig_Movie: DVDTextStringType = DVDTextStringType(73i32);
pub const dvdTitle_Orig_Other: DVDTextStringType = DVDTextStringType(79i32);
pub const dvdTitle_Orig_Series: DVDTextStringType = DVDTextStringType(72i32);
pub const dvdTitle_Orig_Song: DVDTextStringType = DVDTextStringType(76i32);
pub const dvdTitle_Orig_Video: DVDTextStringType = DVDTextStringType(74i32);
pub const dvdTitle_Other: DVDTextStringType = DVDTextStringType(63i32);
pub const dvdTitle_Series: DVDTextStringType = DVDTextStringType(56i32);
pub const dvdTitle_Song: DVDTextStringType = DVDTextStringType(60i32);
pub const dvdTitle_Sub_Album: DVDTextStringType = DVDTextStringType(67i32);
pub const dvdTitle_Sub_Movie: DVDTextStringType = DVDTextStringType(65i32);
pub const dvdTitle_Sub_Other: DVDTextStringType = DVDTextStringType(71i32);
pub const dvdTitle_Sub_Series: DVDTextStringType = DVDTextStringType(64i32);
pub const dvdTitle_Sub_Song: DVDTextStringType = DVDTextStringType(68i32);
pub const dvdTitle_Sub_Video: DVDTextStringType = DVDTextStringType(66i32);
pub const dvdTitle_Video: DVDTextStringType = DVDTextStringType(58i32);
pub const eventidBroadcastEvent: SegEventidList = SegEventidList(46i32);
pub const eventidBroadcastEventEx: SegEventidList = SegEventidList(47i32);
pub const eventidCOPPBlocked: SegEventidList = SegEventidList(43i32);
pub const eventidCOPPUnblocked: SegEventidList = SegEventidList(44i32);
pub const eventidChangeCurrentAngle: SegEventidList = SegEventidList(13i32);
pub const eventidChangeCurrentAudioStream: SegEventidList = SegEventidList(11i32);
pub const eventidChangeCurrentSubpictureStream: SegEventidList = SegEventidList(12i32);
pub const eventidChangeKaraokePresMode: SegEventidList = SegEventidList(24i32);
pub const eventidChangeVideoPresMode: SegEventidList = SegEventidList(25i32);
pub const eventidContentBecomingStale: SegEventidList = SegEventidList(37i32);
pub const eventidContentPrimarilyAudio: SegEventidList = SegEventidList(48i32);
pub const eventidDVDNotify: SegEventidList = SegEventidList(3i32);
pub const eventidEncryptionOff: SegEventidList = SegEventidList(40i32);
pub const eventidEncryptionOn: SegEventidList = SegEventidList(39i32);
pub const eventidEndOfMedia: SegEventidList = SegEventidList(2i32);
pub const eventidLicenseChange: SegEventidList = SegEventidList(42i32);
pub const eventidOnTuneChanged: SegEventidList = SegEventidList(1i32);
pub const eventidOverlayUnavailable: SegEventidList = SegEventidList(26i32);
pub const eventidPauseOn: SegEventidList = SegEventidList(10i32);
pub const eventidPlayAtTime: SegEventidList = SegEventidList(15i32);
pub const eventidPlayAtTimeInTitle: SegEventidList = SegEventidList(14i32);
pub const eventidPlayBackwards: SegEventidList = SegEventidList(5i32);
pub const eventidPlayChapter: SegEventidList = SegEventidList(17i32);
pub const eventidPlayChapterInTitle: SegEventidList = SegEventidList(16i32);
pub const eventidPlayForwards: SegEventidList = SegEventidList(4i32);
pub const eventidPlayNextChapter: SegEventidList = SegEventidList(19i32);
pub const eventidPlayPrevChapter: SegEventidList = SegEventidList(23i32);
pub const eventidPlayTitle: SegEventidList = SegEventidList(22i32);
pub const eventidRateChange: SegEventidList = SegEventidList(41i32);
pub const eventidRatingsBlocked: SegEventidList = SegEventidList(31i32);
pub const eventidRatingsChanged: SegEventidList = SegEventidList(33i32);
pub const eventidRatingsUnlocked: SegEventidList = SegEventidList(32i32);
pub const eventidReplayChapter: SegEventidList = SegEventidList(18i32);
pub const eventidResume: SegEventidList = SegEventidList(7i32);
pub const eventidReturnFromSubmenu: SegEventidList = SegEventidList(21i32);
pub const eventidSelectOrActivateButton: SegEventidList = SegEventidList(8i32);
pub const eventidShowMenu: SegEventidList = SegEventidList(6i32);
pub const eventidSinkCertificateFailure: SegEventidList = SegEventidList(27i32);
pub const eventidSinkCertificateSuccess: SegEventidList = SegEventidList(28i32);
pub const eventidSourceCertificateFailure: SegEventidList = SegEventidList(29i32);
pub const eventidSourceCertificateSuccess: SegEventidList = SegEventidList(30i32);
pub const eventidStaleDataRead: SegEventidList = SegEventidList(36i32);
pub const eventidStaleFileDeleted: SegEventidList = SegEventidList(38i32);
pub const eventidStateChange: SegEventidList = SegEventidList(0i32);
pub const eventidStillOff: SegEventidList = SegEventidList(9i32);
pub const eventidStop: SegEventidList = SegEventidList(20i32);
pub const eventidTimeHole: SegEventidList = SegEventidList(35i32);
pub const eventidWriteFailure: SegEventidList = SegEventidList(34i32);
pub const eventidWriteFailureClear: SegEventidList = SegEventidList(57i32);
pub const g_wszStreamBufferRecordingAlbumArtist: windows_core::PCWSTR = windows_core::w!("WM/AlbumArtist");
pub const g_wszStreamBufferRecordingAlbumCoverURL: windows_core::PCWSTR = windows_core::w!("WM/AlbumCoverURL");
pub const g_wszStreamBufferRecordingAlbumTitle: windows_core::PCWSTR = windows_core::w!("WM/AlbumTitle");
pub const g_wszStreamBufferRecordingAspectRatioX: windows_core::PCWSTR = windows_core::w!("AspectRatioX");
pub const g_wszStreamBufferRecordingAspectRatioY: windows_core::PCWSTR = windows_core::w!("AspectRatioY");
pub const g_wszStreamBufferRecordingAuthor: windows_core::PCWSTR = windows_core::w!("Author");
pub const g_wszStreamBufferRecordingBannerImageData: windows_core::PCWSTR = windows_core::w!("BannerImageData");
pub const g_wszStreamBufferRecordingBannerImageType: windows_core::PCWSTR = windows_core::w!("BannerImageType");
pub const g_wszStreamBufferRecordingBannerImageURL: windows_core::PCWSTR = windows_core::w!("BannerImageURL");
pub const g_wszStreamBufferRecordingBitrate: windows_core::PCWSTR = windows_core::w!("Bitrate");
pub const g_wszStreamBufferRecordingBroadcast: windows_core::PCWSTR = windows_core::w!("Broadcast");
pub const g_wszStreamBufferRecordingComposer: windows_core::PCWSTR = windows_core::w!("WM/Composer");
pub const g_wszStreamBufferRecordingCopyright: windows_core::PCWSTR = windows_core::w!("Copyright");
pub const g_wszStreamBufferRecordingCopyrightURL: windows_core::PCWSTR = windows_core::w!("CopyrightURL");
pub const g_wszStreamBufferRecordingCurrentBitrate: windows_core::PCWSTR = windows_core::w!("CurrentBitrate");
pub const g_wszStreamBufferRecordingDRM_Flags: windows_core::PCWSTR = windows_core::w!("DRM_Flags");
pub const g_wszStreamBufferRecordingDRM_Level: windows_core::PCWSTR = windows_core::w!("DRM_Level");
pub const g_wszStreamBufferRecordingDescription: windows_core::PCWSTR = windows_core::w!("Description");
pub const g_wszStreamBufferRecordingDuration: windows_core::PCWSTR = windows_core::w!("Duration");
pub const g_wszStreamBufferRecordingFileSize: windows_core::PCWSTR = windows_core::w!("FileSize");
pub const g_wszStreamBufferRecordingGenre: windows_core::PCWSTR = windows_core::w!("WM/Genre");
pub const g_wszStreamBufferRecordingGenreID: windows_core::PCWSTR = windows_core::w!("WM/GenreID");
pub const g_wszStreamBufferRecordingHasArbitraryDataStream: windows_core::PCWSTR = windows_core::w!("HasArbitraryDataStream");
pub const g_wszStreamBufferRecordingHasAttachedImages: windows_core::PCWSTR = windows_core::w!("HasAttachedImages");
pub const g_wszStreamBufferRecordingHasAudio: windows_core::PCWSTR = windows_core::w!("HasAudio");
pub const g_wszStreamBufferRecordingHasFileTransferStream: windows_core::PCWSTR = windows_core::w!("HasFileTransferStream");
pub const g_wszStreamBufferRecordingHasImage: windows_core::PCWSTR = windows_core::w!("HasImage");
pub const g_wszStreamBufferRecordingHasScript: windows_core::PCWSTR = windows_core::w!("HasScript");
pub const g_wszStreamBufferRecordingHasVideo: windows_core::PCWSTR = windows_core::w!("HasVideo");
pub const g_wszStreamBufferRecordingIsVBR: windows_core::PCWSTR = windows_core::w!("IsVBR");
pub const g_wszStreamBufferRecordingLyrics: windows_core::PCWSTR = windows_core::w!("WM/Lyrics");
pub const g_wszStreamBufferRecordingMCDI: windows_core::PCWSTR = windows_core::w!("WM/MCDI");
pub const g_wszStreamBufferRecordingNSCAddress: windows_core::PCWSTR = windows_core::w!("NSC_Address");
pub const g_wszStreamBufferRecordingNSCDescription: windows_core::PCWSTR = windows_core::w!("NSC_Description");
pub const g_wszStreamBufferRecordingNSCEmail: windows_core::PCWSTR = windows_core::w!("NSC_Email");
pub const g_wszStreamBufferRecordingNSCName: windows_core::PCWSTR = windows_core::w!("NSC_Name");
pub const g_wszStreamBufferRecordingNSCPhone: windows_core::PCWSTR = windows_core::w!("NSC_Phone");
pub const g_wszStreamBufferRecordingNumberOfFrames: windows_core::PCWSTR = windows_core::w!("NumberOfFrames");
pub const g_wszStreamBufferRecordingOptimalBitrate: windows_core::PCWSTR = windows_core::w!("OptimalBitrate");
pub const g_wszStreamBufferRecordingPromotionURL: windows_core::PCWSTR = windows_core::w!("WM/PromotionURL");
pub const g_wszStreamBufferRecordingProtected: windows_core::PCWSTR = windows_core::w!("Is_Protected");
pub const g_wszStreamBufferRecordingRating: windows_core::PCWSTR = windows_core::w!("Rating");
pub const g_wszStreamBufferRecordingSeekable: windows_core::PCWSTR = windows_core::w!("Seekable");
pub const g_wszStreamBufferRecordingSignature_Name: windows_core::PCWSTR = windows_core::w!("Signature_Name");
pub const g_wszStreamBufferRecordingSkipBackward: windows_core::PCWSTR = windows_core::w!("Can_Skip_Backward");
pub const g_wszStreamBufferRecordingSkipForward: windows_core::PCWSTR = windows_core::w!("Can_Skip_Forward");
pub const g_wszStreamBufferRecordingStridable: windows_core::PCWSTR = windows_core::w!("Stridable");
pub const g_wszStreamBufferRecordingTitle: windows_core::PCWSTR = windows_core::w!("Title");
pub const g_wszStreamBufferRecordingToolName: windows_core::PCWSTR = windows_core::w!("WM/ToolName");
pub const g_wszStreamBufferRecordingToolVersion: windows_core::PCWSTR = windows_core::w!("WM/ToolVersion");
pub const g_wszStreamBufferRecordingTrack: windows_core::PCWSTR = windows_core::w!("WM/Track");
pub const g_wszStreamBufferRecordingTrackNumber: windows_core::PCWSTR = windows_core::w!("WM/TrackNumber");
pub const g_wszStreamBufferRecordingTrusted: windows_core::PCWSTR = windows_core::w!("Is_Trusted");
pub const g_wszStreamBufferRecordingUse_DRM: windows_core::PCWSTR = windows_core::w!("Use_DRM");
pub const g_wszStreamBufferRecordingYear: windows_core::PCWSTR = windows_core::w!("WM/Year");
pub const sslClipByClipRect: SourceSizeList = SourceSizeList(2i32);
pub const sslClipByOverScan: SourceSizeList = SourceSizeList(1i32);
pub const sslFullSize: SourceSizeList = SourceSizeList(0i32);