// This file was generated by the `windows` crate - do not edit by hand!
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod Windows {
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod Win32 {
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod ApplicationInstallationAndServicing {
pub const NTDDI_WIN7: u32 = 100728832u32;
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod Audio {
pub const APOERR_ALREADY_INITIALIZED: ::windows::HRESULT =
::windows::HRESULT(-2005073919i32 as _);
pub const APOERR_ALREADY_UNLOCKED: ::windows::HRESULT =
::windows::HRESULT(-2005073914i32 as _);
pub const APOERR_APO_LOCKED: ::windows::HRESULT =
::windows::HRESULT(-2005073910i32 as _);
pub const APOERR_BUFFERS_OVERLAP: ::windows::HRESULT =
::windows::HRESULT(-2005073915i32 as _);
pub const APOERR_FORMAT_NOT_SUPPORTED: ::windows::HRESULT =
::windows::HRESULT(-2005073917i32 as _);
pub const APOERR_INVALID_APO_CLSID: ::windows::HRESULT =
::windows::HRESULT(-2005073916i32 as _);
pub const APOERR_INVALID_COEFFCOUNT: ::windows::HRESULT =
::windows::HRESULT(-2005073909i32 as _);
pub const APOERR_INVALID_COEFFICIENT: ::windows::HRESULT =
::windows::HRESULT(-2005073908i32 as _);
pub const APOERR_INVALID_CONNECTION_FORMAT: ::windows::HRESULT =
::windows::HRESULT(-2005073911i32 as _);
pub const APOERR_INVALID_CURVE_PARAM: ::windows::HRESULT =
::windows::HRESULT(-2005073907i32 as _);
pub const APOERR_INVALID_OUTPUT_MAXFRAMECOUNT: ::windows::HRESULT =
::windows::HRESULT(-2005073912i32 as _);
pub const APOERR_NOT_INITIALIZED: ::windows::HRESULT =
::windows::HRESULT(-2005073918i32 as _);
pub const APOERR_NUM_CONNECTIONS_INVALID: ::windows::HRESULT =
::windows::HRESULT(-2005073913i32 as _);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct APOInitBaseStruct {
pub cbSize: u32,
pub clsid: ::windows::Guid,
}
impl APOInitBaseStruct {}
impl ::std::default::Default for APOInitBaseStruct {
fn default() -> Self {
Self {
cbSize: 0,
clsid: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for APOInitBaseStruct {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("APOInitBaseStruct")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("clsid", &format_args!("{:?}", self.clsid))
.finish()
}
}
impl ::std::cmp::PartialEq for APOInitBaseStruct {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize && self.clsid == other.clsid
}
}
impl ::std::cmp::Eq for APOInitBaseStruct {}
unsafe impl ::windows::Abi for APOInitBaseStruct {
type Abi = Self;
}
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IPropertyStore(::windows::IUnknown);
impl IPropertyStore {}
unsafe impl ::windows::Interface for IPropertyStore {
type Vtable = IPropertyStore_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2288881387,
36082,
17478,
[141, 2, 205, 186, 29, 189, 207, 153],
);
}
impl IPropertyStore {
pub unsafe fn GetCount(&self, cprops: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(cprops),
)
}
pub unsafe fn GetAt(
&self,
iprop: u32,
pkey: *mut super::WindowsPropertiesSystem::PROPERTYKEY,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(iprop),
::std::mem::transmute(pkey),
)
}
pub unsafe fn GetValue(
&self,
key: *const super::WindowsPropertiesSystem::PROPERTYKEY,
pv: *mut super::StructuredStorage::PROPVARIANT,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(key),
::std::mem::transmute(pv),
)
}
pub unsafe fn SetValue(
&self,
key: *const super::WindowsPropertiesSystem::PROPERTYKEY,
propvar: *const super::StructuredStorage::PROPVARIANT,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(key),
::std::mem::transmute(propvar),
)
}
pub unsafe fn Commit(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<IPropertyStore> for ::windows::IUnknown {
fn from(value: IPropertyStore) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IPropertyStore> for ::windows::IUnknown {
fn from(value: &IPropertyStore) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IPropertyStore {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IPropertyStore {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPropertyStore_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
cprops: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iprop: u32,
pkey: *mut super::WindowsPropertiesSystem::PROPERTYKEY,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
key: *const super::WindowsPropertiesSystem::PROPERTYKEY,
pv: *mut super::StructuredStorage::PROPVARIANT_abi,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
key: *const super::WindowsPropertiesSystem::PROPERTYKEY,
propvar: *const super::StructuredStorage::PROPVARIANT_abi,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(C)]
#[derive(:: std :: clone :: Clone)]
pub struct APOInitSystemEffects {
pub APOInit: APOInitBaseStruct,
pub pAPOEndpointProperties: ::std::option::Option<IPropertyStore>,
pub pAPOSystemEffectsProperties: ::std::option::Option<IPropertyStore>,
pub pReserved: *mut ::std::ffi::c_void,
pub pDeviceCollection: ::std::option::Option<super::CoreAudio::IMMDeviceCollection>,
}
impl APOInitSystemEffects {}
impl ::std::default::Default for APOInitSystemEffects {
fn default() -> Self {
Self {
APOInit: ::std::default::Default::default(),
pAPOEndpointProperties: ::std::default::Default::default(),
pAPOSystemEffectsProperties: ::std::default::Default::default(),
pReserved: ::std::ptr::null_mut(),
pDeviceCollection: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for APOInitSystemEffects {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("APOInitSystemEffects")
.field("APOInit", &format_args!("{:?}", self.APOInit))
.field(
"pAPOEndpointProperties",
&format_args!("{:?}", self.pAPOEndpointProperties),
)
.field(
"pAPOSystemEffectsProperties",
&format_args!("{:?}", self.pAPOSystemEffectsProperties),
)
.field("pReserved", &format_args!("{:?}", self.pReserved))
.field(
"pDeviceCollection",
&format_args!("{:?}", self.pDeviceCollection),
)
.finish()
}
}
impl ::std::cmp::PartialEq for APOInitSystemEffects {
fn eq(&self, other: &Self) -> bool {
self.APOInit == other.APOInit
&& self.pAPOEndpointProperties == other.pAPOEndpointProperties
&& self.pAPOSystemEffectsProperties == other.pAPOSystemEffectsProperties
&& self.pReserved == other.pReserved
&& self.pDeviceCollection == other.pDeviceCollection
}
}
impl ::std::cmp::Eq for APOInitSystemEffects {}
#[repr(C)]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct APOInitSystemEffects_abi {
pub APOInit: APOInitBaseStruct,
pub pAPOEndpointProperties: ::windows::RawPtr,
pub pAPOSystemEffectsProperties: ::windows::RawPtr,
pub pReserved: *mut ::std::ffi::c_void,
pub pDeviceCollection: ::windows::RawPtr,
}
unsafe impl ::windows::Abi for APOInitSystemEffects {
type Abi = APOInitSystemEffects_abi;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone)]
pub struct APOInitSystemEffects2 {
pub APOInit: APOInitBaseStruct,
pub pAPOEndpointProperties: ::std::option::Option<IPropertyStore>,
pub pAPOSystemEffectsProperties: ::std::option::Option<IPropertyStore>,
pub pReserved: *mut ::std::ffi::c_void,
pub pDeviceCollection: ::std::option::Option<super::CoreAudio::IMMDeviceCollection>,
pub nSoftwareIoDeviceInCollection: u32,
pub nSoftwareIoConnectorIndex: u32,
pub AudioProcessingMode: ::windows::Guid,
pub InitializeForDiscoveryOnly: super::SystemServices::BOOL,
}
impl APOInitSystemEffects2 {}
impl ::std::default::Default for APOInitSystemEffects2 {
fn default() -> Self {
Self {
APOInit: ::std::default::Default::default(),
pAPOEndpointProperties: ::std::default::Default::default(),
pAPOSystemEffectsProperties: ::std::default::Default::default(),
pReserved: ::std::ptr::null_mut(),
pDeviceCollection: ::std::default::Default::default(),
nSoftwareIoDeviceInCollection: 0,
nSoftwareIoConnectorIndex: 0,
AudioProcessingMode: ::std::default::Default::default(),
InitializeForDiscoveryOnly: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for APOInitSystemEffects2 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("APOInitSystemEffects2")
.field("APOInit", &format_args!("{:?}", self.APOInit))
.field(
"pAPOEndpointProperties",
&format_args!("{:?}", self.pAPOEndpointProperties),
)
.field(
"pAPOSystemEffectsProperties",
&format_args!("{:?}", self.pAPOSystemEffectsProperties),
)
.field("pReserved", &format_args!("{:?}", self.pReserved))
.field(
"pDeviceCollection",
&format_args!("{:?}", self.pDeviceCollection),
)
.field(
"nSoftwareIoDeviceInCollection",
&format_args!("{:?}", self.nSoftwareIoDeviceInCollection),
)
.field(
"nSoftwareIoConnectorIndex",
&format_args!("{:?}", self.nSoftwareIoConnectorIndex),
)
.field(
"AudioProcessingMode",
&format_args!("{:?}", self.AudioProcessingMode),
)
.field(
"InitializeForDiscoveryOnly",
&format_args!("{:?}", self.InitializeForDiscoveryOnly),
)
.finish()
}
}
impl ::std::cmp::PartialEq for APOInitSystemEffects2 {
fn eq(&self, other: &Self) -> bool {
self.APOInit == other.APOInit
&& self.pAPOEndpointProperties == other.pAPOEndpointProperties
&& self.pAPOSystemEffectsProperties == other.pAPOSystemEffectsProperties
&& self.pReserved == other.pReserved
&& self.pDeviceCollection == other.pDeviceCollection
&& self.nSoftwareIoDeviceInCollection == other.nSoftwareIoDeviceInCollection
&& self.nSoftwareIoConnectorIndex == other.nSoftwareIoConnectorIndex
&& self.AudioProcessingMode == other.AudioProcessingMode
&& self.InitializeForDiscoveryOnly == other.InitializeForDiscoveryOnly
}
}
impl ::std::cmp::Eq for APOInitSystemEffects2 {}
#[repr(C)]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct APOInitSystemEffects2_abi {
pub APOInit: APOInitBaseStruct,
pub pAPOEndpointProperties: ::windows::RawPtr,
pub pAPOSystemEffectsProperties: ::windows::RawPtr,
pub pReserved: *mut ::std::ffi::c_void,
pub pDeviceCollection: ::windows::RawPtr,
pub nSoftwareIoDeviceInCollection: u32,
pub nSoftwareIoConnectorIndex: u32,
pub AudioProcessingMode: ::windows::Guid,
pub InitializeForDiscoveryOnly: super::SystemServices::BOOL,
}
unsafe impl ::windows::Abi for APOInitSystemEffects2 {
type Abi = APOInitSystemEffects2_abi;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct APO_CONNECTION_BUFFER_TYPE(pub i32);
impl APO_CONNECTION_BUFFER_TYPE {
pub const APO_CONNECTION_BUFFER_TYPE_ALLOCATED: Self = Self(0i32);
pub const APO_CONNECTION_BUFFER_TYPE_EXTERNAL: Self = Self(1i32);
pub const APO_CONNECTION_BUFFER_TYPE_DEPENDANT: Self = Self(2i32);
}
impl ::std::convert::From<i32> for APO_CONNECTION_BUFFER_TYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for APO_CONNECTION_BUFFER_TYPE {
type Abi = Self;
}
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioMediaType(::windows::IUnknown);
impl IAudioMediaType {}
unsafe impl ::windows::Interface for IAudioMediaType {
type Vtable = IAudioMediaType_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1318682483,
46879,
18328,
[135, 59, 237, 125, 252, 241, 91, 77],
);
}
impl IAudioMediaType {
pub unsafe fn IsCompressedFormat(
&self,
pfcompressed: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pfcompressed),
)
}
pub unsafe fn IsEqual<'a>(
&self,
piaudiotype: impl ::windows::IntoParam<'a, IAudioMediaType>,
pdwflags: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
piaudiotype.into_param().abi(),
::std::mem::transmute(pdwflags),
)
}
pub unsafe fn GetAudioFormat(&self) -> *mut super::Multimedia::WAVEFORMATEX {
(::windows::Interface::vtable(self).5)(::windows::Abi::abi(self))
}
pub unsafe fn GetUncompressedAudioFormat(
&self,
puncompressedaudioformat: *mut UNCOMPRESSEDAUDIOFORMAT,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(puncompressedaudioformat),
)
}
}
impl ::std::convert::From<IAudioMediaType> for ::windows::IUnknown {
fn from(value: IAudioMediaType) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioMediaType> for ::windows::IUnknown {
fn from(value: &IAudioMediaType) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioMediaType {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioMediaType {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioMediaType_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pfcompressed: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
piaudiotype: ::windows::RawPtr,
pdwflags: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
)
-> *mut super::Multimedia::WAVEFORMATEX,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
puncompressedaudioformat: *mut UNCOMPRESSEDAUDIOFORMAT,
) -> ::windows::HRESULT,
);
#[repr(C)]
#[derive(:: std :: clone :: Clone)]
pub struct APO_CONNECTION_DESCRIPTOR {
pub Type: APO_CONNECTION_BUFFER_TYPE,
pub pBuffer: usize,
pub u32MaxFrameCount: u32,
pub pFormat: ::std::option::Option<IAudioMediaType>,
pub u32Signature: u32,
}
impl APO_CONNECTION_DESCRIPTOR {}
impl ::std::default::Default for APO_CONNECTION_DESCRIPTOR {
fn default() -> Self {
Self {
Type: ::std::default::Default::default(),
pBuffer: 0,
u32MaxFrameCount: 0,
pFormat: ::std::default::Default::default(),
u32Signature: 0,
}
}
}
impl ::std::fmt::Debug for APO_CONNECTION_DESCRIPTOR {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("APO_CONNECTION_DESCRIPTOR")
.field("Type", &format_args!("{:?}", self.Type))
.field("pBuffer", &format_args!("{:?}", self.pBuffer))
.field(
"u32MaxFrameCount",
&format_args!("{:?}", self.u32MaxFrameCount),
)
.field("pFormat", &format_args!("{:?}", self.pFormat))
.field("u32Signature", &format_args!("{:?}", self.u32Signature))
.finish()
}
}
impl ::std::cmp::PartialEq for APO_CONNECTION_DESCRIPTOR {
fn eq(&self, other: &Self) -> bool {
self.Type == other.Type
&& self.pBuffer == other.pBuffer
&& self.u32MaxFrameCount == other.u32MaxFrameCount
&& self.pFormat == other.pFormat
&& self.u32Signature == other.u32Signature
}
}
impl ::std::cmp::Eq for APO_CONNECTION_DESCRIPTOR {}
#[repr(C)]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct APO_CONNECTION_DESCRIPTOR_abi {
pub Type: APO_CONNECTION_BUFFER_TYPE,
pub pBuffer: usize,
pub u32MaxFrameCount: u32,
pub pFormat: ::windows::RawPtr,
pub u32Signature: u32,
}
unsafe impl ::windows::Abi for APO_CONNECTION_DESCRIPTOR {
type Abi = APO_CONNECTION_DESCRIPTOR_abi;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct APO_FLAG(pub i32);
impl APO_FLAG {
pub const APO_FLAG_NONE: Self = Self(0i32);
pub const APO_FLAG_INPLACE: Self = Self(1i32);
pub const APO_FLAG_SAMPLESPERFRAME_MUST_MATCH: Self = Self(2i32);
pub const APO_FLAG_FRAMESPERSECOND_MUST_MATCH: Self = Self(4i32);
pub const APO_FLAG_BITSPERSAMPLE_MUST_MATCH: Self = Self(8i32);
pub const APO_FLAG_MIXER: Self = Self(16i32);
pub const APO_FLAG_DEFAULT: Self = Self(14i32);
}
impl ::std::convert::From<i32> for APO_FLAG {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for APO_FLAG {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct APO_REG_PROPERTIES {
pub clsid: ::windows::Guid,
pub Flags: APO_FLAG,
pub szFriendlyName: [u16; 256],
pub szCopyrightInfo: [u16; 256],
pub u32MajorVersion: u32,
pub u32MinorVersion: u32,
pub u32MinInputConnections: u32,
pub u32MaxInputConnections: u32,
pub u32MinOutputConnections: u32,
pub u32MaxOutputConnections: u32,
pub u32MaxInstances: u32,
pub u32NumAPOInterfaces: u32,
pub iidAPOInterfaceList: [::windows::Guid; 1],
}
impl APO_REG_PROPERTIES {}
impl ::std::default::Default for APO_REG_PROPERTIES {
fn default() -> Self {
Self {
clsid: ::std::default::Default::default(),
Flags: ::std::default::Default::default(),
szFriendlyName: [0; 256],
szCopyrightInfo: [0; 256],
u32MajorVersion: 0,
u32MinorVersion: 0,
u32MinInputConnections: 0,
u32MaxInputConnections: 0,
u32MinOutputConnections: 0,
u32MaxOutputConnections: 0,
u32MaxInstances: 0,
u32NumAPOInterfaces: 0,
iidAPOInterfaceList: [::std::default::Default::default(); 1],
}
}
}
impl ::std::fmt::Debug for APO_REG_PROPERTIES {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("APO_REG_PROPERTIES")
.field("clsid", &format_args!("{:?}", self.clsid))
.field("Flags", &format_args!("{:?}", self.Flags))
.field("szFriendlyName", &format_args!("{:?}", self.szFriendlyName))
.field(
"szCopyrightInfo",
&format_args!("{:?}", self.szCopyrightInfo),
)
.field(
"u32MajorVersion",
&format_args!("{:?}", self.u32MajorVersion),
)
.field(
"u32MinorVersion",
&format_args!("{:?}", self.u32MinorVersion),
)
.field(
"u32MinInputConnections",
&format_args!("{:?}", self.u32MinInputConnections),
)
.field(
"u32MaxInputConnections",
&format_args!("{:?}", self.u32MaxInputConnections),
)
.field(
"u32MinOutputConnections",
&format_args!("{:?}", self.u32MinOutputConnections),
)
.field(
"u32MaxOutputConnections",
&format_args!("{:?}", self.u32MaxOutputConnections),
)
.field(
"u32MaxInstances",
&format_args!("{:?}", self.u32MaxInstances),
)
.field(
"u32NumAPOInterfaces",
&format_args!("{:?}", self.u32NumAPOInterfaces),
)
.field(
"iidAPOInterfaceList",
&format_args!("{:?}", self.iidAPOInterfaceList),
)
.finish()
}
}
impl ::std::cmp::PartialEq for APO_REG_PROPERTIES {
fn eq(&self, other: &Self) -> bool {
self.clsid == other.clsid
&& self.Flags == other.Flags
&& self.szFriendlyName == other.szFriendlyName
&& self.szCopyrightInfo == other.szCopyrightInfo
&& self.u32MajorVersion == other.u32MajorVersion
&& self.u32MinorVersion == other.u32MinorVersion
&& self.u32MinInputConnections == other.u32MinInputConnections
&& self.u32MaxInputConnections == other.u32MaxInputConnections
&& self.u32MinOutputConnections == other.u32MinOutputConnections
&& self.u32MaxOutputConnections == other.u32MaxOutputConnections
&& self.u32MaxInstances == other.u32MaxInstances
&& self.u32NumAPOInterfaces == other.u32NumAPOInterfaces
&& self.iidAPOInterfaceList == other.iidAPOInterfaceList
}
}
impl ::std::cmp::Eq for APO_REG_PROPERTIES {}
unsafe impl ::windows::Abi for APO_REG_PROPERTIES {
type Abi = Self;
}
pub const AUDIOMEDIATYPE_EQUAL_FORMAT_DATA: u32 = 4u32;
pub const AUDIOMEDIATYPE_EQUAL_FORMAT_TYPES: u32 = 2u32;
pub const AUDIOMEDIATYPE_EQUAL_FORMAT_USER_DATA: u32 = 8u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AUDIO_FLOW_TYPE(pub i32);
impl AUDIO_FLOW_TYPE {
pub const AUDIO_FLOW_PULL: Self = Self(0i32);
pub const AUDIO_FLOW_PUSH: Self = Self(1i32);
}
impl ::std::convert::From<i32> for AUDIO_FLOW_TYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AUDIO_FLOW_TYPE {
type Abi = Self;
}
pub const AUDIO_MAX_CHANNELS: u32 = 4096u32;
pub const AUDIO_MAX_FRAMERATE: f64 = 384000f64;
pub const AUDIO_MIN_CHANNELS: u32 = 1u32;
pub const AUDIO_MIN_FRAMERATE: f64 = 10f64;
pub struct Apis {}
impl Apis {}
impl ::windows::RuntimeName for Apis {
const NAME: &'static str = "Windows.Win32.Audio.Apis";
}
#[repr(C)]
#[derive(:: std :: clone :: Clone)]
pub struct AudioFXExtensionParams {
pub AddPageParam: super::WindowsAndMessaging::LPARAM,
pub pwstrEndpointID: super::SystemServices::PWSTR,
pub pFxProperties: ::std::option::Option<IPropertyStore>,
}
impl AudioFXExtensionParams {}
impl ::std::default::Default for AudioFXExtensionParams {
fn default() -> Self {
Self {
AddPageParam: ::std::default::Default::default(),
pwstrEndpointID: ::std::default::Default::default(),
pFxProperties: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for AudioFXExtensionParams {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("AudioFXExtensionParams")
.field("AddPageParam", &format_args!("{:?}", self.AddPageParam))
.field(
"pwstrEndpointID",
&format_args!("{:?}", self.pwstrEndpointID),
)
.field("pFxProperties", &format_args!("{:?}", self.pFxProperties))
.finish()
}
}
impl ::std::cmp::PartialEq for AudioFXExtensionParams {
fn eq(&self, other: &Self) -> bool {
self.AddPageParam == other.AddPageParam
&& self.pwstrEndpointID == other.pwstrEndpointID
&& self.pFxProperties == other.pFxProperties
}
}
impl ::std::cmp::Eq for AudioFXExtensionParams {}
#[repr(C)]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct AudioFXExtensionParams_abi {
pub AddPageParam: super::WindowsAndMessaging::LPARAM,
pub pwstrEndpointID: super::SystemServices::PWSTR,
pub pFxProperties: ::windows::RawPtr,
}
unsafe impl ::windows::Abi for AudioFXExtensionParams {
type Abi = AudioFXExtensionParams_abi;
}
pub const CLSID_DirectMusic: ::windows::Guid = ::windows::Guid::from_values(
1667997456,
3197,
4561,
[149, 178, 0, 32, 175, 220, 116, 33],
);
pub const CLSID_DirectMusicCollection: ::windows::Guid = ::windows::Guid::from_values(
1209005232,
10418,
4561,
[190, 247, 0, 192, 79, 191, 143, 239],
);
pub const CLSID_DirectMusicSynth: ::windows::Guid = ::windows::Guid::from_values(
1489155280,
18151,
4561,
[137, 172, 0, 160, 201, 5, 65, 41],
);
pub const CLSID_DirectMusicSynthSink: ::windows::Guid = ::windows::Guid::from_values(
2931916003,
42260,
4561,
[175, 166, 0, 170, 0, 36, 216, 182],
);
pub const CLSID_DirectSound: ::windows::Guid = ::windows::Guid::from_values(
1205131590,
25320,
4559,
[147, 188, 68, 69, 83, 84, 0, 0],
);
pub const CLSID_DirectSound8: ::windows::Guid = ::windows::Guid::from_values(
956419135,
33973,
20388,
[186, 53, 170, 129, 114, 184, 160, 155],
);
pub const CLSID_DirectSoundCapture: ::windows::Guid = ::windows::Guid::from_values(
2954954624,
35277,
4560,
[175, 8, 0, 160, 201, 37, 205, 22],
);
pub const CLSID_DirectSoundCapture8: ::windows::Guid = ::windows::Guid::from_values(
3837570067,
32665,
18696,
[154, 142, 116, 227, 191, 36, 182, 225],
);
pub const CLSID_DirectSoundFullDuplex: ::windows::Guid = ::windows::Guid::from_values(
4272173068,
31065,
16711,
[178, 106, 35, 119, 185, 231, 169, 29],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CONNECTION {
pub usSource: u16,
pub usControl: u16,
pub usDestination: u16,
pub usTransform: u16,
pub lScale: i32,
}
impl CONNECTION {}
impl ::std::default::Default for CONNECTION {
fn default() -> Self {
Self {
usSource: 0,
usControl: 0,
usDestination: 0,
usTransform: 0,
lScale: 0,
}
}
}
impl ::std::fmt::Debug for CONNECTION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CONNECTION")
.field("usSource", &format_args!("{:?}", self.usSource))
.field("usControl", &format_args!("{:?}", self.usControl))
.field("usDestination", &format_args!("{:?}", self.usDestination))
.field("usTransform", &format_args!("{:?}", self.usTransform))
.field("lScale", &format_args!("{:?}", self.lScale))
.finish()
}
}
impl ::std::cmp::PartialEq for CONNECTION {
fn eq(&self, other: &Self) -> bool {
self.usSource == other.usSource
&& self.usControl == other.usControl
&& self.usDestination == other.usDestination
&& self.usTransform == other.usTransform
&& self.lScale == other.lScale
}
}
impl ::std::cmp::Eq for CONNECTION {}
unsafe impl ::windows::Abi for CONNECTION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CONNECTIONLIST {
pub cbSize: u32,
pub cConnections: u32,
}
impl CONNECTIONLIST {}
impl ::std::default::Default for CONNECTIONLIST {
fn default() -> Self {
Self {
cbSize: 0,
cConnections: 0,
}
}
}
impl ::std::fmt::Debug for CONNECTIONLIST {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CONNECTIONLIST")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("cConnections", &format_args!("{:?}", self.cConnections))
.finish()
}
}
impl ::std::cmp::PartialEq for CONNECTIONLIST {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize && self.cConnections == other.cConnections
}
}
impl ::std::cmp::Eq for CONNECTIONLIST {}
unsafe impl ::windows::Abi for CONNECTIONLIST {
type Abi = Self;
}
pub const CONN_DST_ATTENUATION: u32 = 1u32;
pub const CONN_DST_EG1_ATTACKTIME: u32 = 518u32;
pub const CONN_DST_EG1_DECAYTIME: u32 = 519u32;
pub const CONN_DST_EG1_RELEASETIME: u32 = 521u32;
pub const CONN_DST_EG1_SUSTAINLEVEL: u32 = 522u32;
pub const CONN_DST_EG2_ATTACKTIME: u32 = 778u32;
pub const CONN_DST_EG2_DECAYTIME: u32 = 779u32;
pub const CONN_DST_EG2_RELEASETIME: u32 = 781u32;
pub const CONN_DST_EG2_SUSTAINLEVEL: u32 = 782u32;
pub const CONN_DST_LFO_FREQUENCY: u32 = 260u32;
pub const CONN_DST_LFO_STARTDELAY: u32 = 261u32;
pub const CONN_DST_NONE: u32 = 0u32;
pub const CONN_DST_PAN: u32 = 4u32;
pub const CONN_DST_PITCH: u32 = 3u32;
pub const CONN_SRC_CC1: u32 = 129u32;
pub const CONN_SRC_CC10: u32 = 138u32;
pub const CONN_SRC_CC11: u32 = 139u32;
pub const CONN_SRC_CC7: u32 = 135u32;
pub const CONN_SRC_EG1: u32 = 4u32;
pub const CONN_SRC_EG2: u32 = 5u32;
pub const CONN_SRC_KEYNUMBER: u32 = 3u32;
pub const CONN_SRC_KEYONVELOCITY: u32 = 2u32;
pub const CONN_SRC_LFO: u32 = 1u32;
pub const CONN_SRC_NONE: u32 = 0u32;
pub const CONN_SRC_PITCHWHEEL: u32 = 6u32;
pub const CONN_TRN_CONCAVE: u32 = 1u32;
pub const CONN_TRN_NONE: u32 = 0u32;
pub const DAUD_CHAN10_VOICE_PRIORITY_OFFSET: u32 = 15u32;
pub const DAUD_CHAN11_VOICE_PRIORITY_OFFSET: u32 = 5u32;
pub const DAUD_CHAN12_VOICE_PRIORITY_OFFSET: u32 = 4u32;
pub const DAUD_CHAN13_VOICE_PRIORITY_OFFSET: u32 = 3u32;
pub const DAUD_CHAN14_VOICE_PRIORITY_OFFSET: u32 = 2u32;
pub const DAUD_CHAN15_VOICE_PRIORITY_OFFSET: u32 = 1u32;
pub const DAUD_CHAN16_VOICE_PRIORITY_OFFSET: u32 = 0u32;
pub const DAUD_CHAN1_VOICE_PRIORITY_OFFSET: u32 = 14u32;
pub const DAUD_CHAN2_VOICE_PRIORITY_OFFSET: u32 = 13u32;
pub const DAUD_CHAN3_VOICE_PRIORITY_OFFSET: u32 = 12u32;
pub const DAUD_CHAN4_VOICE_PRIORITY_OFFSET: u32 = 11u32;
pub const DAUD_CHAN5_VOICE_PRIORITY_OFFSET: u32 = 10u32;
pub const DAUD_CHAN6_VOICE_PRIORITY_OFFSET: u32 = 9u32;
pub const DAUD_CHAN7_VOICE_PRIORITY_OFFSET: u32 = 8u32;
pub const DAUD_CHAN8_VOICE_PRIORITY_OFFSET: u32 = 7u32;
pub const DAUD_CHAN9_VOICE_PRIORITY_OFFSET: u32 = 6u32;
pub const DAUD_CRITICAL_VOICE_PRIORITY: u32 = 4026531840u32;
pub const DAUD_HIGH_VOICE_PRIORITY: u32 = 3221225472u32;
pub const DAUD_LOW_VOICE_PRIORITY: u32 = 1073741824u32;
pub const DAUD_PERSIST_VOICE_PRIORITY: u32 = 268435456u32;
pub const DAUD_STANDARD_VOICE_PRIORITY: u32 = 2147483648u32;
pub const DIRECTSOUND_VERSION: u32 = 1792u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DLSHEADER {
pub cInstruments: u32,
}
impl DLSHEADER {}
impl ::std::default::Default for DLSHEADER {
fn default() -> Self {
Self { cInstruments: 0 }
}
}
impl ::std::fmt::Debug for DLSHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DLSHEADER")
.field("cInstruments", &format_args!("{:?}", self.cInstruments))
.finish()
}
}
impl ::std::cmp::PartialEq for DLSHEADER {
fn eq(&self, other: &Self) -> bool {
self.cInstruments == other.cInstruments
}
}
impl ::std::cmp::Eq for DLSHEADER {}
unsafe impl ::windows::Abi for DLSHEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DLSID {
pub ulData1: u32,
pub usData2: u16,
pub usData3: u16,
pub abData4: [u8; 8],
}
impl DLSID {}
impl ::std::default::Default for DLSID {
fn default() -> Self {
Self {
ulData1: 0,
usData2: 0,
usData3: 0,
abData4: [0; 8],
}
}
}
impl ::std::fmt::Debug for DLSID {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DLSID")
.field("ulData1", &format_args!("{:?}", self.ulData1))
.field("usData2", &format_args!("{:?}", self.usData2))
.field("usData3", &format_args!("{:?}", self.usData3))
.field("abData4", &format_args!("{:?}", self.abData4))
.finish()
}
}
impl ::std::cmp::PartialEq for DLSID {
fn eq(&self, other: &Self) -> bool {
self.ulData1 == other.ulData1
&& self.usData2 == other.usData2
&& self.usData3 == other.usData3
&& self.abData4 == other.abData4
}
}
impl ::std::cmp::Eq for DLSID {}
unsafe impl ::windows::Abi for DLSID {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DLSVERSION {
pub dwVersionMS: u32,
pub dwVersionLS: u32,
}
impl DLSVERSION {}
impl ::std::default::Default for DLSVERSION {
fn default() -> Self {
Self {
dwVersionMS: 0,
dwVersionLS: 0,
}
}
}
impl ::std::fmt::Debug for DLSVERSION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DLSVERSION")
.field("dwVersionMS", &format_args!("{:?}", self.dwVersionMS))
.field("dwVersionLS", &format_args!("{:?}", self.dwVersionLS))
.finish()
}
}
impl ::std::cmp::PartialEq for DLSVERSION {
fn eq(&self, other: &Self) -> bool {
self.dwVersionMS == other.dwVersionMS && self.dwVersionLS == other.dwVersionLS
}
}
impl ::std::cmp::Eq for DLSVERSION {}
unsafe impl ::windows::Abi for DLSVERSION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_LFOPARAMS {
pub pcFrequency: i32,
pub tcDelay: i32,
pub gcVolumeScale: i32,
pub pcPitchScale: i32,
pub gcMWToVolume: i32,
pub pcMWToPitch: i32,
}
impl DMUS_LFOPARAMS {}
impl ::std::default::Default for DMUS_LFOPARAMS {
fn default() -> Self {
Self {
pcFrequency: 0,
tcDelay: 0,
gcVolumeScale: 0,
pcPitchScale: 0,
gcMWToVolume: 0,
pcMWToPitch: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_LFOPARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_LFOPARAMS")
.field("pcFrequency", &format_args!("{:?}", self.pcFrequency))
.field("tcDelay", &format_args!("{:?}", self.tcDelay))
.field("gcVolumeScale", &format_args!("{:?}", self.gcVolumeScale))
.field("pcPitchScale", &format_args!("{:?}", self.pcPitchScale))
.field("gcMWToVolume", &format_args!("{:?}", self.gcMWToVolume))
.field("pcMWToPitch", &format_args!("{:?}", self.pcMWToPitch))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_LFOPARAMS {
fn eq(&self, other: &Self) -> bool {
self.pcFrequency == other.pcFrequency
&& self.tcDelay == other.tcDelay
&& self.gcVolumeScale == other.gcVolumeScale
&& self.pcPitchScale == other.pcPitchScale
&& self.gcMWToVolume == other.gcMWToVolume
&& self.pcMWToPitch == other.pcMWToPitch
}
}
impl ::std::cmp::Eq for DMUS_LFOPARAMS {}
unsafe impl ::windows::Abi for DMUS_LFOPARAMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_VEGPARAMS {
pub tcAttack: i32,
pub tcDecay: i32,
pub ptSustain: i32,
pub tcRelease: i32,
pub tcVel2Attack: i32,
pub tcKey2Decay: i32,
}
impl DMUS_VEGPARAMS {}
impl ::std::default::Default for DMUS_VEGPARAMS {
fn default() -> Self {
Self {
tcAttack: 0,
tcDecay: 0,
ptSustain: 0,
tcRelease: 0,
tcVel2Attack: 0,
tcKey2Decay: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_VEGPARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_VEGPARAMS")
.field("tcAttack", &format_args!("{:?}", self.tcAttack))
.field("tcDecay", &format_args!("{:?}", self.tcDecay))
.field("ptSustain", &format_args!("{:?}", self.ptSustain))
.field("tcRelease", &format_args!("{:?}", self.tcRelease))
.field("tcVel2Attack", &format_args!("{:?}", self.tcVel2Attack))
.field("tcKey2Decay", &format_args!("{:?}", self.tcKey2Decay))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_VEGPARAMS {
fn eq(&self, other: &Self) -> bool {
self.tcAttack == other.tcAttack
&& self.tcDecay == other.tcDecay
&& self.ptSustain == other.ptSustain
&& self.tcRelease == other.tcRelease
&& self.tcVel2Attack == other.tcVel2Attack
&& self.tcKey2Decay == other.tcKey2Decay
}
}
impl ::std::cmp::Eq for DMUS_VEGPARAMS {}
unsafe impl ::windows::Abi for DMUS_VEGPARAMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_PEGPARAMS {
pub tcAttack: i32,
pub tcDecay: i32,
pub ptSustain: i32,
pub tcRelease: i32,
pub tcVel2Attack: i32,
pub tcKey2Decay: i32,
pub pcRange: i32,
}
impl DMUS_PEGPARAMS {}
impl ::std::default::Default for DMUS_PEGPARAMS {
fn default() -> Self {
Self {
tcAttack: 0,
tcDecay: 0,
ptSustain: 0,
tcRelease: 0,
tcVel2Attack: 0,
tcKey2Decay: 0,
pcRange: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_PEGPARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_PEGPARAMS")
.field("tcAttack", &format_args!("{:?}", self.tcAttack))
.field("tcDecay", &format_args!("{:?}", self.tcDecay))
.field("ptSustain", &format_args!("{:?}", self.ptSustain))
.field("tcRelease", &format_args!("{:?}", self.tcRelease))
.field("tcVel2Attack", &format_args!("{:?}", self.tcVel2Attack))
.field("tcKey2Decay", &format_args!("{:?}", self.tcKey2Decay))
.field("pcRange", &format_args!("{:?}", self.pcRange))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_PEGPARAMS {
fn eq(&self, other: &Self) -> bool {
self.tcAttack == other.tcAttack
&& self.tcDecay == other.tcDecay
&& self.ptSustain == other.ptSustain
&& self.tcRelease == other.tcRelease
&& self.tcVel2Attack == other.tcVel2Attack
&& self.tcKey2Decay == other.tcKey2Decay
&& self.pcRange == other.pcRange
}
}
impl ::std::cmp::Eq for DMUS_PEGPARAMS {}
unsafe impl ::windows::Abi for DMUS_PEGPARAMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_MSCPARAMS {
pub ptDefaultPan: i32,
}
impl DMUS_MSCPARAMS {}
impl ::std::default::Default for DMUS_MSCPARAMS {
fn default() -> Self {
Self { ptDefaultPan: 0 }
}
}
impl ::std::fmt::Debug for DMUS_MSCPARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_MSCPARAMS")
.field("ptDefaultPan", &format_args!("{:?}", self.ptDefaultPan))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_MSCPARAMS {
fn eq(&self, other: &Self) -> bool {
self.ptDefaultPan == other.ptDefaultPan
}
}
impl ::std::cmp::Eq for DMUS_MSCPARAMS {}
unsafe impl ::windows::Abi for DMUS_MSCPARAMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_ARTICPARAMS {
pub LFO: DMUS_LFOPARAMS,
pub VolEG: DMUS_VEGPARAMS,
pub PitchEG: DMUS_PEGPARAMS,
pub Misc: DMUS_MSCPARAMS,
}
impl DMUS_ARTICPARAMS {}
impl ::std::default::Default for DMUS_ARTICPARAMS {
fn default() -> Self {
Self {
LFO: ::std::default::Default::default(),
VolEG: ::std::default::Default::default(),
PitchEG: ::std::default::Default::default(),
Misc: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for DMUS_ARTICPARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_ARTICPARAMS")
.field("LFO", &format_args!("{:?}", self.LFO))
.field("VolEG", &format_args!("{:?}", self.VolEG))
.field("PitchEG", &format_args!("{:?}", self.PitchEG))
.field("Misc", &format_args!("{:?}", self.Misc))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_ARTICPARAMS {
fn eq(&self, other: &Self) -> bool {
self.LFO == other.LFO
&& self.VolEG == other.VolEG
&& self.PitchEG == other.PitchEG
&& self.Misc == other.Misc
}
}
impl ::std::cmp::Eq for DMUS_ARTICPARAMS {}
unsafe impl ::windows::Abi for DMUS_ARTICPARAMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_ARTICULATION {
pub ulArt1Idx: u32,
pub ulFirstExtCkIdx: u32,
}
impl DMUS_ARTICULATION {}
impl ::std::default::Default for DMUS_ARTICULATION {
fn default() -> Self {
Self {
ulArt1Idx: 0,
ulFirstExtCkIdx: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_ARTICULATION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_ARTICULATION")
.field("ulArt1Idx", &format_args!("{:?}", self.ulArt1Idx))
.field(
"ulFirstExtCkIdx",
&format_args!("{:?}", self.ulFirstExtCkIdx),
)
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_ARTICULATION {
fn eq(&self, other: &Self) -> bool {
self.ulArt1Idx == other.ulArt1Idx
&& self.ulFirstExtCkIdx == other.ulFirstExtCkIdx
}
}
impl ::std::cmp::Eq for DMUS_ARTICULATION {}
unsafe impl ::windows::Abi for DMUS_ARTICULATION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_ARTICULATION2 {
pub ulArtIdx: u32,
pub ulFirstExtCkIdx: u32,
pub ulNextArtIdx: u32,
}
impl DMUS_ARTICULATION2 {}
impl ::std::default::Default for DMUS_ARTICULATION2 {
fn default() -> Self {
Self {
ulArtIdx: 0,
ulFirstExtCkIdx: 0,
ulNextArtIdx: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_ARTICULATION2 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_ARTICULATION2")
.field("ulArtIdx", &format_args!("{:?}", self.ulArtIdx))
.field(
"ulFirstExtCkIdx",
&format_args!("{:?}", self.ulFirstExtCkIdx),
)
.field("ulNextArtIdx", &format_args!("{:?}", self.ulNextArtIdx))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_ARTICULATION2 {
fn eq(&self, other: &Self) -> bool {
self.ulArtIdx == other.ulArtIdx
&& self.ulFirstExtCkIdx == other.ulFirstExtCkIdx
&& self.ulNextArtIdx == other.ulNextArtIdx
}
}
impl ::std::cmp::Eq for DMUS_ARTICULATION2 {}
unsafe impl ::windows::Abi for DMUS_ARTICULATION2 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_BUFFERDESC {
pub dwSize: u32,
pub dwFlags: u32,
pub guidBufferFormat: ::windows::Guid,
pub cbBuffer: u32,
}
impl DMUS_BUFFERDESC {}
impl ::std::default::Default for DMUS_BUFFERDESC {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
guidBufferFormat: ::std::default::Default::default(),
cbBuffer: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_BUFFERDESC {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_BUFFERDESC")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field(
"guidBufferFormat",
&format_args!("{:?}", self.guidBufferFormat),
)
.field("cbBuffer", &format_args!("{:?}", self.cbBuffer))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_BUFFERDESC {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.guidBufferFormat == other.guidBufferFormat
&& self.cbBuffer == other.cbBuffer
}
}
impl ::std::cmp::Eq for DMUS_BUFFERDESC {}
unsafe impl ::windows::Abi for DMUS_BUFFERDESC {
type Abi = Self;
}
pub const DMUS_CLOCKF_GLOBAL: u32 = 1u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct DMUS_CLOCKTYPE(pub i32);
impl DMUS_CLOCKTYPE {
pub const DMUS_CLOCK_SYSTEM: Self = Self(0i32);
pub const DMUS_CLOCK_WAVE: Self = Self(1i32);
}
impl ::std::convert::From<i32> for DMUS_CLOCKTYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for DMUS_CLOCKTYPE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_CLOCKINFO7 {
pub dwSize: u32,
pub ctType: DMUS_CLOCKTYPE,
pub guidClock: ::windows::Guid,
pub wszDescription: [u16; 128],
}
impl DMUS_CLOCKINFO7 {}
impl ::std::default::Default for DMUS_CLOCKINFO7 {
fn default() -> Self {
Self {
dwSize: 0,
ctType: ::std::default::Default::default(),
guidClock: ::std::default::Default::default(),
wszDescription: [0; 128],
}
}
}
impl ::std::fmt::Debug for DMUS_CLOCKINFO7 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_CLOCKINFO7")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("ctType", &format_args!("{:?}", self.ctType))
.field("guidClock", &format_args!("{:?}", self.guidClock))
.field("wszDescription", &format_args!("{:?}", self.wszDescription))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_CLOCKINFO7 {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.ctType == other.ctType
&& self.guidClock == other.guidClock
&& self.wszDescription == other.wszDescription
}
}
impl ::std::cmp::Eq for DMUS_CLOCKINFO7 {}
unsafe impl ::windows::Abi for DMUS_CLOCKINFO7 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_CLOCKINFO8 {
pub dwSize: u32,
pub ctType: DMUS_CLOCKTYPE,
pub guidClock: ::windows::Guid,
pub wszDescription: [u16; 128],
pub dwFlags: u32,
}
impl DMUS_CLOCKINFO8 {}
impl ::std::default::Default for DMUS_CLOCKINFO8 {
fn default() -> Self {
Self {
dwSize: 0,
ctType: ::std::default::Default::default(),
guidClock: ::std::default::Default::default(),
wszDescription: [0; 128],
dwFlags: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_CLOCKINFO8 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_CLOCKINFO8")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("ctType", &format_args!("{:?}", self.ctType))
.field("guidClock", &format_args!("{:?}", self.guidClock))
.field("wszDescription", &format_args!("{:?}", self.wszDescription))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_CLOCKINFO8 {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.ctType == other.ctType
&& self.guidClock == other.guidClock
&& self.wszDescription == other.wszDescription
&& self.dwFlags == other.dwFlags
}
}
impl ::std::cmp::Eq for DMUS_CLOCKINFO8 {}
unsafe impl ::windows::Abi for DMUS_CLOCKINFO8 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_COPYRIGHT {
pub cbSize: u32,
pub byCopyright: [u8; 4],
}
impl DMUS_COPYRIGHT {}
impl ::std::default::Default for DMUS_COPYRIGHT {
fn default() -> Self {
Self {
cbSize: 0,
byCopyright: [0; 4],
}
}
}
impl ::std::fmt::Debug for DMUS_COPYRIGHT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_COPYRIGHT")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("byCopyright", &format_args!("{:?}", self.byCopyright))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_COPYRIGHT {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize && self.byCopyright == other.byCopyright
}
}
impl ::std::cmp::Eq for DMUS_COPYRIGHT {}
unsafe impl ::windows::Abi for DMUS_COPYRIGHT {
type Abi = Self;
}
pub const DMUS_DEFAULT_SIZE_OFFSETTABLE: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_DOWNLOADINFO {
pub dwDLType: u32,
pub dwDLId: u32,
pub dwNumOffsetTableEntries: u32,
pub cbSize: u32,
}
impl DMUS_DOWNLOADINFO {}
impl ::std::default::Default for DMUS_DOWNLOADINFO {
fn default() -> Self {
Self {
dwDLType: 0,
dwDLId: 0,
dwNumOffsetTableEntries: 0,
cbSize: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_DOWNLOADINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_DOWNLOADINFO")
.field("dwDLType", &format_args!("{:?}", self.dwDLType))
.field("dwDLId", &format_args!("{:?}", self.dwDLId))
.field(
"dwNumOffsetTableEntries",
&format_args!("{:?}", self.dwNumOffsetTableEntries),
)
.field("cbSize", &format_args!("{:?}", self.cbSize))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_DOWNLOADINFO {
fn eq(&self, other: &Self) -> bool {
self.dwDLType == other.dwDLType
&& self.dwDLId == other.dwDLId
&& self.dwNumOffsetTableEntries == other.dwNumOffsetTableEntries
&& self.cbSize == other.cbSize
}
}
impl ::std::cmp::Eq for DMUS_DOWNLOADINFO {}
unsafe impl ::windows::Abi for DMUS_DOWNLOADINFO {
type Abi = Self;
}
pub const DMUS_DOWNLOADINFO_INSTRUMENT: u32 = 1u32;
pub const DMUS_DOWNLOADINFO_INSTRUMENT2: u32 = 3u32;
pub const DMUS_DOWNLOADINFO_ONESHOTWAVE: u32 = 6u32;
pub const DMUS_DOWNLOADINFO_STREAMINGWAVE: u32 = 5u32;
pub const DMUS_DOWNLOADINFO_WAVE: u32 = 2u32;
pub const DMUS_DOWNLOADINFO_WAVEARTICULATION: u32 = 4u32;
pub const DMUS_EFFECT_CHORUS: u32 = 2u32;
pub const DMUS_EFFECT_DELAY: u32 = 4u32;
pub const DMUS_EFFECT_NONE: u32 = 0u32;
pub const DMUS_EFFECT_REVERB: u32 = 1u32;
#[repr(C, packed(4))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_EVENTHEADER {
pub cbEvent: u32,
pub dwChannelGroup: u32,
pub rtDelta: i64,
pub dwFlags: u32,
}
impl DMUS_EVENTHEADER {}
unsafe impl ::windows::Abi for DMUS_EVENTHEADER {
type Abi = Self;
}
pub const DMUS_EVENT_STRUCTURED: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_EXTENSIONCHUNK {
pub cbSize: u32,
pub ulNextExtCkIdx: u32,
pub ExtCkID: u32,
pub byExtCk: [u8; 4],
}
impl DMUS_EXTENSIONCHUNK {}
impl ::std::default::Default for DMUS_EXTENSIONCHUNK {
fn default() -> Self {
Self {
cbSize: 0,
ulNextExtCkIdx: 0,
ExtCkID: 0,
byExtCk: [0; 4],
}
}
}
impl ::std::fmt::Debug for DMUS_EXTENSIONCHUNK {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_EXTENSIONCHUNK")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("ulNextExtCkIdx", &format_args!("{:?}", self.ulNextExtCkIdx))
.field("ExtCkID", &format_args!("{:?}", self.ExtCkID))
.field("byExtCk", &format_args!("{:?}", self.byExtCk))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_EXTENSIONCHUNK {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize
&& self.ulNextExtCkIdx == other.ulNextExtCkIdx
&& self.ExtCkID == other.ExtCkID
&& self.byExtCk == other.byExtCk
}
}
impl ::std::cmp::Eq for DMUS_EXTENSIONCHUNK {}
unsafe impl ::windows::Abi for DMUS_EXTENSIONCHUNK {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_INSTRUMENT {
pub ulPatch: u32,
pub ulFirstRegionIdx: u32,
pub ulGlobalArtIdx: u32,
pub ulFirstExtCkIdx: u32,
pub ulCopyrightIdx: u32,
pub ulFlags: u32,
}
impl DMUS_INSTRUMENT {}
impl ::std::default::Default for DMUS_INSTRUMENT {
fn default() -> Self {
Self {
ulPatch: 0,
ulFirstRegionIdx: 0,
ulGlobalArtIdx: 0,
ulFirstExtCkIdx: 0,
ulCopyrightIdx: 0,
ulFlags: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_INSTRUMENT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_INSTRUMENT")
.field("ulPatch", &format_args!("{:?}", self.ulPatch))
.field(
"ulFirstRegionIdx",
&format_args!("{:?}", self.ulFirstRegionIdx),
)
.field("ulGlobalArtIdx", &format_args!("{:?}", self.ulGlobalArtIdx))
.field(
"ulFirstExtCkIdx",
&format_args!("{:?}", self.ulFirstExtCkIdx),
)
.field("ulCopyrightIdx", &format_args!("{:?}", self.ulCopyrightIdx))
.field("ulFlags", &format_args!("{:?}", self.ulFlags))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_INSTRUMENT {
fn eq(&self, other: &Self) -> bool {
self.ulPatch == other.ulPatch
&& self.ulFirstRegionIdx == other.ulFirstRegionIdx
&& self.ulGlobalArtIdx == other.ulGlobalArtIdx
&& self.ulFirstExtCkIdx == other.ulFirstExtCkIdx
&& self.ulCopyrightIdx == other.ulCopyrightIdx
&& self.ulFlags == other.ulFlags
}
}
impl ::std::cmp::Eq for DMUS_INSTRUMENT {}
unsafe impl ::windows::Abi for DMUS_INSTRUMENT {
type Abi = Self;
}
pub const DMUS_INSTRUMENT_GM_INSTRUMENT: u32 = 1u32;
pub const DMUS_MAX_DESCRIPTION: u32 = 128u32;
pub const DMUS_MAX_DRIVER: u32 = 128u32;
pub const DMUS_MIN_DATA_SIZE: u32 = 4u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_NOTERANGE {
pub dwLowNote: u32,
pub dwHighNote: u32,
}
impl DMUS_NOTERANGE {}
impl ::std::default::Default for DMUS_NOTERANGE {
fn default() -> Self {
Self {
dwLowNote: 0,
dwHighNote: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_NOTERANGE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_NOTERANGE")
.field("dwLowNote", &format_args!("{:?}", self.dwLowNote))
.field("dwHighNote", &format_args!("{:?}", self.dwHighNote))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_NOTERANGE {
fn eq(&self, other: &Self) -> bool {
self.dwLowNote == other.dwLowNote && self.dwHighNote == other.dwHighNote
}
}
impl ::std::cmp::Eq for DMUS_NOTERANGE {}
unsafe impl ::windows::Abi for DMUS_NOTERANGE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_OFFSETTABLE {
pub ulOffsetTable: [u32; 1],
}
impl DMUS_OFFSETTABLE {}
impl ::std::default::Default for DMUS_OFFSETTABLE {
fn default() -> Self {
Self {
ulOffsetTable: [0; 1],
}
}
}
impl ::std::fmt::Debug for DMUS_OFFSETTABLE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_OFFSETTABLE")
.field("ulOffsetTable", &format_args!("{:?}", self.ulOffsetTable))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_OFFSETTABLE {
fn eq(&self, other: &Self) -> bool {
self.ulOffsetTable == other.ulOffsetTable
}
}
impl ::std::cmp::Eq for DMUS_OFFSETTABLE {}
unsafe impl ::windows::Abi for DMUS_OFFSETTABLE {
type Abi = Self;
}
pub const DMUS_PC_AUDIOPATH: u32 = 1024u32;
pub const DMUS_PC_DIRECTSOUND: u32 = 128u32;
pub const DMUS_PC_DLS: u32 = 1u32;
pub const DMUS_PC_DLS2: u32 = 512u32;
pub const DMUS_PC_EXTERNAL: u32 = 2u32;
pub const DMUS_PC_GMINHARDWARE: u32 = 16u32;
pub const DMUS_PC_GSINHARDWARE: u32 = 32u32;
pub const DMUS_PC_INPUTCLASS: u32 = 0u32;
pub const DMUS_PC_MEMORYSIZEFIXED: u32 = 8u32;
pub const DMUS_PC_OUTPUTCLASS: u32 = 1u32;
pub const DMUS_PC_SHAREABLE: u32 = 256u32;
pub const DMUS_PC_SOFTWARESYNTH: u32 = 4u32;
pub const DMUS_PC_SYSTEMMEMORY: u32 = 2147483647u32;
pub const DMUS_PC_WAVE: u32 = 2048u32;
pub const DMUS_PC_XGINHARDWARE: u32 = 64u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_PORTCAPS {
pub dwSize: u32,
pub dwFlags: u32,
pub guidPort: ::windows::Guid,
pub dwClass: u32,
pub dwType: u32,
pub dwMemorySize: u32,
pub dwMaxChannelGroups: u32,
pub dwMaxVoices: u32,
pub dwMaxAudioChannels: u32,
pub dwEffectFlags: u32,
pub wszDescription: [u16; 128],
}
impl DMUS_PORTCAPS {}
impl ::std::default::Default for DMUS_PORTCAPS {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
guidPort: ::std::default::Default::default(),
dwClass: 0,
dwType: 0,
dwMemorySize: 0,
dwMaxChannelGroups: 0,
dwMaxVoices: 0,
dwMaxAudioChannels: 0,
dwEffectFlags: 0,
wszDescription: [0; 128],
}
}
}
impl ::std::fmt::Debug for DMUS_PORTCAPS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_PORTCAPS")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("guidPort", &format_args!("{:?}", self.guidPort))
.field("dwClass", &format_args!("{:?}", self.dwClass))
.field("dwType", &format_args!("{:?}", self.dwType))
.field("dwMemorySize", &format_args!("{:?}", self.dwMemorySize))
.field(
"dwMaxChannelGroups",
&format_args!("{:?}", self.dwMaxChannelGroups),
)
.field("dwMaxVoices", &format_args!("{:?}", self.dwMaxVoices))
.field(
"dwMaxAudioChannels",
&format_args!("{:?}", self.dwMaxAudioChannels),
)
.field("dwEffectFlags", &format_args!("{:?}", self.dwEffectFlags))
.field("wszDescription", &format_args!("{:?}", self.wszDescription))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_PORTCAPS {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.guidPort == other.guidPort
&& self.dwClass == other.dwClass
&& self.dwType == other.dwType
&& self.dwMemorySize == other.dwMemorySize
&& self.dwMaxChannelGroups == other.dwMaxChannelGroups
&& self.dwMaxVoices == other.dwMaxVoices
&& self.dwMaxAudioChannels == other.dwMaxAudioChannels
&& self.dwEffectFlags == other.dwEffectFlags
&& self.wszDescription == other.wszDescription
}
}
impl ::std::cmp::Eq for DMUS_PORTCAPS {}
unsafe impl ::windows::Abi for DMUS_PORTCAPS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_PORTPARAMS8 {
pub dwSize: u32,
pub dwValidParams: u32,
pub dwVoices: u32,
pub dwChannelGroups: u32,
pub dwAudioChannels: u32,
pub dwSampleRate: u32,
pub dwEffectFlags: u32,
pub fShare: super::SystemServices::BOOL,
pub dwFeatures: u32,
}
impl DMUS_PORTPARAMS8 {}
impl ::std::default::Default for DMUS_PORTPARAMS8 {
fn default() -> Self {
Self {
dwSize: 0,
dwValidParams: 0,
dwVoices: 0,
dwChannelGroups: 0,
dwAudioChannels: 0,
dwSampleRate: 0,
dwEffectFlags: 0,
fShare: ::std::default::Default::default(),
dwFeatures: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_PORTPARAMS8 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_PORTPARAMS8")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwValidParams", &format_args!("{:?}", self.dwValidParams))
.field("dwVoices", &format_args!("{:?}", self.dwVoices))
.field(
"dwChannelGroups",
&format_args!("{:?}", self.dwChannelGroups),
)
.field(
"dwAudioChannels",
&format_args!("{:?}", self.dwAudioChannels),
)
.field("dwSampleRate", &format_args!("{:?}", self.dwSampleRate))
.field("dwEffectFlags", &format_args!("{:?}", self.dwEffectFlags))
.field("fShare", &format_args!("{:?}", self.fShare))
.field("dwFeatures", &format_args!("{:?}", self.dwFeatures))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_PORTPARAMS8 {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwValidParams == other.dwValidParams
&& self.dwVoices == other.dwVoices
&& self.dwChannelGroups == other.dwChannelGroups
&& self.dwAudioChannels == other.dwAudioChannels
&& self.dwSampleRate == other.dwSampleRate
&& self.dwEffectFlags == other.dwEffectFlags
&& self.fShare == other.fShare
&& self.dwFeatures == other.dwFeatures
}
}
impl ::std::cmp::Eq for DMUS_PORTPARAMS8 {}
unsafe impl ::windows::Abi for DMUS_PORTPARAMS8 {
type Abi = Self;
}
pub const DMUS_PORTPARAMS_AUDIOCHANNELS: u32 = 4u32;
pub const DMUS_PORTPARAMS_CHANNELGROUPS: u32 = 2u32;
pub const DMUS_PORTPARAMS_EFFECTS: u32 = 32u32;
pub const DMUS_PORTPARAMS_FEATURES: u32 = 128u32;
pub const DMUS_PORTPARAMS_SAMPLERATE: u32 = 8u32;
pub const DMUS_PORTPARAMS_SHARE: u32 = 64u32;
pub const DMUS_PORTPARAMS_VOICES: u32 = 1u32;
pub const DMUS_PORT_FEATURE_AUDIOPATH: u32 = 1u32;
pub const DMUS_PORT_FEATURE_STREAMING: u32 = 2u32;
pub const DMUS_PORT_KERNEL_MODE: u32 = 2u32;
pub const DMUS_PORT_USER_MODE_SYNTH: u32 = 1u32;
pub const DMUS_PORT_WINMM_DRIVER: u32 = 0u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct RGNRANGE {
pub usLow: u16,
pub usHigh: u16,
}
impl RGNRANGE {}
impl ::std::default::Default for RGNRANGE {
fn default() -> Self {
Self {
usLow: 0,
usHigh: 0,
}
}
}
impl ::std::fmt::Debug for RGNRANGE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("RGNRANGE")
.field("usLow", &format_args!("{:?}", self.usLow))
.field("usHigh", &format_args!("{:?}", self.usHigh))
.finish()
}
}
impl ::std::cmp::PartialEq for RGNRANGE {
fn eq(&self, other: &Self) -> bool {
self.usLow == other.usLow && self.usHigh == other.usHigh
}
}
impl ::std::cmp::Eq for RGNRANGE {}
unsafe impl ::windows::Abi for RGNRANGE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct WAVELINK {
pub fusOptions: u16,
pub usPhaseGroup: u16,
pub ulChannel: u32,
pub ulTableIndex: u32,
}
impl WAVELINK {}
impl ::std::default::Default for WAVELINK {
fn default() -> Self {
Self {
fusOptions: 0,
usPhaseGroup: 0,
ulChannel: 0,
ulTableIndex: 0,
}
}
}
impl ::std::fmt::Debug for WAVELINK {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("WAVELINK")
.field("fusOptions", &format_args!("{:?}", self.fusOptions))
.field("usPhaseGroup", &format_args!("{:?}", self.usPhaseGroup))
.field("ulChannel", &format_args!("{:?}", self.ulChannel))
.field("ulTableIndex", &format_args!("{:?}", self.ulTableIndex))
.finish()
}
}
impl ::std::cmp::PartialEq for WAVELINK {
fn eq(&self, other: &Self) -> bool {
self.fusOptions == other.fusOptions
&& self.usPhaseGroup == other.usPhaseGroup
&& self.ulChannel == other.ulChannel
&& self.ulTableIndex == other.ulTableIndex
}
}
impl ::std::cmp::Eq for WAVELINK {}
unsafe impl ::windows::Abi for WAVELINK {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct _rwsmp {
pub cbSize: u32,
pub usUnityNote: u16,
pub sFineTune: i16,
pub lAttenuation: i32,
pub fulOptions: u32,
pub cSampleLoops: u32,
}
impl _rwsmp {}
impl ::std::default::Default for _rwsmp {
fn default() -> Self {
Self {
cbSize: 0,
usUnityNote: 0,
sFineTune: 0,
lAttenuation: 0,
fulOptions: 0,
cSampleLoops: 0,
}
}
}
impl ::std::fmt::Debug for _rwsmp {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_rwsmp")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("usUnityNote", &format_args!("{:?}", self.usUnityNote))
.field("sFineTune", &format_args!("{:?}", self.sFineTune))
.field("lAttenuation", &format_args!("{:?}", self.lAttenuation))
.field("fulOptions", &format_args!("{:?}", self.fulOptions))
.field("cSampleLoops", &format_args!("{:?}", self.cSampleLoops))
.finish()
}
}
impl ::std::cmp::PartialEq for _rwsmp {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize
&& self.usUnityNote == other.usUnityNote
&& self.sFineTune == other.sFineTune
&& self.lAttenuation == other.lAttenuation
&& self.fulOptions == other.fulOptions
&& self.cSampleLoops == other.cSampleLoops
}
}
impl ::std::cmp::Eq for _rwsmp {}
unsafe impl ::windows::Abi for _rwsmp {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct _rloop {
pub cbSize: u32,
pub ulType: u32,
pub ulStart: u32,
pub ulLength: u32,
}
impl _rloop {}
impl ::std::default::Default for _rloop {
fn default() -> Self {
Self {
cbSize: 0,
ulType: 0,
ulStart: 0,
ulLength: 0,
}
}
}
impl ::std::fmt::Debug for _rloop {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_rloop")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("ulType", &format_args!("{:?}", self.ulType))
.field("ulStart", &format_args!("{:?}", self.ulStart))
.field("ulLength", &format_args!("{:?}", self.ulLength))
.finish()
}
}
impl ::std::cmp::PartialEq for _rloop {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize
&& self.ulType == other.ulType
&& self.ulStart == other.ulStart
&& self.ulLength == other.ulLength
}
}
impl ::std::cmp::Eq for _rloop {}
unsafe impl ::windows::Abi for _rloop {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_REGION {
pub RangeKey: RGNRANGE,
pub RangeVelocity: RGNRANGE,
pub fusOptions: u16,
pub usKeyGroup: u16,
pub ulRegionArtIdx: u32,
pub ulNextRegionIdx: u32,
pub ulFirstExtCkIdx: u32,
pub WaveLink: WAVELINK,
pub WSMP: _rwsmp,
pub WLOOP: [_rloop; 1],
}
impl DMUS_REGION {}
impl ::std::default::Default for DMUS_REGION {
fn default() -> Self {
Self {
RangeKey: ::std::default::Default::default(),
RangeVelocity: ::std::default::Default::default(),
fusOptions: 0,
usKeyGroup: 0,
ulRegionArtIdx: 0,
ulNextRegionIdx: 0,
ulFirstExtCkIdx: 0,
WaveLink: ::std::default::Default::default(),
WSMP: ::std::default::Default::default(),
WLOOP: [::std::default::Default::default(); 1],
}
}
}
impl ::std::fmt::Debug for DMUS_REGION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_REGION")
.field("RangeKey", &format_args!("{:?}", self.RangeKey))
.field("RangeVelocity", &format_args!("{:?}", self.RangeVelocity))
.field("fusOptions", &format_args!("{:?}", self.fusOptions))
.field("usKeyGroup", &format_args!("{:?}", self.usKeyGroup))
.field("ulRegionArtIdx", &format_args!("{:?}", self.ulRegionArtIdx))
.field(
"ulNextRegionIdx",
&format_args!("{:?}", self.ulNextRegionIdx),
)
.field(
"ulFirstExtCkIdx",
&format_args!("{:?}", self.ulFirstExtCkIdx),
)
.field("WaveLink", &format_args!("{:?}", self.WaveLink))
.field("WSMP", &format_args!("{:?}", self.WSMP))
.field("WLOOP", &format_args!("{:?}", self.WLOOP))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_REGION {
fn eq(&self, other: &Self) -> bool {
self.RangeKey == other.RangeKey
&& self.RangeVelocity == other.RangeVelocity
&& self.fusOptions == other.fusOptions
&& self.usKeyGroup == other.usKeyGroup
&& self.ulRegionArtIdx == other.ulRegionArtIdx
&& self.ulNextRegionIdx == other.ulNextRegionIdx
&& self.ulFirstExtCkIdx == other.ulFirstExtCkIdx
&& self.WaveLink == other.WaveLink
&& self.WSMP == other.WSMP
&& self.WLOOP == other.WLOOP
}
}
impl ::std::cmp::Eq for DMUS_REGION {}
unsafe impl ::windows::Abi for DMUS_REGION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_SYNTHSTATS {
pub dwSize: u32,
pub dwValidStats: u32,
pub dwVoices: u32,
pub dwTotalCPU: u32,
pub dwCPUPerVoice: u32,
pub dwLostNotes: u32,
pub dwFreeMemory: u32,
pub lPeakVolume: i32,
}
impl DMUS_SYNTHSTATS {}
impl ::std::default::Default for DMUS_SYNTHSTATS {
fn default() -> Self {
Self {
dwSize: 0,
dwValidStats: 0,
dwVoices: 0,
dwTotalCPU: 0,
dwCPUPerVoice: 0,
dwLostNotes: 0,
dwFreeMemory: 0,
lPeakVolume: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_SYNTHSTATS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_SYNTHSTATS")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwValidStats", &format_args!("{:?}", self.dwValidStats))
.field("dwVoices", &format_args!("{:?}", self.dwVoices))
.field("dwTotalCPU", &format_args!("{:?}", self.dwTotalCPU))
.field("dwCPUPerVoice", &format_args!("{:?}", self.dwCPUPerVoice))
.field("dwLostNotes", &format_args!("{:?}", self.dwLostNotes))
.field("dwFreeMemory", &format_args!("{:?}", self.dwFreeMemory))
.field("lPeakVolume", &format_args!("{:?}", self.lPeakVolume))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_SYNTHSTATS {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwValidStats == other.dwValidStats
&& self.dwVoices == other.dwVoices
&& self.dwTotalCPU == other.dwTotalCPU
&& self.dwCPUPerVoice == other.dwCPUPerVoice
&& self.dwLostNotes == other.dwLostNotes
&& self.dwFreeMemory == other.dwFreeMemory
&& self.lPeakVolume == other.lPeakVolume
}
}
impl ::std::cmp::Eq for DMUS_SYNTHSTATS {}
unsafe impl ::windows::Abi for DMUS_SYNTHSTATS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_SYNTHSTATS8 {
pub dwSize: u32,
pub dwValidStats: u32,
pub dwVoices: u32,
pub dwTotalCPU: u32,
pub dwCPUPerVoice: u32,
pub dwLostNotes: u32,
pub dwFreeMemory: u32,
pub lPeakVolume: i32,
pub dwSynthMemUse: u32,
}
impl DMUS_SYNTHSTATS8 {}
impl ::std::default::Default for DMUS_SYNTHSTATS8 {
fn default() -> Self {
Self {
dwSize: 0,
dwValidStats: 0,
dwVoices: 0,
dwTotalCPU: 0,
dwCPUPerVoice: 0,
dwLostNotes: 0,
dwFreeMemory: 0,
lPeakVolume: 0,
dwSynthMemUse: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_SYNTHSTATS8 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_SYNTHSTATS8")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwValidStats", &format_args!("{:?}", self.dwValidStats))
.field("dwVoices", &format_args!("{:?}", self.dwVoices))
.field("dwTotalCPU", &format_args!("{:?}", self.dwTotalCPU))
.field("dwCPUPerVoice", &format_args!("{:?}", self.dwCPUPerVoice))
.field("dwLostNotes", &format_args!("{:?}", self.dwLostNotes))
.field("dwFreeMemory", &format_args!("{:?}", self.dwFreeMemory))
.field("lPeakVolume", &format_args!("{:?}", self.lPeakVolume))
.field("dwSynthMemUse", &format_args!("{:?}", self.dwSynthMemUse))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_SYNTHSTATS8 {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwValidStats == other.dwValidStats
&& self.dwVoices == other.dwVoices
&& self.dwTotalCPU == other.dwTotalCPU
&& self.dwCPUPerVoice == other.dwCPUPerVoice
&& self.dwLostNotes == other.dwLostNotes
&& self.dwFreeMemory == other.dwFreeMemory
&& self.lPeakVolume == other.lPeakVolume
&& self.dwSynthMemUse == other.dwSynthMemUse
}
}
impl ::std::cmp::Eq for DMUS_SYNTHSTATS8 {}
unsafe impl ::windows::Abi for DMUS_SYNTHSTATS8 {
type Abi = Self;
}
pub const DMUS_SYNTHSTATS_CPU_PER_VOICE: u32 = 4u32;
pub const DMUS_SYNTHSTATS_FREE_MEMORY: u32 = 32u32;
pub const DMUS_SYNTHSTATS_LOST_NOTES: u32 = 8u32;
pub const DMUS_SYNTHSTATS_PEAK_VOLUME: u32 = 16u32;
pub const DMUS_SYNTHSTATS_TOTAL_CPU: u32 = 2u32;
pub const DMUS_SYNTHSTATS_VOICES: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_VOICE_STATE {
pub bExists: super::SystemServices::BOOL,
pub spPosition: u64,
}
impl DMUS_VOICE_STATE {}
impl ::std::default::Default for DMUS_VOICE_STATE {
fn default() -> Self {
Self {
bExists: ::std::default::Default::default(),
spPosition: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_VOICE_STATE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_VOICE_STATE")
.field("bExists", &format_args!("{:?}", self.bExists))
.field("spPosition", &format_args!("{:?}", self.spPosition))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_VOICE_STATE {
fn eq(&self, other: &Self) -> bool {
self.bExists == other.bExists && self.spPosition == other.spPosition
}
}
impl ::std::cmp::Eq for DMUS_VOICE_STATE {}
unsafe impl ::windows::Abi for DMUS_VOICE_STATE {
type Abi = Self;
}
pub const DMUS_VOLUME_MAX: u32 = 2000u32;
pub const DMUS_VOLUME_MIN: i32 = -20000i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_WAVE {
pub ulFirstExtCkIdx: u32,
pub ulCopyrightIdx: u32,
pub ulWaveDataIdx: u32,
pub WaveformatEx: super::Multimedia::WAVEFORMATEX,
}
impl DMUS_WAVE {}
unsafe impl ::windows::Abi for DMUS_WAVE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_WAVEARTDL {
pub ulDownloadIdIdx: u32,
pub ulBus: u32,
pub ulBuffers: u32,
pub ulMasterDLId: u32,
pub usOptions: u16,
}
impl DMUS_WAVEARTDL {}
impl ::std::default::Default for DMUS_WAVEARTDL {
fn default() -> Self {
Self {
ulDownloadIdIdx: 0,
ulBus: 0,
ulBuffers: 0,
ulMasterDLId: 0,
usOptions: 0,
}
}
}
impl ::std::fmt::Debug for DMUS_WAVEARTDL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_WAVEARTDL")
.field(
"ulDownloadIdIdx",
&format_args!("{:?}", self.ulDownloadIdIdx),
)
.field("ulBus", &format_args!("{:?}", self.ulBus))
.field("ulBuffers", &format_args!("{:?}", self.ulBuffers))
.field("ulMasterDLId", &format_args!("{:?}", self.ulMasterDLId))
.field("usOptions", &format_args!("{:?}", self.usOptions))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_WAVEARTDL {
fn eq(&self, other: &Self) -> bool {
self.ulDownloadIdIdx == other.ulDownloadIdIdx
&& self.ulBus == other.ulBus
&& self.ulBuffers == other.ulBuffers
&& self.ulMasterDLId == other.ulMasterDLId
&& self.usOptions == other.usOptions
}
}
impl ::std::cmp::Eq for DMUS_WAVEARTDL {}
unsafe impl ::windows::Abi for DMUS_WAVEARTDL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_WAVEDATA {
pub cbSize: u32,
pub byData: [u8; 4],
}
impl DMUS_WAVEDATA {}
impl ::std::default::Default for DMUS_WAVEDATA {
fn default() -> Self {
Self {
cbSize: 0,
byData: [0; 4],
}
}
}
impl ::std::fmt::Debug for DMUS_WAVEDATA {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_WAVEDATA")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("byData", &format_args!("{:?}", self.byData))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_WAVEDATA {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize && self.byData == other.byData
}
}
impl ::std::cmp::Eq for DMUS_WAVEDATA {}
unsafe impl ::windows::Abi for DMUS_WAVEDATA {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_WAVEDL {
pub cbWaveData: u32,
}
impl DMUS_WAVEDL {}
impl ::std::default::Default for DMUS_WAVEDL {
fn default() -> Self {
Self { cbWaveData: 0 }
}
}
impl ::std::fmt::Debug for DMUS_WAVEDL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_WAVEDL")
.field("cbWaveData", &format_args!("{:?}", self.cbWaveData))
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_WAVEDL {
fn eq(&self, other: &Self) -> bool {
self.cbWaveData == other.cbWaveData
}
}
impl ::std::cmp::Eq for DMUS_WAVEDL {}
unsafe impl ::windows::Abi for DMUS_WAVEDL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DMUS_WAVES_REVERB_PARAMS {
pub fInGain: f32,
pub fReverbMix: f32,
pub fReverbTime: f32,
pub fHighFreqRTRatio: f32,
}
impl DMUS_WAVES_REVERB_PARAMS {}
impl ::std::default::Default for DMUS_WAVES_REVERB_PARAMS {
fn default() -> Self {
Self {
fInGain: 0.0,
fReverbMix: 0.0,
fReverbTime: 0.0,
fHighFreqRTRatio: 0.0,
}
}
}
impl ::std::fmt::Debug for DMUS_WAVES_REVERB_PARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DMUS_WAVES_REVERB_PARAMS")
.field("fInGain", &format_args!("{:?}", self.fInGain))
.field("fReverbMix", &format_args!("{:?}", self.fReverbMix))
.field("fReverbTime", &format_args!("{:?}", self.fReverbTime))
.field(
"fHighFreqRTRatio",
&format_args!("{:?}", self.fHighFreqRTRatio),
)
.finish()
}
}
impl ::std::cmp::PartialEq for DMUS_WAVES_REVERB_PARAMS {
fn eq(&self, other: &Self) -> bool {
self.fInGain == other.fInGain
&& self.fReverbMix == other.fReverbMix
&& self.fReverbTime == other.fReverbTime
&& self.fHighFreqRTRatio == other.fHighFreqRTRatio
}
}
impl ::std::cmp::Eq for DMUS_WAVES_REVERB_PARAMS {}
unsafe impl ::windows::Abi for DMUS_WAVES_REVERB_PARAMS {
type Abi = Self;
}
pub const DS3DALG_HRTF_FULL: ::windows::Guid = ::windows::Guid::from_values(
3259052864,
7195,
4562,
[148, 245, 0, 192, 79, 194, 138, 202],
);
pub const DS3DALG_HRTF_LIGHT: ::windows::Guid = ::windows::Guid::from_values(
3259052866,
7195,
4562,
[148, 245, 0, 192, 79, 194, 138, 202],
);
pub const DS3DALG_NO_VIRTUALIZATION: ::windows::Guid = ::windows::Guid::from_values(
3259052863,
7195,
4562,
[148, 245, 0, 192, 79, 194, 138, 202],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DS3DBUFFER {
pub dwSize: u32,
pub vPosition: super::Direct3D9::D3DVECTOR,
pub vVelocity: super::Direct3D9::D3DVECTOR,
pub dwInsideConeAngle: u32,
pub dwOutsideConeAngle: u32,
pub vConeOrientation: super::Direct3D9::D3DVECTOR,
pub lConeOutsideVolume: i32,
pub flMinDistance: f32,
pub flMaxDistance: f32,
pub dwMode: u32,
}
impl DS3DBUFFER {}
impl ::std::default::Default for DS3DBUFFER {
fn default() -> Self {
Self {
dwSize: 0,
vPosition: ::std::default::Default::default(),
vVelocity: ::std::default::Default::default(),
dwInsideConeAngle: 0,
dwOutsideConeAngle: 0,
vConeOrientation: ::std::default::Default::default(),
lConeOutsideVolume: 0,
flMinDistance: 0.0,
flMaxDistance: 0.0,
dwMode: 0,
}
}
}
impl ::std::fmt::Debug for DS3DBUFFER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DS3DBUFFER")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("vPosition", &format_args!("{:?}", self.vPosition))
.field("vVelocity", &format_args!("{:?}", self.vVelocity))
.field(
"dwInsideConeAngle",
&format_args!("{:?}", self.dwInsideConeAngle),
)
.field(
"dwOutsideConeAngle",
&format_args!("{:?}", self.dwOutsideConeAngle),
)
.field(
"vConeOrientation",
&format_args!("{:?}", self.vConeOrientation),
)
.field(
"lConeOutsideVolume",
&format_args!("{:?}", self.lConeOutsideVolume),
)
.field("flMinDistance", &format_args!("{:?}", self.flMinDistance))
.field("flMaxDistance", &format_args!("{:?}", self.flMaxDistance))
.field("dwMode", &format_args!("{:?}", self.dwMode))
.finish()
}
}
impl ::std::cmp::PartialEq for DS3DBUFFER {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.vPosition == other.vPosition
&& self.vVelocity == other.vVelocity
&& self.dwInsideConeAngle == other.dwInsideConeAngle
&& self.dwOutsideConeAngle == other.dwOutsideConeAngle
&& self.vConeOrientation == other.vConeOrientation
&& self.lConeOutsideVolume == other.lConeOutsideVolume
&& self.flMinDistance == other.flMinDistance
&& self.flMaxDistance == other.flMaxDistance
&& self.dwMode == other.dwMode
}
}
impl ::std::cmp::Eq for DS3DBUFFER {}
unsafe impl ::windows::Abi for DS3DBUFFER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DS3DLISTENER {
pub dwSize: u32,
pub vPosition: super::Direct3D9::D3DVECTOR,
pub vVelocity: super::Direct3D9::D3DVECTOR,
pub vOrientFront: super::Direct3D9::D3DVECTOR,
pub vOrientTop: super::Direct3D9::D3DVECTOR,
pub flDistanceFactor: f32,
pub flRolloffFactor: f32,
pub flDopplerFactor: f32,
}
impl DS3DLISTENER {}
impl ::std::default::Default for DS3DLISTENER {
fn default() -> Self {
Self {
dwSize: 0,
vPosition: ::std::default::Default::default(),
vVelocity: ::std::default::Default::default(),
vOrientFront: ::std::default::Default::default(),
vOrientTop: ::std::default::Default::default(),
flDistanceFactor: 0.0,
flRolloffFactor: 0.0,
flDopplerFactor: 0.0,
}
}
}
impl ::std::fmt::Debug for DS3DLISTENER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DS3DLISTENER")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("vPosition", &format_args!("{:?}", self.vPosition))
.field("vVelocity", &format_args!("{:?}", self.vVelocity))
.field("vOrientFront", &format_args!("{:?}", self.vOrientFront))
.field("vOrientTop", &format_args!("{:?}", self.vOrientTop))
.field(
"flDistanceFactor",
&format_args!("{:?}", self.flDistanceFactor),
)
.field(
"flRolloffFactor",
&format_args!("{:?}", self.flRolloffFactor),
)
.field(
"flDopplerFactor",
&format_args!("{:?}", self.flDopplerFactor),
)
.finish()
}
}
impl ::std::cmp::PartialEq for DS3DLISTENER {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.vPosition == other.vPosition
&& self.vVelocity == other.vVelocity
&& self.vOrientFront == other.vOrientFront
&& self.vOrientTop == other.vOrientTop
&& self.flDistanceFactor == other.flDistanceFactor
&& self.flRolloffFactor == other.flRolloffFactor
&& self.flDopplerFactor == other.flDopplerFactor
}
}
impl ::std::cmp::Eq for DS3DLISTENER {}
unsafe impl ::windows::Abi for DS3DLISTENER {
type Abi = Self;
}
pub const DS3DMODE_DISABLE: u32 = 2u32;
pub const DS3DMODE_HEADRELATIVE: u32 = 1u32;
pub const DS3DMODE_NORMAL: u32 = 0u32;
pub const DS3D_DEFAULTCONEANGLE: u32 = 360u32;
pub const DS3D_DEFAULTDISTANCEFACTOR: f32 = 1f32;
pub const DS3D_DEFAULTDOPPLERFACTOR: f32 = 1f32;
pub const DS3D_DEFAULTMAXDISTANCE: f32 = 1000000000f32;
pub const DS3D_DEFAULTMINDISTANCE: f32 = 1f32;
pub const DS3D_DEFAULTROLLOFFFACTOR: f32 = 1f32;
pub const DS3D_DEFERRED: u32 = 1u32;
pub const DS3D_IMMEDIATE: u32 = 0u32;
pub const DS3D_MAXCONEANGLE: u32 = 360u32;
pub const DS3D_MAXDOPPLERFACTOR: f32 = 10f32;
pub const DS3D_MAXROLLOFFFACTOR: f32 = 10f32;
pub const DS3D_MINCONEANGLE: u32 = 0u32;
pub const DS3D_MINDOPPLERFACTOR: f32 = 0f32;
pub const DS3D_MINROLLOFFFACTOR: f32 = 0f32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSBCAPS {
pub dwSize: u32,
pub dwFlags: u32,
pub dwBufferBytes: u32,
pub dwUnlockTransferRate: u32,
pub dwPlayCpuOverhead: u32,
}
impl DSBCAPS {}
impl ::std::default::Default for DSBCAPS {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
dwBufferBytes: 0,
dwUnlockTransferRate: 0,
dwPlayCpuOverhead: 0,
}
}
}
impl ::std::fmt::Debug for DSBCAPS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSBCAPS")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("dwBufferBytes", &format_args!("{:?}", self.dwBufferBytes))
.field(
"dwUnlockTransferRate",
&format_args!("{:?}", self.dwUnlockTransferRate),
)
.field(
"dwPlayCpuOverhead",
&format_args!("{:?}", self.dwPlayCpuOverhead),
)
.finish()
}
}
impl ::std::cmp::PartialEq for DSBCAPS {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.dwBufferBytes == other.dwBufferBytes
&& self.dwUnlockTransferRate == other.dwUnlockTransferRate
&& self.dwPlayCpuOverhead == other.dwPlayCpuOverhead
}
}
impl ::std::cmp::Eq for DSBCAPS {}
unsafe impl ::windows::Abi for DSBCAPS {
type Abi = Self;
}
pub const DSBCAPS_CTRL3D: u32 = 16u32;
pub const DSBCAPS_CTRLFREQUENCY: u32 = 32u32;
pub const DSBCAPS_CTRLFX: u32 = 512u32;
pub const DSBCAPS_CTRLPAN: u32 = 64u32;
pub const DSBCAPS_CTRLPOSITIONNOTIFY: u32 = 256u32;
pub const DSBCAPS_CTRLVOLUME: u32 = 128u32;
pub const DSBCAPS_GETCURRENTPOSITION2: u32 = 65536u32;
pub const DSBCAPS_GLOBALFOCUS: u32 = 32768u32;
pub const DSBCAPS_LOCDEFER: u32 = 262144u32;
pub const DSBCAPS_LOCHARDWARE: u32 = 4u32;
pub const DSBCAPS_LOCSOFTWARE: u32 = 8u32;
pub const DSBCAPS_MUTE3DATMAXDISTANCE: u32 = 131072u32;
pub const DSBCAPS_PRIMARYBUFFER: u32 = 1u32;
pub const DSBCAPS_STATIC: u32 = 2u32;
pub const DSBCAPS_STICKYFOCUS: u32 = 16384u32;
pub const DSBCAPS_TRUEPLAYPOSITION: u32 = 524288u32;
pub const DSBFREQUENCY_MAX: u32 = 200000u32;
pub const DSBFREQUENCY_MIN: u32 = 100u32;
pub const DSBFREQUENCY_ORIGINAL: u32 = 0u32;
pub const DSBLOCK_ENTIREBUFFER: u32 = 2u32;
pub const DSBLOCK_FROMWRITECURSOR: u32 = 1u32;
pub const DSBNOTIFICATIONS_MAX: u32 = 100000u32;
pub const DSBPAN_CENTER: u32 = 0u32;
pub const DSBPAN_LEFT: i32 = -10000i32;
pub const DSBPAN_RIGHT: u32 = 10000u32;
pub const DSBPLAY_LOCHARDWARE: u32 = 2u32;
pub const DSBPLAY_LOCSOFTWARE: u32 = 4u32;
pub const DSBPLAY_LOOPING: u32 = 1u32;
pub const DSBPLAY_TERMINATEBY_DISTANCE: u64 = 16u64;
pub const DSBPLAY_TERMINATEBY_PRIORITY: u64 = 32u64;
pub const DSBPLAY_TERMINATEBY_TIME: u32 = 8u32;
pub const DSBPN_OFFSETSTOP: u32 = 4294967295u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSBPOSITIONNOTIFY {
pub dwOffset: u32,
pub hEventNotify: super::SystemServices::HANDLE,
}
impl DSBPOSITIONNOTIFY {}
impl ::std::default::Default for DSBPOSITIONNOTIFY {
fn default() -> Self {
Self {
dwOffset: 0,
hEventNotify: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for DSBPOSITIONNOTIFY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSBPOSITIONNOTIFY")
.field("dwOffset", &format_args!("{:?}", self.dwOffset))
.field("hEventNotify", &format_args!("{:?}", self.hEventNotify))
.finish()
}
}
impl ::std::cmp::PartialEq for DSBPOSITIONNOTIFY {
fn eq(&self, other: &Self) -> bool {
self.dwOffset == other.dwOffset && self.hEventNotify == other.hEventNotify
}
}
impl ::std::cmp::Eq for DSBPOSITIONNOTIFY {}
unsafe impl ::windows::Abi for DSBPOSITIONNOTIFY {
type Abi = Self;
}
pub const DSBSIZE_FX_MIN: u32 = 150u32;
pub const DSBSIZE_MAX: u32 = 268435455u32;
pub const DSBSIZE_MIN: u32 = 4u32;
pub const DSBSTATUS_BUFFERLOST: u32 = 2u32;
pub const DSBSTATUS_LOCHARDWARE: u32 = 8u32;
pub const DSBSTATUS_LOCSOFTWARE: u32 = 16u32;
pub const DSBSTATUS_LOOPING: u32 = 4u32;
pub const DSBSTATUS_PLAYING: u32 = 1u32;
pub const DSBSTATUS_TERMINATED: u32 = 32u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSBUFFERDESC {
pub dwSize: u32,
pub dwFlags: u32,
pub dwBufferBytes: u32,
pub dwReserved: u32,
pub lpwfxFormat: *mut super::Multimedia::WAVEFORMATEX,
pub guid3DAlgorithm: ::windows::Guid,
}
impl DSBUFFERDESC {}
impl ::std::default::Default for DSBUFFERDESC {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
dwBufferBytes: 0,
dwReserved: 0,
lpwfxFormat: ::std::ptr::null_mut(),
guid3DAlgorithm: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for DSBUFFERDESC {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSBUFFERDESC")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("dwBufferBytes", &format_args!("{:?}", self.dwBufferBytes))
.field("dwReserved", &format_args!("{:?}", self.dwReserved))
.field("lpwfxFormat", &format_args!("{:?}", self.lpwfxFormat))
.field(
"guid3DAlgorithm",
&format_args!("{:?}", self.guid3DAlgorithm),
)
.finish()
}
}
impl ::std::cmp::PartialEq for DSBUFFERDESC {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.dwBufferBytes == other.dwBufferBytes
&& self.dwReserved == other.dwReserved
&& self.lpwfxFormat == other.lpwfxFormat
&& self.guid3DAlgorithm == other.guid3DAlgorithm
}
}
impl ::std::cmp::Eq for DSBUFFERDESC {}
unsafe impl ::windows::Abi for DSBUFFERDESC {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSBUFFERDESC1 {
pub dwSize: u32,
pub dwFlags: u32,
pub dwBufferBytes: u32,
pub dwReserved: u32,
pub lpwfxFormat: *mut super::Multimedia::WAVEFORMATEX,
}
impl DSBUFFERDESC1 {}
impl ::std::default::Default for DSBUFFERDESC1 {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
dwBufferBytes: 0,
dwReserved: 0,
lpwfxFormat: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for DSBUFFERDESC1 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSBUFFERDESC1")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("dwBufferBytes", &format_args!("{:?}", self.dwBufferBytes))
.field("dwReserved", &format_args!("{:?}", self.dwReserved))
.field("lpwfxFormat", &format_args!("{:?}", self.lpwfxFormat))
.finish()
}
}
impl ::std::cmp::PartialEq for DSBUFFERDESC1 {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.dwBufferBytes == other.dwBufferBytes
&& self.dwReserved == other.dwReserved
&& self.lpwfxFormat == other.lpwfxFormat
}
}
impl ::std::cmp::Eq for DSBUFFERDESC1 {}
unsafe impl ::windows::Abi for DSBUFFERDESC1 {
type Abi = Self;
}
pub const DSBUSID_BACK_CENTER: u32 = 8u32;
pub const DSBUSID_BACK_LEFT: u32 = 4u32;
pub const DSBUSID_BACK_RIGHT: u32 = 5u32;
pub const DSBUSID_CHORUS_SEND: u32 = 65u32;
pub const DSBUSID_DYNAMIC_0: u32 = 512u32;
pub const DSBUSID_FIRST_SPKR_LOC: u32 = 0u32;
pub const DSBUSID_FRONT_CENTER: u32 = 2u32;
pub const DSBUSID_FRONT_LEFT: u32 = 0u32;
pub const DSBUSID_FRONT_LEFT_OF_CENTER: u32 = 6u32;
pub const DSBUSID_FRONT_RIGHT: u32 = 1u32;
pub const DSBUSID_FRONT_RIGHT_OF_CENTER: u32 = 7u32;
pub const DSBUSID_LAST_SPKR_LOC: u32 = 17u32;
pub const DSBUSID_LEFT: u32 = 0u32;
pub const DSBUSID_LOW_FREQUENCY: u32 = 3u32;
pub const DSBUSID_NULL: u32 = 4294967295u32;
pub const DSBUSID_REVERB_SEND: u32 = 64u32;
pub const DSBUSID_RIGHT: u32 = 1u32;
pub const DSBUSID_SIDE_LEFT: u32 = 9u32;
pub const DSBUSID_SIDE_RIGHT: u32 = 10u32;
pub const DSBUSID_TOP_BACK_CENTER: u32 = 16u32;
pub const DSBUSID_TOP_BACK_LEFT: u32 = 15u32;
pub const DSBUSID_TOP_BACK_RIGHT: u32 = 17u32;
pub const DSBUSID_TOP_CENTER: u32 = 11u32;
pub const DSBUSID_TOP_FRONT_CENTER: u32 = 13u32;
pub const DSBUSID_TOP_FRONT_LEFT: u32 = 12u32;
pub const DSBUSID_TOP_FRONT_RIGHT: u32 = 14u32;
pub const DSBVOLUME_MAX: u32 = 0u32;
pub const DSBVOLUME_MIN: i32 = -10000i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSCAPS {
pub dwSize: u32,
pub dwFlags: u32,
pub dwMinSecondarySampleRate: u32,
pub dwMaxSecondarySampleRate: u32,
pub dwPrimaryBuffers: u32,
pub dwMaxHwMixingAllBuffers: u32,
pub dwMaxHwMixingStaticBuffers: u32,
pub dwMaxHwMixingStreamingBuffers: u32,
pub dwFreeHwMixingAllBuffers: u32,
pub dwFreeHwMixingStaticBuffers: u32,
pub dwFreeHwMixingStreamingBuffers: u32,
pub dwMaxHw3DAllBuffers: u32,
pub dwMaxHw3DStaticBuffers: u32,
pub dwMaxHw3DStreamingBuffers: u32,
pub dwFreeHw3DAllBuffers: u32,
pub dwFreeHw3DStaticBuffers: u32,
pub dwFreeHw3DStreamingBuffers: u32,
pub dwTotalHwMemBytes: u32,
pub dwFreeHwMemBytes: u32,
pub dwMaxContigFreeHwMemBytes: u32,
pub dwUnlockTransferRateHwBuffers: u32,
pub dwPlayCpuOverheadSwBuffers: u32,
pub dwReserved1: u32,
pub dwReserved2: u32,
}
impl DSCAPS {}
impl ::std::default::Default for DSCAPS {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
dwMinSecondarySampleRate: 0,
dwMaxSecondarySampleRate: 0,
dwPrimaryBuffers: 0,
dwMaxHwMixingAllBuffers: 0,
dwMaxHwMixingStaticBuffers: 0,
dwMaxHwMixingStreamingBuffers: 0,
dwFreeHwMixingAllBuffers: 0,
dwFreeHwMixingStaticBuffers: 0,
dwFreeHwMixingStreamingBuffers: 0,
dwMaxHw3DAllBuffers: 0,
dwMaxHw3DStaticBuffers: 0,
dwMaxHw3DStreamingBuffers: 0,
dwFreeHw3DAllBuffers: 0,
dwFreeHw3DStaticBuffers: 0,
dwFreeHw3DStreamingBuffers: 0,
dwTotalHwMemBytes: 0,
dwFreeHwMemBytes: 0,
dwMaxContigFreeHwMemBytes: 0,
dwUnlockTransferRateHwBuffers: 0,
dwPlayCpuOverheadSwBuffers: 0,
dwReserved1: 0,
dwReserved2: 0,
}
}
}
impl ::std::fmt::Debug for DSCAPS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSCAPS")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field(
"dwMinSecondarySampleRate",
&format_args!("{:?}", self.dwMinSecondarySampleRate),
)
.field(
"dwMaxSecondarySampleRate",
&format_args!("{:?}", self.dwMaxSecondarySampleRate),
)
.field(
"dwPrimaryBuffers",
&format_args!("{:?}", self.dwPrimaryBuffers),
)
.field(
"dwMaxHwMixingAllBuffers",
&format_args!("{:?}", self.dwMaxHwMixingAllBuffers),
)
.field(
"dwMaxHwMixingStaticBuffers",
&format_args!("{:?}", self.dwMaxHwMixingStaticBuffers),
)
.field(
"dwMaxHwMixingStreamingBuffers",
&format_args!("{:?}", self.dwMaxHwMixingStreamingBuffers),
)
.field(
"dwFreeHwMixingAllBuffers",
&format_args!("{:?}", self.dwFreeHwMixingAllBuffers),
)
.field(
"dwFreeHwMixingStaticBuffers",
&format_args!("{:?}", self.dwFreeHwMixingStaticBuffers),
)
.field(
"dwFreeHwMixingStreamingBuffers",
&format_args!("{:?}", self.dwFreeHwMixingStreamingBuffers),
)
.field(
"dwMaxHw3DAllBuffers",
&format_args!("{:?}", self.dwMaxHw3DAllBuffers),
)
.field(
"dwMaxHw3DStaticBuffers",
&format_args!("{:?}", self.dwMaxHw3DStaticBuffers),
)
.field(
"dwMaxHw3DStreamingBuffers",
&format_args!("{:?}", self.dwMaxHw3DStreamingBuffers),
)
.field(
"dwFreeHw3DAllBuffers",
&format_args!("{:?}", self.dwFreeHw3DAllBuffers),
)
.field(
"dwFreeHw3DStaticBuffers",
&format_args!("{:?}", self.dwFreeHw3DStaticBuffers),
)
.field(
"dwFreeHw3DStreamingBuffers",
&format_args!("{:?}", self.dwFreeHw3DStreamingBuffers),
)
.field(
"dwTotalHwMemBytes",
&format_args!("{:?}", self.dwTotalHwMemBytes),
)
.field(
"dwFreeHwMemBytes",
&format_args!("{:?}", self.dwFreeHwMemBytes),
)
.field(
"dwMaxContigFreeHwMemBytes",
&format_args!("{:?}", self.dwMaxContigFreeHwMemBytes),
)
.field(
"dwUnlockTransferRateHwBuffers",
&format_args!("{:?}", self.dwUnlockTransferRateHwBuffers),
)
.field(
"dwPlayCpuOverheadSwBuffers",
&format_args!("{:?}", self.dwPlayCpuOverheadSwBuffers),
)
.field("dwReserved1", &format_args!("{:?}", self.dwReserved1))
.field("dwReserved2", &format_args!("{:?}", self.dwReserved2))
.finish()
}
}
impl ::std::cmp::PartialEq for DSCAPS {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.dwMinSecondarySampleRate == other.dwMinSecondarySampleRate
&& self.dwMaxSecondarySampleRate == other.dwMaxSecondarySampleRate
&& self.dwPrimaryBuffers == other.dwPrimaryBuffers
&& self.dwMaxHwMixingAllBuffers == other.dwMaxHwMixingAllBuffers
&& self.dwMaxHwMixingStaticBuffers == other.dwMaxHwMixingStaticBuffers
&& self.dwMaxHwMixingStreamingBuffers == other.dwMaxHwMixingStreamingBuffers
&& self.dwFreeHwMixingAllBuffers == other.dwFreeHwMixingAllBuffers
&& self.dwFreeHwMixingStaticBuffers == other.dwFreeHwMixingStaticBuffers
&& self.dwFreeHwMixingStreamingBuffers
== other.dwFreeHwMixingStreamingBuffers
&& self.dwMaxHw3DAllBuffers == other.dwMaxHw3DAllBuffers
&& self.dwMaxHw3DStaticBuffers == other.dwMaxHw3DStaticBuffers
&& self.dwMaxHw3DStreamingBuffers == other.dwMaxHw3DStreamingBuffers
&& self.dwFreeHw3DAllBuffers == other.dwFreeHw3DAllBuffers
&& self.dwFreeHw3DStaticBuffers == other.dwFreeHw3DStaticBuffers
&& self.dwFreeHw3DStreamingBuffers == other.dwFreeHw3DStreamingBuffers
&& self.dwTotalHwMemBytes == other.dwTotalHwMemBytes
&& self.dwFreeHwMemBytes == other.dwFreeHwMemBytes
&& self.dwMaxContigFreeHwMemBytes == other.dwMaxContigFreeHwMemBytes
&& self.dwUnlockTransferRateHwBuffers == other.dwUnlockTransferRateHwBuffers
&& self.dwPlayCpuOverheadSwBuffers == other.dwPlayCpuOverheadSwBuffers
&& self.dwReserved1 == other.dwReserved1
&& self.dwReserved2 == other.dwReserved2
}
}
impl ::std::cmp::Eq for DSCAPS {}
unsafe impl ::windows::Abi for DSCAPS {
type Abi = Self;
}
pub const DSCAPS_CERTIFIED: u32 = 64u32;
pub const DSCAPS_CONTINUOUSRATE: u32 = 16u32;
pub const DSCAPS_EMULDRIVER: u32 = 32u32;
pub const DSCAPS_PRIMARY16BIT: u32 = 8u32;
pub const DSCAPS_PRIMARY8BIT: u32 = 4u32;
pub const DSCAPS_PRIMARYMONO: u32 = 1u32;
pub const DSCAPS_PRIMARYSTEREO: u32 = 2u32;
pub const DSCAPS_SECONDARY16BIT: u32 = 2048u32;
pub const DSCAPS_SECONDARY8BIT: u32 = 1024u32;
pub const DSCAPS_SECONDARYMONO: u32 = 256u32;
pub const DSCAPS_SECONDARYSTEREO: u32 = 512u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSCBCAPS {
pub dwSize: u32,
pub dwFlags: u32,
pub dwBufferBytes: u32,
pub dwReserved: u32,
}
impl DSCBCAPS {}
impl ::std::default::Default for DSCBCAPS {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
dwBufferBytes: 0,
dwReserved: 0,
}
}
}
impl ::std::fmt::Debug for DSCBCAPS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSCBCAPS")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("dwBufferBytes", &format_args!("{:?}", self.dwBufferBytes))
.field("dwReserved", &format_args!("{:?}", self.dwReserved))
.finish()
}
}
impl ::std::cmp::PartialEq for DSCBCAPS {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.dwBufferBytes == other.dwBufferBytes
&& self.dwReserved == other.dwReserved
}
}
impl ::std::cmp::Eq for DSCBCAPS {}
unsafe impl ::windows::Abi for DSCBCAPS {
type Abi = Self;
}
pub const DSCBCAPS_CTRLFX: u32 = 512u32;
pub const DSCBCAPS_WAVEMAPPED: u32 = 2147483648u32;
pub const DSCBLOCK_ENTIREBUFFER: u32 = 1u32;
pub const DSCBSTART_LOOPING: u32 = 1u32;
pub const DSCBSTATUS_CAPTURING: u32 = 1u32;
pub const DSCBSTATUS_LOOPING: u32 = 2u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSCEFFECTDESC {
pub dwSize: u32,
pub dwFlags: u32,
pub guidDSCFXClass: ::windows::Guid,
pub guidDSCFXInstance: ::windows::Guid,
pub dwReserved1: u32,
pub dwReserved2: u32,
}
impl DSCEFFECTDESC {}
impl ::std::default::Default for DSCEFFECTDESC {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
guidDSCFXClass: ::std::default::Default::default(),
guidDSCFXInstance: ::std::default::Default::default(),
dwReserved1: 0,
dwReserved2: 0,
}
}
}
impl ::std::fmt::Debug for DSCEFFECTDESC {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSCEFFECTDESC")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("guidDSCFXClass", &format_args!("{:?}", self.guidDSCFXClass))
.field(
"guidDSCFXInstance",
&format_args!("{:?}", self.guidDSCFXInstance),
)
.field("dwReserved1", &format_args!("{:?}", self.dwReserved1))
.field("dwReserved2", &format_args!("{:?}", self.dwReserved2))
.finish()
}
}
impl ::std::cmp::PartialEq for DSCEFFECTDESC {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.guidDSCFXClass == other.guidDSCFXClass
&& self.guidDSCFXInstance == other.guidDSCFXInstance
&& self.dwReserved1 == other.dwReserved1
&& self.dwReserved2 == other.dwReserved2
}
}
impl ::std::cmp::Eq for DSCEFFECTDESC {}
unsafe impl ::windows::Abi for DSCEFFECTDESC {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSCBUFFERDESC {
pub dwSize: u32,
pub dwFlags: u32,
pub dwBufferBytes: u32,
pub dwReserved: u32,
pub lpwfxFormat: *mut super::Multimedia::WAVEFORMATEX,
pub dwFXCount: u32,
pub lpDSCFXDesc: *mut DSCEFFECTDESC,
}
impl DSCBUFFERDESC {}
impl ::std::default::Default for DSCBUFFERDESC {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
dwBufferBytes: 0,
dwReserved: 0,
lpwfxFormat: ::std::ptr::null_mut(),
dwFXCount: 0,
lpDSCFXDesc: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for DSCBUFFERDESC {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSCBUFFERDESC")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("dwBufferBytes", &format_args!("{:?}", self.dwBufferBytes))
.field("dwReserved", &format_args!("{:?}", self.dwReserved))
.field("lpwfxFormat", &format_args!("{:?}", self.lpwfxFormat))
.field("dwFXCount", &format_args!("{:?}", self.dwFXCount))
.field("lpDSCFXDesc", &format_args!("{:?}", self.lpDSCFXDesc))
.finish()
}
}
impl ::std::cmp::PartialEq for DSCBUFFERDESC {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.dwBufferBytes == other.dwBufferBytes
&& self.dwReserved == other.dwReserved
&& self.lpwfxFormat == other.lpwfxFormat
&& self.dwFXCount == other.dwFXCount
&& self.lpDSCFXDesc == other.lpDSCFXDesc
}
}
impl ::std::cmp::Eq for DSCBUFFERDESC {}
unsafe impl ::windows::Abi for DSCBUFFERDESC {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSCBUFFERDESC1 {
pub dwSize: u32,
pub dwFlags: u32,
pub dwBufferBytes: u32,
pub dwReserved: u32,
pub lpwfxFormat: *mut super::Multimedia::WAVEFORMATEX,
}
impl DSCBUFFERDESC1 {}
impl ::std::default::Default for DSCBUFFERDESC1 {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
dwBufferBytes: 0,
dwReserved: 0,
lpwfxFormat: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for DSCBUFFERDESC1 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSCBUFFERDESC1")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("dwBufferBytes", &format_args!("{:?}", self.dwBufferBytes))
.field("dwReserved", &format_args!("{:?}", self.dwReserved))
.field("lpwfxFormat", &format_args!("{:?}", self.lpwfxFormat))
.finish()
}
}
impl ::std::cmp::PartialEq for DSCBUFFERDESC1 {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.dwBufferBytes == other.dwBufferBytes
&& self.dwReserved == other.dwReserved
&& self.lpwfxFormat == other.lpwfxFormat
}
}
impl ::std::cmp::Eq for DSCBUFFERDESC1 {}
unsafe impl ::windows::Abi for DSCBUFFERDESC1 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSCCAPS {
pub dwSize: u32,
pub dwFlags: u32,
pub dwFormats: u32,
pub dwChannels: u32,
}
impl DSCCAPS {}
impl ::std::default::Default for DSCCAPS {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
dwFormats: 0,
dwChannels: 0,
}
}
}
impl ::std::fmt::Debug for DSCCAPS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSCCAPS")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("dwFormats", &format_args!("{:?}", self.dwFormats))
.field("dwChannels", &format_args!("{:?}", self.dwChannels))
.finish()
}
}
impl ::std::cmp::PartialEq for DSCCAPS {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.dwFormats == other.dwFormats
&& self.dwChannels == other.dwChannels
}
}
impl ::std::cmp::Eq for DSCCAPS {}
unsafe impl ::windows::Abi for DSCCAPS {
type Abi = Self;
}
pub const DSCCAPS_MULTIPLECAPTURE: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSCFXAec {
pub fEnable: super::SystemServices::BOOL,
pub fNoiseFill: super::SystemServices::BOOL,
pub dwMode: u32,
}
impl DSCFXAec {}
impl ::std::default::Default for DSCFXAec {
fn default() -> Self {
Self {
fEnable: ::std::default::Default::default(),
fNoiseFill: ::std::default::Default::default(),
dwMode: 0,
}
}
}
impl ::std::fmt::Debug for DSCFXAec {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSCFXAec")
.field("fEnable", &format_args!("{:?}", self.fEnable))
.field("fNoiseFill", &format_args!("{:?}", self.fNoiseFill))
.field("dwMode", &format_args!("{:?}", self.dwMode))
.finish()
}
}
impl ::std::cmp::PartialEq for DSCFXAec {
fn eq(&self, other: &Self) -> bool {
self.fEnable == other.fEnable
&& self.fNoiseFill == other.fNoiseFill
&& self.dwMode == other.dwMode
}
}
impl ::std::cmp::Eq for DSCFXAec {}
unsafe impl ::windows::Abi for DSCFXAec {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSCFXNoiseSuppress {
pub fEnable: super::SystemServices::BOOL,
}
impl DSCFXNoiseSuppress {}
impl ::std::default::Default for DSCFXNoiseSuppress {
fn default() -> Self {
Self {
fEnable: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for DSCFXNoiseSuppress {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSCFXNoiseSuppress")
.field("fEnable", &format_args!("{:?}", self.fEnable))
.finish()
}
}
impl ::std::cmp::PartialEq for DSCFXNoiseSuppress {
fn eq(&self, other: &Self) -> bool {
self.fEnable == other.fEnable
}
}
impl ::std::cmp::Eq for DSCFXNoiseSuppress {}
unsafe impl ::windows::Abi for DSCFXNoiseSuppress {
type Abi = Self;
}
pub const DSCFX_AEC_MODE_FULL_DUPLEX: u32 = 2u32;
pub const DSCFX_AEC_MODE_HALF_DUPLEX: u32 = 1u32;
pub const DSCFX_AEC_MODE_PASS_THROUGH: u32 = 0u32;
pub const DSCFX_AEC_STATUS_CURRENTLY_CONVERGED: u32 = 8u32;
pub const DSCFX_AEC_STATUS_HISTORY_CONTINUOUSLY_CONVERGED: u32 = 1u32;
pub const DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED: u32 = 2u32;
pub const DSCFX_AEC_STATUS_HISTORY_UNINITIALIZED: u32 = 0u32;
pub const DSDEVID_DefaultCapture: ::windows::Guid = ::windows::Guid::from_values(
3740270593,
40045,
18413,
[170, 241, 77, 218, 143, 43, 92, 3],
);
pub const DSDEVID_DefaultPlayback: ::windows::Guid = ::windows::Guid::from_values(
3740270592,
40045,
18413,
[170, 241, 77, 218, 143, 43, 92, 3],
);
pub const DSDEVID_DefaultVoiceCapture: ::windows::Guid = ::windows::Guid::from_values(
3740270595,
40045,
18413,
[170, 241, 77, 218, 143, 43, 92, 3],
);
pub const DSDEVID_DefaultVoicePlayback: ::windows::Guid = ::windows::Guid::from_values(
3740270594,
40045,
18413,
[170, 241, 77, 218, 143, 43, 92, 3],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSEFFECTDESC {
pub dwSize: u32,
pub dwFlags: u32,
pub guidDSFXClass: ::windows::Guid,
pub dwReserved1: usize,
pub dwReserved2: usize,
}
impl DSEFFECTDESC {}
impl ::std::default::Default for DSEFFECTDESC {
fn default() -> Self {
Self {
dwSize: 0,
dwFlags: 0,
guidDSFXClass: ::std::default::Default::default(),
dwReserved1: 0,
dwReserved2: 0,
}
}
}
impl ::std::fmt::Debug for DSEFFECTDESC {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSEFFECTDESC")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("guidDSFXClass", &format_args!("{:?}", self.guidDSFXClass))
.field("dwReserved1", &format_args!("{:?}", self.dwReserved1))
.field("dwReserved2", &format_args!("{:?}", self.dwReserved2))
.finish()
}
}
impl ::std::cmp::PartialEq for DSEFFECTDESC {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwFlags == other.dwFlags
&& self.guidDSFXClass == other.guidDSFXClass
&& self.dwReserved1 == other.dwReserved1
&& self.dwReserved2 == other.dwReserved2
}
}
impl ::std::cmp::Eq for DSEFFECTDESC {}
unsafe impl ::windows::Abi for DSEFFECTDESC {
type Abi = Self;
}
pub const DSFXCHORUS_DELAY_MAX: f32 = 20f32;
pub const DSFXCHORUS_DELAY_MIN: f32 = 0f32;
pub const DSFXCHORUS_DEPTH_MAX: f32 = 100f32;
pub const DSFXCHORUS_DEPTH_MIN: f32 = 0f32;
pub const DSFXCHORUS_FEEDBACK_MAX: f32 = 99f32;
pub const DSFXCHORUS_FEEDBACK_MIN: f32 = -99f32;
pub const DSFXCHORUS_FREQUENCY_MAX: f32 = 10f32;
pub const DSFXCHORUS_FREQUENCY_MIN: f32 = 0f32;
pub const DSFXCHORUS_PHASE_180: u32 = 4u32;
pub const DSFXCHORUS_PHASE_90: u32 = 3u32;
pub const DSFXCHORUS_PHASE_MAX: u32 = 4u32;
pub const DSFXCHORUS_PHASE_MIN: u32 = 0u32;
pub const DSFXCHORUS_PHASE_NEG_180: u32 = 0u32;
pub const DSFXCHORUS_PHASE_NEG_90: u32 = 1u32;
pub const DSFXCHORUS_PHASE_ZERO: u32 = 2u32;
pub const DSFXCHORUS_WAVE_SIN: u32 = 1u32;
pub const DSFXCHORUS_WAVE_TRIANGLE: u32 = 0u32;
pub const DSFXCHORUS_WETDRYMIX_MAX: f32 = 100f32;
pub const DSFXCHORUS_WETDRYMIX_MIN: f32 = 0f32;
pub const DSFXCOMPRESSOR_ATTACK_MAX: f32 = 500f32;
pub const DSFXCOMPRESSOR_ATTACK_MIN: f32 = 0.01f32;
pub const DSFXCOMPRESSOR_GAIN_MAX: f32 = 60f32;
pub const DSFXCOMPRESSOR_GAIN_MIN: f32 = -60f32;
pub const DSFXCOMPRESSOR_PREDELAY_MAX: f32 = 4f32;
pub const DSFXCOMPRESSOR_PREDELAY_MIN: f32 = 0f32;
pub const DSFXCOMPRESSOR_RATIO_MAX: f32 = 100f32;
pub const DSFXCOMPRESSOR_RATIO_MIN: f32 = 1f32;
pub const DSFXCOMPRESSOR_RELEASE_MAX: f32 = 3000f32;
pub const DSFXCOMPRESSOR_RELEASE_MIN: f32 = 50f32;
pub const DSFXCOMPRESSOR_THRESHOLD_MAX: f32 = 0f32;
pub const DSFXCOMPRESSOR_THRESHOLD_MIN: f32 = -60f32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSFXChorus {
pub fWetDryMix: f32,
pub fDepth: f32,
pub fFeedback: f32,
pub fFrequency: f32,
pub lWaveform: i32,
pub fDelay: f32,
pub lPhase: i32,
}
impl DSFXChorus {}
impl ::std::default::Default for DSFXChorus {
fn default() -> Self {
Self {
fWetDryMix: 0.0,
fDepth: 0.0,
fFeedback: 0.0,
fFrequency: 0.0,
lWaveform: 0,
fDelay: 0.0,
lPhase: 0,
}
}
}
impl ::std::fmt::Debug for DSFXChorus {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSFXChorus")
.field("fWetDryMix", &format_args!("{:?}", self.fWetDryMix))
.field("fDepth", &format_args!("{:?}", self.fDepth))
.field("fFeedback", &format_args!("{:?}", self.fFeedback))
.field("fFrequency", &format_args!("{:?}", self.fFrequency))
.field("lWaveform", &format_args!("{:?}", self.lWaveform))
.field("fDelay", &format_args!("{:?}", self.fDelay))
.field("lPhase", &format_args!("{:?}", self.lPhase))
.finish()
}
}
impl ::std::cmp::PartialEq for DSFXChorus {
fn eq(&self, other: &Self) -> bool {
self.fWetDryMix == other.fWetDryMix
&& self.fDepth == other.fDepth
&& self.fFeedback == other.fFeedback
&& self.fFrequency == other.fFrequency
&& self.lWaveform == other.lWaveform
&& self.fDelay == other.fDelay
&& self.lPhase == other.lPhase
}
}
impl ::std::cmp::Eq for DSFXChorus {}
unsafe impl ::windows::Abi for DSFXChorus {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSFXCompressor {
pub fGain: f32,
pub fAttack: f32,
pub fRelease: f32,
pub fThreshold: f32,
pub fRatio: f32,
pub fPredelay: f32,
}
impl DSFXCompressor {}
impl ::std::default::Default for DSFXCompressor {
fn default() -> Self {
Self {
fGain: 0.0,
fAttack: 0.0,
fRelease: 0.0,
fThreshold: 0.0,
fRatio: 0.0,
fPredelay: 0.0,
}
}
}
impl ::std::fmt::Debug for DSFXCompressor {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSFXCompressor")
.field("fGain", &format_args!("{:?}", self.fGain))
.field("fAttack", &format_args!("{:?}", self.fAttack))
.field("fRelease", &format_args!("{:?}", self.fRelease))
.field("fThreshold", &format_args!("{:?}", self.fThreshold))
.field("fRatio", &format_args!("{:?}", self.fRatio))
.field("fPredelay", &format_args!("{:?}", self.fPredelay))
.finish()
}
}
impl ::std::cmp::PartialEq for DSFXCompressor {
fn eq(&self, other: &Self) -> bool {
self.fGain == other.fGain
&& self.fAttack == other.fAttack
&& self.fRelease == other.fRelease
&& self.fThreshold == other.fThreshold
&& self.fRatio == other.fRatio
&& self.fPredelay == other.fPredelay
}
}
impl ::std::cmp::Eq for DSFXCompressor {}
unsafe impl ::windows::Abi for DSFXCompressor {
type Abi = Self;
}
pub const DSFXDISTORTION_EDGE_MAX: f32 = 100f32;
pub const DSFXDISTORTION_EDGE_MIN: f32 = 0f32;
pub const DSFXDISTORTION_GAIN_MAX: f32 = 0f32;
pub const DSFXDISTORTION_GAIN_MIN: f32 = -60f32;
pub const DSFXDISTORTION_POSTEQBANDWIDTH_MAX: f32 = 8000f32;
pub const DSFXDISTORTION_POSTEQBANDWIDTH_MIN: f32 = 100f32;
pub const DSFXDISTORTION_POSTEQCENTERFREQUENCY_MAX: f32 = 8000f32;
pub const DSFXDISTORTION_POSTEQCENTERFREQUENCY_MIN: f32 = 100f32;
pub const DSFXDISTORTION_PRELOWPASSCUTOFF_MAX: f32 = 8000f32;
pub const DSFXDISTORTION_PRELOWPASSCUTOFF_MIN: f32 = 100f32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSFXDistortion {
pub fGain: f32,
pub fEdge: f32,
pub fPostEQCenterFrequency: f32,
pub fPostEQBandwidth: f32,
pub fPreLowpassCutoff: f32,
}
impl DSFXDistortion {}
impl ::std::default::Default for DSFXDistortion {
fn default() -> Self {
Self {
fGain: 0.0,
fEdge: 0.0,
fPostEQCenterFrequency: 0.0,
fPostEQBandwidth: 0.0,
fPreLowpassCutoff: 0.0,
}
}
}
impl ::std::fmt::Debug for DSFXDistortion {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSFXDistortion")
.field("fGain", &format_args!("{:?}", self.fGain))
.field("fEdge", &format_args!("{:?}", self.fEdge))
.field(
"fPostEQCenterFrequency",
&format_args!("{:?}", self.fPostEQCenterFrequency),
)
.field(
"fPostEQBandwidth",
&format_args!("{:?}", self.fPostEQBandwidth),
)
.field(
"fPreLowpassCutoff",
&format_args!("{:?}", self.fPreLowpassCutoff),
)
.finish()
}
}
impl ::std::cmp::PartialEq for DSFXDistortion {
fn eq(&self, other: &Self) -> bool {
self.fGain == other.fGain
&& self.fEdge == other.fEdge
&& self.fPostEQCenterFrequency == other.fPostEQCenterFrequency
&& self.fPostEQBandwidth == other.fPostEQBandwidth
&& self.fPreLowpassCutoff == other.fPreLowpassCutoff
}
}
impl ::std::cmp::Eq for DSFXDistortion {}
unsafe impl ::windows::Abi for DSFXDistortion {
type Abi = Self;
}
pub const DSFXECHO_FEEDBACK_MAX: f32 = 100f32;
pub const DSFXECHO_FEEDBACK_MIN: f32 = 0f32;
pub const DSFXECHO_LEFTDELAY_MAX: f32 = 2000f32;
pub const DSFXECHO_LEFTDELAY_MIN: f32 = 1f32;
pub const DSFXECHO_PANDELAY_MAX: u32 = 1u32;
pub const DSFXECHO_PANDELAY_MIN: u32 = 0u32;
pub const DSFXECHO_RIGHTDELAY_MAX: f32 = 2000f32;
pub const DSFXECHO_RIGHTDELAY_MIN: f32 = 1f32;
pub const DSFXECHO_WETDRYMIX_MAX: f32 = 100f32;
pub const DSFXECHO_WETDRYMIX_MIN: f32 = 0f32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSFXEcho {
pub fWetDryMix: f32,
pub fFeedback: f32,
pub fLeftDelay: f32,
pub fRightDelay: f32,
pub lPanDelay: i32,
}
impl DSFXEcho {}
impl ::std::default::Default for DSFXEcho {
fn default() -> Self {
Self {
fWetDryMix: 0.0,
fFeedback: 0.0,
fLeftDelay: 0.0,
fRightDelay: 0.0,
lPanDelay: 0,
}
}
}
impl ::std::fmt::Debug for DSFXEcho {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSFXEcho")
.field("fWetDryMix", &format_args!("{:?}", self.fWetDryMix))
.field("fFeedback", &format_args!("{:?}", self.fFeedback))
.field("fLeftDelay", &format_args!("{:?}", self.fLeftDelay))
.field("fRightDelay", &format_args!("{:?}", self.fRightDelay))
.field("lPanDelay", &format_args!("{:?}", self.lPanDelay))
.finish()
}
}
impl ::std::cmp::PartialEq for DSFXEcho {
fn eq(&self, other: &Self) -> bool {
self.fWetDryMix == other.fWetDryMix
&& self.fFeedback == other.fFeedback
&& self.fLeftDelay == other.fLeftDelay
&& self.fRightDelay == other.fRightDelay
&& self.lPanDelay == other.lPanDelay
}
}
impl ::std::cmp::Eq for DSFXEcho {}
unsafe impl ::windows::Abi for DSFXEcho {
type Abi = Self;
}
pub const DSFXFLANGER_DELAY_MAX: f32 = 4f32;
pub const DSFXFLANGER_DELAY_MIN: f32 = 0f32;
pub const DSFXFLANGER_DEPTH_MAX: f32 = 100f32;
pub const DSFXFLANGER_DEPTH_MIN: f32 = 0f32;
pub const DSFXFLANGER_FEEDBACK_MAX: f32 = 99f32;
pub const DSFXFLANGER_FEEDBACK_MIN: f32 = -99f32;
pub const DSFXFLANGER_FREQUENCY_MAX: f32 = 10f32;
pub const DSFXFLANGER_FREQUENCY_MIN: f32 = 0f32;
pub const DSFXFLANGER_PHASE_180: u32 = 4u32;
pub const DSFXFLANGER_PHASE_90: u32 = 3u32;
pub const DSFXFLANGER_PHASE_MAX: u32 = 4u32;
pub const DSFXFLANGER_PHASE_MIN: u32 = 0u32;
pub const DSFXFLANGER_PHASE_NEG_180: u32 = 0u32;
pub const DSFXFLANGER_PHASE_NEG_90: u32 = 1u32;
pub const DSFXFLANGER_PHASE_ZERO: u32 = 2u32;
pub const DSFXFLANGER_WAVE_SIN: u32 = 1u32;
pub const DSFXFLANGER_WAVE_TRIANGLE: u32 = 0u32;
pub const DSFXFLANGER_WETDRYMIX_MAX: f32 = 100f32;
pub const DSFXFLANGER_WETDRYMIX_MIN: f32 = 0f32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSFXFlanger {
pub fWetDryMix: f32,
pub fDepth: f32,
pub fFeedback: f32,
pub fFrequency: f32,
pub lWaveform: i32,
pub fDelay: f32,
pub lPhase: i32,
}
impl DSFXFlanger {}
impl ::std::default::Default for DSFXFlanger {
fn default() -> Self {
Self {
fWetDryMix: 0.0,
fDepth: 0.0,
fFeedback: 0.0,
fFrequency: 0.0,
lWaveform: 0,
fDelay: 0.0,
lPhase: 0,
}
}
}
impl ::std::fmt::Debug for DSFXFlanger {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSFXFlanger")
.field("fWetDryMix", &format_args!("{:?}", self.fWetDryMix))
.field("fDepth", &format_args!("{:?}", self.fDepth))
.field("fFeedback", &format_args!("{:?}", self.fFeedback))
.field("fFrequency", &format_args!("{:?}", self.fFrequency))
.field("lWaveform", &format_args!("{:?}", self.lWaveform))
.field("fDelay", &format_args!("{:?}", self.fDelay))
.field("lPhase", &format_args!("{:?}", self.lPhase))
.finish()
}
}
impl ::std::cmp::PartialEq for DSFXFlanger {
fn eq(&self, other: &Self) -> bool {
self.fWetDryMix == other.fWetDryMix
&& self.fDepth == other.fDepth
&& self.fFeedback == other.fFeedback
&& self.fFrequency == other.fFrequency
&& self.lWaveform == other.lWaveform
&& self.fDelay == other.fDelay
&& self.lPhase == other.lPhase
}
}
impl ::std::cmp::Eq for DSFXFlanger {}
unsafe impl ::windows::Abi for DSFXFlanger {
type Abi = Self;
}
pub const DSFXGARGLE_RATEHZ_MAX: u32 = 1000u32;
pub const DSFXGARGLE_RATEHZ_MIN: u32 = 1u32;
pub const DSFXGARGLE_WAVE_SQUARE: u32 = 1u32;
pub const DSFXGARGLE_WAVE_TRIANGLE: u32 = 0u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSFXGargle {
pub dwRateHz: u32,
pub dwWaveShape: u32,
}
impl DSFXGargle {}
impl ::std::default::Default for DSFXGargle {
fn default() -> Self {
Self {
dwRateHz: 0,
dwWaveShape: 0,
}
}
}
impl ::std::fmt::Debug for DSFXGargle {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSFXGargle")
.field("dwRateHz", &format_args!("{:?}", self.dwRateHz))
.field("dwWaveShape", &format_args!("{:?}", self.dwWaveShape))
.finish()
}
}
impl ::std::cmp::PartialEq for DSFXGargle {
fn eq(&self, other: &Self) -> bool {
self.dwRateHz == other.dwRateHz && self.dwWaveShape == other.dwWaveShape
}
}
impl ::std::cmp::Eq for DSFXGargle {}
unsafe impl ::windows::Abi for DSFXGargle {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSFXI3DL2Reverb {
pub lRoom: i32,
pub lRoomHF: i32,
pub flRoomRolloffFactor: f32,
pub flDecayTime: f32,
pub flDecayHFRatio: f32,
pub lReflections: i32,
pub flReflectionsDelay: f32,
pub lReverb: i32,
pub flReverbDelay: f32,
pub flDiffusion: f32,
pub flDensity: f32,
pub flHFReference: f32,
}
impl DSFXI3DL2Reverb {}
impl ::std::default::Default for DSFXI3DL2Reverb {
fn default() -> Self {
Self {
lRoom: 0,
lRoomHF: 0,
flRoomRolloffFactor: 0.0,
flDecayTime: 0.0,
flDecayHFRatio: 0.0,
lReflections: 0,
flReflectionsDelay: 0.0,
lReverb: 0,
flReverbDelay: 0.0,
flDiffusion: 0.0,
flDensity: 0.0,
flHFReference: 0.0,
}
}
}
impl ::std::fmt::Debug for DSFXI3DL2Reverb {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSFXI3DL2Reverb")
.field("lRoom", &format_args!("{:?}", self.lRoom))
.field("lRoomHF", &format_args!("{:?}", self.lRoomHF))
.field(
"flRoomRolloffFactor",
&format_args!("{:?}", self.flRoomRolloffFactor),
)
.field("flDecayTime", &format_args!("{:?}", self.flDecayTime))
.field("flDecayHFRatio", &format_args!("{:?}", self.flDecayHFRatio))
.field("lReflections", &format_args!("{:?}", self.lReflections))
.field(
"flReflectionsDelay",
&format_args!("{:?}", self.flReflectionsDelay),
)
.field("lReverb", &format_args!("{:?}", self.lReverb))
.field("flReverbDelay", &format_args!("{:?}", self.flReverbDelay))
.field("flDiffusion", &format_args!("{:?}", self.flDiffusion))
.field("flDensity", &format_args!("{:?}", self.flDensity))
.field("flHFReference", &format_args!("{:?}", self.flHFReference))
.finish()
}
}
impl ::std::cmp::PartialEq for DSFXI3DL2Reverb {
fn eq(&self, other: &Self) -> bool {
self.lRoom == other.lRoom
&& self.lRoomHF == other.lRoomHF
&& self.flRoomRolloffFactor == other.flRoomRolloffFactor
&& self.flDecayTime == other.flDecayTime
&& self.flDecayHFRatio == other.flDecayHFRatio
&& self.lReflections == other.lReflections
&& self.flReflectionsDelay == other.flReflectionsDelay
&& self.lReverb == other.lReverb
&& self.flReverbDelay == other.flReverbDelay
&& self.flDiffusion == other.flDiffusion
&& self.flDensity == other.flDensity
&& self.flHFReference == other.flHFReference
}
}
impl ::std::cmp::Eq for DSFXI3DL2Reverb {}
unsafe impl ::windows::Abi for DSFXI3DL2Reverb {
type Abi = Self;
}
pub const DSFXPARAMEQ_BANDWIDTH_MAX: f32 = 36f32;
pub const DSFXPARAMEQ_BANDWIDTH_MIN: f32 = 1f32;
pub const DSFXPARAMEQ_CENTER_MAX: f32 = 16000f32;
pub const DSFXPARAMEQ_CENTER_MIN: f32 = 80f32;
pub const DSFXPARAMEQ_GAIN_MAX: f32 = 15f32;
pub const DSFXPARAMEQ_GAIN_MIN: f32 = -15f32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSFXParamEq {
pub fCenter: f32,
pub fBandwidth: f32,
pub fGain: f32,
}
impl DSFXParamEq {}
impl ::std::default::Default for DSFXParamEq {
fn default() -> Self {
Self {
fCenter: 0.0,
fBandwidth: 0.0,
fGain: 0.0,
}
}
}
impl ::std::fmt::Debug for DSFXParamEq {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSFXParamEq")
.field("fCenter", &format_args!("{:?}", self.fCenter))
.field("fBandwidth", &format_args!("{:?}", self.fBandwidth))
.field("fGain", &format_args!("{:?}", self.fGain))
.finish()
}
}
impl ::std::cmp::PartialEq for DSFXParamEq {
fn eq(&self, other: &Self) -> bool {
self.fCenter == other.fCenter
&& self.fBandwidth == other.fBandwidth
&& self.fGain == other.fGain
}
}
impl ::std::cmp::Eq for DSFXParamEq {}
unsafe impl ::windows::Abi for DSFXParamEq {
type Abi = Self;
}
pub const DSFXR_FAILED: i32 = 4i32;
pub const DSFXR_LOCHARDWARE: i32 = 1i32;
pub const DSFXR_LOCSOFTWARE: i32 = 2i32;
pub const DSFXR_PRESENT: i32 = 0i32;
pub const DSFXR_SENDLOOP: i32 = 6i32;
pub const DSFXR_UNALLOCATED: i32 = 3i32;
pub const DSFXR_UNKNOWN: i32 = 5i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DSFXWavesReverb {
pub fInGain: f32,
pub fReverbMix: f32,
pub fReverbTime: f32,
pub fHighFreqRTRatio: f32,
}
impl DSFXWavesReverb {}
impl ::std::default::Default for DSFXWavesReverb {
fn default() -> Self {
Self {
fInGain: 0.0,
fReverbMix: 0.0,
fReverbTime: 0.0,
fHighFreqRTRatio: 0.0,
}
}
}
impl ::std::fmt::Debug for DSFXWavesReverb {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DSFXWavesReverb")
.field("fInGain", &format_args!("{:?}", self.fInGain))
.field("fReverbMix", &format_args!("{:?}", self.fReverbMix))
.field("fReverbTime", &format_args!("{:?}", self.fReverbTime))
.field(
"fHighFreqRTRatio",
&format_args!("{:?}", self.fHighFreqRTRatio),
)
.finish()
}
}
impl ::std::cmp::PartialEq for DSFXWavesReverb {
fn eq(&self, other: &Self) -> bool {
self.fInGain == other.fInGain
&& self.fReverbMix == other.fReverbMix
&& self.fReverbTime == other.fReverbTime
&& self.fHighFreqRTRatio == other.fHighFreqRTRatio
}
}
impl ::std::cmp::Eq for DSFXWavesReverb {}
unsafe impl ::windows::Abi for DSFXWavesReverb {
type Abi = Self;
}
pub const DSFX_I3DL2REVERB_DECAYHFRATIO_DEFAULT: f32 = 0.83f32;
pub const DSFX_I3DL2REVERB_DECAYHFRATIO_MAX: f32 = 2f32;
pub const DSFX_I3DL2REVERB_DECAYHFRATIO_MIN: f32 = 0.1f32;
pub const DSFX_I3DL2REVERB_DECAYTIME_DEFAULT: f32 = 1.49f32;
pub const DSFX_I3DL2REVERB_DECAYTIME_MAX: f32 = 20f32;
pub const DSFX_I3DL2REVERB_DECAYTIME_MIN: f32 = 0.1f32;
pub const DSFX_I3DL2REVERB_DENSITY_DEFAULT: f32 = 100f32;
pub const DSFX_I3DL2REVERB_DENSITY_MAX: f32 = 100f32;
pub const DSFX_I3DL2REVERB_DENSITY_MIN: f32 = 0f32;
pub const DSFX_I3DL2REVERB_DIFFUSION_DEFAULT: f32 = 100f32;
pub const DSFX_I3DL2REVERB_DIFFUSION_MAX: f32 = 100f32;
pub const DSFX_I3DL2REVERB_DIFFUSION_MIN: f32 = 0f32;
pub const DSFX_I3DL2REVERB_HFREFERENCE_DEFAULT: f32 = 5000f32;
pub const DSFX_I3DL2REVERB_HFREFERENCE_MAX: f32 = 20000f32;
pub const DSFX_I3DL2REVERB_HFREFERENCE_MIN: f32 = 20f32;
pub const DSFX_I3DL2REVERB_QUALITY_DEFAULT: u32 = 2u32;
pub const DSFX_I3DL2REVERB_QUALITY_MAX: u32 = 3u32;
pub const DSFX_I3DL2REVERB_QUALITY_MIN: u32 = 0u32;
pub const DSFX_I3DL2REVERB_REFLECTIONSDELAY_DEFAULT: f32 = 0.007f32;
pub const DSFX_I3DL2REVERB_REFLECTIONSDELAY_MAX: f32 = 0.3f32;
pub const DSFX_I3DL2REVERB_REFLECTIONSDELAY_MIN: f32 = 0f32;
pub const DSFX_I3DL2REVERB_REFLECTIONS_DEFAULT: i32 = -2602i32;
pub const DSFX_I3DL2REVERB_REFLECTIONS_MAX: u32 = 1000u32;
pub const DSFX_I3DL2REVERB_REFLECTIONS_MIN: i32 = -10000i32;
pub const DSFX_I3DL2REVERB_REVERBDELAY_DEFAULT: f32 = 0.011f32;
pub const DSFX_I3DL2REVERB_REVERBDELAY_MAX: f32 = 0.1f32;
pub const DSFX_I3DL2REVERB_REVERBDELAY_MIN: f32 = 0f32;
pub const DSFX_I3DL2REVERB_REVERB_DEFAULT: u32 = 200u32;
pub const DSFX_I3DL2REVERB_REVERB_MAX: u32 = 2000u32;
pub const DSFX_I3DL2REVERB_REVERB_MIN: i32 = -10000i32;
pub const DSFX_I3DL2REVERB_ROOMHF_DEFAULT: i32 = -100i32;
pub const DSFX_I3DL2REVERB_ROOMHF_MAX: u32 = 0u32;
pub const DSFX_I3DL2REVERB_ROOMHF_MIN: i32 = -10000i32;
pub const DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_DEFAULT: f32 = 0f32;
pub const DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MAX: f32 = 10f32;
pub const DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MIN: f32 = 0f32;
pub const DSFX_I3DL2REVERB_ROOM_DEFAULT: i32 = -1000i32;
pub const DSFX_I3DL2REVERB_ROOM_MAX: u32 = 0u32;
pub const DSFX_I3DL2REVERB_ROOM_MIN: i32 = -10000i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_ALLEY: i32 = 15i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_ARENA: i32 = 10i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM: i32 = 7i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_BATHROOM: i32 = 4i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY: i32 = 12i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_CAVE: i32 = 9i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_CITY: i32 = 17i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL: i32 = 8i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_DEFAULT: i32 = 0i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_FOREST: i32 = 16i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_GENERIC: i32 = 1i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_HALLWAY: i32 = 13i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_HANGAR: i32 = 11i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_LARGEHALL: i32 = 28i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_LARGEROOM: i32 = 26i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM: i32 = 5i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL: i32 = 27i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM: i32 = 25i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS: i32 = 18i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL: i32 = 2i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT: i32 = 21i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_PLAIN: i32 = 20i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_PLATE: i32 = 29i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_QUARRY: i32 = 19i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_ROOM: i32 = 3i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE: i32 = 22i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_SMALLROOM: i32 = 24i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR: i32 = 14i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_STONEROOM: i32 = 6i32;
pub const DSFX_I3DL2_ENVIRONMENT_PRESET_UNDERWATER: i32 = 23i32;
pub const DSFX_I3DL2_MATERIAL_PRESET_BRICKWALL: i32 = 5i32;
pub const DSFX_I3DL2_MATERIAL_PRESET_CURTAIN: i32 = 7i32;
pub const DSFX_I3DL2_MATERIAL_PRESET_DOUBLEWINDOW: i32 = 1i32;
pub const DSFX_I3DL2_MATERIAL_PRESET_SINGLEWINDOW: i32 = 0i32;
pub const DSFX_I3DL2_MATERIAL_PRESET_STONEWALL: i32 = 6i32;
pub const DSFX_I3DL2_MATERIAL_PRESET_THICKDOOR: i32 = 3i32;
pub const DSFX_I3DL2_MATERIAL_PRESET_THINDOOR: i32 = 2i32;
pub const DSFX_I3DL2_MATERIAL_PRESET_WOODWALL: i32 = 4i32;
pub const DSFX_WAVESREVERB_HIGHFREQRTRATIO_DEFAULT: f32 = 0.001f32;
pub const DSFX_WAVESREVERB_HIGHFREQRTRATIO_MAX: f32 = 0.999f32;
pub const DSFX_WAVESREVERB_HIGHFREQRTRATIO_MIN: f32 = 0.001f32;
pub const DSFX_WAVESREVERB_INGAIN_DEFAULT: f32 = 0f32;
pub const DSFX_WAVESREVERB_INGAIN_MAX: f32 = 0f32;
pub const DSFX_WAVESREVERB_INGAIN_MIN: f32 = -96f32;
pub const DSFX_WAVESREVERB_REVERBMIX_DEFAULT: f32 = 0f32;
pub const DSFX_WAVESREVERB_REVERBMIX_MAX: f32 = 0f32;
pub const DSFX_WAVESREVERB_REVERBMIX_MIN: f32 = -96f32;
pub const DSFX_WAVESREVERB_REVERBTIME_DEFAULT: f32 = 1000f32;
pub const DSFX_WAVESREVERB_REVERBTIME_MAX: f32 = 3000f32;
pub const DSFX_WAVESREVERB_REVERBTIME_MIN: f32 = 0.001f32;
pub const DSSCL_EXCLUSIVE: u32 = 3u32;
pub const DSSCL_NORMAL: u32 = 1u32;
pub const DSSCL_PRIORITY: u32 = 2u32;
pub const DSSCL_WRITEPRIMARY: u32 = 4u32;
pub const DSSPEAKER_5POINT1: u32 = 6u32;
pub const DSSPEAKER_5POINT1_SURROUND: u32 = 9u32;
pub const DSSPEAKER_7POINT1: u32 = 7u32;
pub const DSSPEAKER_7POINT1_SURROUND: u32 = 8u32;
pub const DSSPEAKER_DIRECTOUT: u32 = 0u32;
pub const DSSPEAKER_GEOMETRY_MAX: u32 = 180u32;
pub const DSSPEAKER_GEOMETRY_MIN: u32 = 5u32;
pub const DSSPEAKER_GEOMETRY_NARROW: u32 = 10u32;
pub const DSSPEAKER_GEOMETRY_WIDE: u32 = 20u32;
pub const DSSPEAKER_HEADPHONE: u32 = 1u32;
pub const DSSPEAKER_MONO: u32 = 2u32;
pub const DSSPEAKER_QUAD: u32 = 3u32;
pub const DSSPEAKER_STEREO: u32 = 4u32;
pub const DSSPEAKER_SURROUND: u32 = 5u32;
pub const DS_CERTIFIED: u32 = 0u32;
pub const DS_UNCERTIFIED: u32 = 1u32;
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundCapture(::windows::IUnknown);
impl IDirectSoundCapture {}
unsafe impl ::windows::Interface for IDirectSoundCapture {
type Vtable = IDirectSoundCapture_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2954954625,
35277,
4560,
[175, 8, 0, 160, 201, 37, 205, 22],
);
}
impl IDirectSoundCapture {
pub unsafe fn CreateCaptureBuffer<'a>(
&self,
pcdscbufferdesc: *mut DSCBUFFERDESC,
ppdscbuffer: *mut ::std::option::Option<IDirectSoundCaptureBuffer>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdscbufferdesc),
::std::mem::transmute(ppdscbuffer),
punkouter.into_param().abi(),
)
}
pub unsafe fn GetCaps(&self, pdsccaps: *mut DSCCAPS) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsccaps),
)
}
pub unsafe fn Initialize(
&self,
pcguiddevice: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pcguiddevice),
)
}
}
impl ::std::convert::From<IDirectSoundCapture> for ::windows::IUnknown {
fn from(value: IDirectSoundCapture) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundCapture> for ::windows::IUnknown {
fn from(value: &IDirectSoundCapture) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundCapture {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundCapture {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundCapture_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdscbufferdesc: *mut DSCBUFFERDESC,
ppdscbuffer: *mut ::windows::RawPtr,
punkouter: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsccaps: *mut DSCCAPS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcguiddevice: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
pub unsafe fn DirectSoundCaptureCreate<'a>(
pcguiddevice: *mut ::windows::Guid,
ppdsc: *mut ::std::option::Option<IDirectSoundCapture>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
pub unsafe fn DirectSoundCaptureCreate8<'a>(
pcguiddevice: *mut ::windows::Guid,
ppdsc8: *mut ::std::option::Option<IDirectSoundCapture>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
pub type LPDSENUMCALLBACKA = extern "system" fn(
param0: *mut ::windows::Guid,
param1: super::SystemServices::PSTR,
param2: super::SystemServices::PSTR,
param3: *mut ::std::ffi::c_void,
)
-> super::SystemServices::BOOL;
pub unsafe fn DirectSoundCaptureEnumerateA(
pdsenumcallback: ::std::option::Option<LPDSENUMCALLBACKA>,
pcontext: *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
pub type LPDSENUMCALLBACKW = extern "system" fn(
param0: *mut ::windows::Guid,
param1: super::SystemServices::PWSTR,
param2: super::SystemServices::PWSTR,
param3: *mut ::std::ffi::c_void,
)
-> super::SystemServices::BOOL;
pub unsafe fn DirectSoundCaptureEnumerateW(
pdsenumcallback: ::std::option::Option<LPDSENUMCALLBACKW>,
pcontext: *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSound(::windows::IUnknown);
impl IDirectSound {}
unsafe impl ::windows::Interface for IDirectSound {
type Vtable = IDirectSound_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
664468099,
18817,
4558,
[165, 33, 0, 32, 175, 11, 229, 96],
);
}
impl IDirectSound {
pub unsafe fn CreateSoundBuffer<'a>(
&self,
pcdsbufferdesc: *mut DSBUFFERDESC,
ppdsbuffer: *mut ::std::option::Option<IDirectSoundBuffer>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsbufferdesc),
::std::mem::transmute(ppdsbuffer),
punkouter.into_param().abi(),
)
}
pub unsafe fn GetCaps(&self, pdscaps: *mut DSCAPS) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdscaps),
)
}
pub unsafe fn DuplicateSoundBuffer<'a>(
&self,
pdsbufferoriginal: impl ::windows::IntoParam<'a, IDirectSoundBuffer>,
ppdsbufferduplicate: *mut ::std::option::Option<IDirectSoundBuffer>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
pdsbufferoriginal.into_param().abi(),
::std::mem::transmute(ppdsbufferduplicate),
)
}
pub unsafe fn SetCooperativeLevel<'a>(
&self,
hwnd: impl ::windows::IntoParam<'a, super::WindowsAndMessaging::HWND>,
dwlevel: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
hwnd.into_param().abi(),
::std::mem::transmute(dwlevel),
)
}
pub unsafe fn Compact(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(::windows::Abi::abi(self))
}
pub unsafe fn GetSpeakerConfig(
&self,
pdwspeakerconfig: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwspeakerconfig),
)
}
pub unsafe fn SetSpeakerConfig(&self, dwspeakerconfig: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(dwspeakerconfig),
)
}
pub unsafe fn Initialize(
&self,
pcguiddevice: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(pcguiddevice),
)
}
}
impl ::std::convert::From<IDirectSound> for ::windows::IUnknown {
fn from(value: IDirectSound) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSound> for ::windows::IUnknown {
fn from(value: &IDirectSound) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSound {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSound {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSound_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsbufferdesc: *mut DSBUFFERDESC,
ppdsbuffer: *mut ::windows::RawPtr,
punkouter: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdscaps: *mut DSCAPS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsbufferoriginal: ::windows::RawPtr,
ppdsbufferduplicate: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
hwnd: super::WindowsAndMessaging::HWND,
dwlevel: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwspeakerconfig: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwspeakerconfig: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcguiddevice: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
pub unsafe fn DirectSoundCreate<'a>(
pcguiddevice: *mut ::windows::Guid,
ppds: *mut ::std::option::Option<IDirectSound>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSound8(::windows::IUnknown);
impl IDirectSound8 {}
unsafe impl ::windows::Interface for IDirectSound8 {
type Vtable = IDirectSound8_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3305799315,
62357,
18484,
[158, 246, 127, 169, 157, 229, 9, 102],
);
}
impl IDirectSound8 {
pub unsafe fn CreateSoundBuffer<'a>(
&self,
pcdsbufferdesc: *mut DSBUFFERDESC,
ppdsbuffer: *mut ::std::option::Option<IDirectSoundBuffer>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsbufferdesc),
::std::mem::transmute(ppdsbuffer),
punkouter.into_param().abi(),
)
}
pub unsafe fn GetCaps(&self, pdscaps: *mut DSCAPS) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdscaps),
)
}
pub unsafe fn DuplicateSoundBuffer<'a>(
&self,
pdsbufferoriginal: impl ::windows::IntoParam<'a, IDirectSoundBuffer>,
ppdsbufferduplicate: *mut ::std::option::Option<IDirectSoundBuffer>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
pdsbufferoriginal.into_param().abi(),
::std::mem::transmute(ppdsbufferduplicate),
)
}
pub unsafe fn SetCooperativeLevel<'a>(
&self,
hwnd: impl ::windows::IntoParam<'a, super::WindowsAndMessaging::HWND>,
dwlevel: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
hwnd.into_param().abi(),
::std::mem::transmute(dwlevel),
)
}
pub unsafe fn Compact(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(::windows::Abi::abi(self))
}
pub unsafe fn GetSpeakerConfig(
&self,
pdwspeakerconfig: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwspeakerconfig),
)
}
pub unsafe fn SetSpeakerConfig(&self, dwspeakerconfig: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(dwspeakerconfig),
)
}
pub unsafe fn Initialize(
&self,
pcguiddevice: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(pcguiddevice),
)
}
pub unsafe fn VerifyCertification(
&self,
pdwcertified: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwcertified),
)
}
}
impl ::std::convert::From<IDirectSound8> for ::windows::IUnknown {
fn from(value: IDirectSound8) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSound8> for ::windows::IUnknown {
fn from(value: &IDirectSound8) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSound8 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSound8 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IDirectSound8> for IDirectSound {
fn from(value: IDirectSound8) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSound8> for IDirectSound {
fn from(value: &IDirectSound8) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IDirectSound> for IDirectSound8 {
fn into_param(self) -> ::windows::Param<'a, IDirectSound> {
::windows::Param::Owned(::std::convert::Into::<IDirectSound>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IDirectSound> for &'a IDirectSound8 {
fn into_param(self) -> ::windows::Param<'a, IDirectSound> {
::windows::Param::Owned(::std::convert::Into::<IDirectSound>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSound8_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsbufferdesc: *mut DSBUFFERDESC,
ppdsbuffer: *mut ::windows::RawPtr,
punkouter: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdscaps: *mut DSCAPS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsbufferoriginal: ::windows::RawPtr,
ppdsbufferduplicate: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
hwnd: super::WindowsAndMessaging::HWND,
dwlevel: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwspeakerconfig: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwspeakerconfig: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcguiddevice: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwcertified: *mut u32,
) -> ::windows::HRESULT,
);
pub unsafe fn DirectSoundCreate8<'a>(
pcguiddevice: *mut ::windows::Guid,
ppds8: *mut ::std::option::Option<IDirectSound8>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
pub unsafe fn DirectSoundEnumerateA(
pdsenumcallback: ::std::option::Option<LPDSENUMCALLBACKA>,
pcontext: *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
pub unsafe fn DirectSoundEnumerateW(
pdsenumcallback: ::std::option::Option<LPDSENUMCALLBACKW>,
pcontext: *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundFullDuplex(::windows::IUnknown);
impl IDirectSoundFullDuplex {}
unsafe impl ::windows::Interface for IDirectSoundFullDuplex {
type Vtable = IDirectSoundFullDuplex_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3989523578,
55979,
16918,
[164, 46, 108, 80, 89, 109, 220, 29],
);
}
impl IDirectSoundFullDuplex {
pub unsafe fn Initialize<'a>(
&self,
pcaptureguid: *mut ::windows::Guid,
prenderguid: *mut ::windows::Guid,
lpdscbufferdesc: *mut DSCBUFFERDESC,
lpdsbufferdesc: *mut DSBUFFERDESC,
hwnd: impl ::windows::IntoParam<'a, super::WindowsAndMessaging::HWND>,
dwlevel: u32,
lplpdirectsoundcapturebuffer8: *mut ::std::option::Option<
IDirectSoundCaptureBuffer8,
>,
lplpdirectsoundbuffer8: *mut ::std::option::Option<IDirectSoundBuffer8>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcaptureguid),
::std::mem::transmute(prenderguid),
::std::mem::transmute(lpdscbufferdesc),
::std::mem::transmute(lpdsbufferdesc),
hwnd.into_param().abi(),
::std::mem::transmute(dwlevel),
::std::mem::transmute(lplpdirectsoundcapturebuffer8),
::std::mem::transmute(lplpdirectsoundbuffer8),
)
}
}
impl ::std::convert::From<IDirectSoundFullDuplex> for ::windows::IUnknown {
fn from(value: IDirectSoundFullDuplex) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundFullDuplex> for ::windows::IUnknown {
fn from(value: &IDirectSoundFullDuplex) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundFullDuplex {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundFullDuplex {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundFullDuplex_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcaptureguid: *mut ::windows::Guid,
prenderguid: *mut ::windows::Guid,
lpdscbufferdesc: *mut DSCBUFFERDESC,
lpdsbufferdesc: *mut DSBUFFERDESC,
hwnd: super::WindowsAndMessaging::HWND,
dwlevel: u32,
lplpdirectsoundcapturebuffer8: *mut ::windows::RawPtr,
lplpdirectsoundbuffer8: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundCaptureBuffer(::windows::IUnknown);
impl IDirectSoundCaptureBuffer {}
unsafe impl ::windows::Interface for IDirectSoundCaptureBuffer {
type Vtable = IDirectSoundCaptureBuffer_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2954954626,
35277,
4560,
[175, 8, 0, 160, 201, 37, 205, 22],
);
}
impl IDirectSoundCaptureBuffer {
pub unsafe fn GetCaps(&self, pdscbcaps: *mut DSCBCAPS) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pdscbcaps),
)
}
pub unsafe fn GetCurrentPosition(
&self,
pdwcaptureposition: *mut u32,
pdwreadposition: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwcaptureposition),
::std::mem::transmute(pdwreadposition),
)
}
pub unsafe fn GetFormat(
&self,
pwfxformat: *mut super::Multimedia::WAVEFORMATEX,
dwsizeallocated: u32,
pdwsizewritten: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pwfxformat),
::std::mem::transmute(dwsizeallocated),
::std::mem::transmute(pdwsizewritten),
)
}
pub unsafe fn GetStatus(&self, pdwstatus: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwstatus),
)
}
pub unsafe fn Initialize<'a>(
&self,
pdirectsoundcapture: impl ::windows::IntoParam<'a, IDirectSoundCapture>,
pcdscbufferdesc: *mut DSCBUFFERDESC,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
pdirectsoundcapture.into_param().abi(),
::std::mem::transmute(pcdscbufferdesc),
)
}
pub unsafe fn Lock(
&self,
dwoffset: u32,
dwbytes: u32,
ppvaudioptr1: *mut *mut ::std::ffi::c_void,
pdwaudiobytes1: *mut u32,
ppvaudioptr2: *mut *mut ::std::ffi::c_void,
pdwaudiobytes2: *mut u32,
dwflags: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(dwoffset),
::std::mem::transmute(dwbytes),
::std::mem::transmute(ppvaudioptr1),
::std::mem::transmute(pdwaudiobytes1),
::std::mem::transmute(ppvaudioptr2),
::std::mem::transmute(pdwaudiobytes2),
::std::mem::transmute(dwflags),
)
}
pub unsafe fn Start(&self, dwflags: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(dwflags),
)
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(::windows::Abi::abi(self))
}
pub unsafe fn Unlock(
&self,
pvaudioptr1: *mut ::std::ffi::c_void,
dwaudiobytes1: u32,
pvaudioptr2: *mut ::std::ffi::c_void,
dwaudiobytes2: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(pvaudioptr1),
::std::mem::transmute(dwaudiobytes1),
::std::mem::transmute(pvaudioptr2),
::std::mem::transmute(dwaudiobytes2),
)
}
}
impl ::std::convert::From<IDirectSoundCaptureBuffer> for ::windows::IUnknown {
fn from(value: IDirectSoundCaptureBuffer) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundCaptureBuffer> for ::windows::IUnknown {
fn from(value: &IDirectSoundCaptureBuffer) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundCaptureBuffer {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundCaptureBuffer {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundCaptureBuffer_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdscbcaps: *mut DSCBCAPS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwcaptureposition: *mut u32,
pdwreadposition: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwfxformat: *mut super::Multimedia::WAVEFORMATEX,
dwsizeallocated: u32,
pdwsizewritten: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwstatus: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdirectsoundcapture: ::windows::RawPtr,
pcdscbufferdesc: *mut DSCBUFFERDESC,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwoffset: u32,
dwbytes: u32,
ppvaudioptr1: *mut *mut ::std::ffi::c_void,
pdwaudiobytes1: *mut u32,
ppvaudioptr2: *mut *mut ::std::ffi::c_void,
pdwaudiobytes2: *mut u32,
dwflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvaudioptr1: *mut ::std::ffi::c_void,
dwaudiobytes1: u32,
pvaudioptr2: *mut ::std::ffi::c_void,
dwaudiobytes2: u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundCaptureBuffer8(::windows::IUnknown);
impl IDirectSoundCaptureBuffer8 {}
unsafe impl ::windows::Interface for IDirectSoundCaptureBuffer8 {
type Vtable = IDirectSoundCaptureBuffer8_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
10030580,
3515,
18546,
[131, 62, 109, 48, 62, 128, 174, 182],
);
}
impl IDirectSoundCaptureBuffer8 {
pub unsafe fn GetCaps(&self, pdscbcaps: *mut DSCBCAPS) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pdscbcaps),
)
}
pub unsafe fn GetCurrentPosition(
&self,
pdwcaptureposition: *mut u32,
pdwreadposition: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwcaptureposition),
::std::mem::transmute(pdwreadposition),
)
}
pub unsafe fn GetFormat(
&self,
pwfxformat: *mut super::Multimedia::WAVEFORMATEX,
dwsizeallocated: u32,
pdwsizewritten: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pwfxformat),
::std::mem::transmute(dwsizeallocated),
::std::mem::transmute(pdwsizewritten),
)
}
pub unsafe fn GetStatus(&self, pdwstatus: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwstatus),
)
}
pub unsafe fn Initialize<'a>(
&self,
pdirectsoundcapture: impl ::windows::IntoParam<'a, IDirectSoundCapture>,
pcdscbufferdesc: *mut DSCBUFFERDESC,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
pdirectsoundcapture.into_param().abi(),
::std::mem::transmute(pcdscbufferdesc),
)
}
pub unsafe fn Lock(
&self,
dwoffset: u32,
dwbytes: u32,
ppvaudioptr1: *mut *mut ::std::ffi::c_void,
pdwaudiobytes1: *mut u32,
ppvaudioptr2: *mut *mut ::std::ffi::c_void,
pdwaudiobytes2: *mut u32,
dwflags: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(dwoffset),
::std::mem::transmute(dwbytes),
::std::mem::transmute(ppvaudioptr1),
::std::mem::transmute(pdwaudiobytes1),
::std::mem::transmute(ppvaudioptr2),
::std::mem::transmute(pdwaudiobytes2),
::std::mem::transmute(dwflags),
)
}
pub unsafe fn Start(&self, dwflags: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(dwflags),
)
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(::windows::Abi::abi(self))
}
pub unsafe fn Unlock(
&self,
pvaudioptr1: *mut ::std::ffi::c_void,
dwaudiobytes1: u32,
pvaudioptr2: *mut ::std::ffi::c_void,
dwaudiobytes2: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(pvaudioptr1),
::std::mem::transmute(dwaudiobytes1),
::std::mem::transmute(pvaudioptr2),
::std::mem::transmute(dwaudiobytes2),
)
}
pub unsafe fn GetObjectInPath(
&self,
rguidobject: *const ::windows::Guid,
dwindex: u32,
rguidinterface: *const ::windows::Guid,
ppobject: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(rguidobject),
::std::mem::transmute(dwindex),
::std::mem::transmute(rguidinterface),
::std::mem::transmute(ppobject),
)
}
pub unsafe fn GetFXStatus(
&self,
dweffectscount: u32,
pdwfxstatus: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(dweffectscount),
::std::mem::transmute(pdwfxstatus),
)
}
}
impl ::std::convert::From<IDirectSoundCaptureBuffer8> for ::windows::IUnknown {
fn from(value: IDirectSoundCaptureBuffer8) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundCaptureBuffer8> for ::windows::IUnknown {
fn from(value: &IDirectSoundCaptureBuffer8) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundCaptureBuffer8 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundCaptureBuffer8 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IDirectSoundCaptureBuffer8> for IDirectSoundCaptureBuffer {
fn from(value: IDirectSoundCaptureBuffer8) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundCaptureBuffer8> for IDirectSoundCaptureBuffer {
fn from(value: &IDirectSoundCaptureBuffer8) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IDirectSoundCaptureBuffer> for IDirectSoundCaptureBuffer8 {
fn into_param(self) -> ::windows::Param<'a, IDirectSoundCaptureBuffer> {
::windows::Param::Owned(
::std::convert::Into::<IDirectSoundCaptureBuffer>::into(self),
)
}
}
impl<'a> ::windows::IntoParam<'a, IDirectSoundCaptureBuffer> for &'a IDirectSoundCaptureBuffer8 {
fn into_param(self) -> ::windows::Param<'a, IDirectSoundCaptureBuffer> {
::windows::Param::Owned(
::std::convert::Into::<IDirectSoundCaptureBuffer>::into(
::std::clone::Clone::clone(self),
),
)
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundCaptureBuffer8_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdscbcaps: *mut DSCBCAPS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwcaptureposition: *mut u32,
pdwreadposition: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwfxformat: *mut super::Multimedia::WAVEFORMATEX,
dwsizeallocated: u32,
pdwsizewritten: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwstatus: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdirectsoundcapture: ::windows::RawPtr,
pcdscbufferdesc: *mut DSCBUFFERDESC,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwoffset: u32,
dwbytes: u32,
ppvaudioptr1: *mut *mut ::std::ffi::c_void,
pdwaudiobytes1: *mut u32,
ppvaudioptr2: *mut *mut ::std::ffi::c_void,
pdwaudiobytes2: *mut u32,
dwflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvaudioptr1: *mut ::std::ffi::c_void,
dwaudiobytes1: u32,
pvaudioptr2: *mut ::std::ffi::c_void,
dwaudiobytes2: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
rguidobject: *const ::windows::Guid,
dwindex: u32,
rguidinterface: *const ::windows::Guid,
ppobject: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dweffectscount: u32,
pdwfxstatus: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundBuffer(::windows::IUnknown);
impl IDirectSoundBuffer {}
unsafe impl ::windows::Interface for IDirectSoundBuffer {
type Vtable = IDirectSoundBuffer_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
664468101,
18817,
4558,
[165, 33, 0, 32, 175, 11, 229, 96],
);
}
impl IDirectSoundBuffer {
pub unsafe fn GetCaps(&self, pdsbuffercaps: *mut DSBCAPS) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsbuffercaps),
)
}
pub unsafe fn GetCurrentPosition(
&self,
pdwcurrentplaycursor: *mut u32,
pdwcurrentwritecursor: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwcurrentplaycursor),
::std::mem::transmute(pdwcurrentwritecursor),
)
}
pub unsafe fn GetFormat(
&self,
pwfxformat: *mut super::Multimedia::WAVEFORMATEX,
dwsizeallocated: u32,
pdwsizewritten: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pwfxformat),
::std::mem::transmute(dwsizeallocated),
::std::mem::transmute(pdwsizewritten),
)
}
pub unsafe fn GetVolume(&self, plvolume: *mut i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(plvolume),
)
}
pub unsafe fn GetPan(&self, plpan: *mut i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(plpan),
)
}
pub unsafe fn GetFrequency(&self, pdwfrequency: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwfrequency),
)
}
pub unsafe fn GetStatus(&self, pdwstatus: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwstatus),
)
}
pub unsafe fn Initialize<'a>(
&self,
pdirectsound: impl ::windows::IntoParam<'a, IDirectSound>,
pcdsbufferdesc: *mut DSBUFFERDESC,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
pdirectsound.into_param().abi(),
::std::mem::transmute(pcdsbufferdesc),
)
}
pub unsafe fn Lock(
&self,
dwoffset: u32,
dwbytes: u32,
ppvaudioptr1: *mut *mut ::std::ffi::c_void,
pdwaudiobytes1: *mut u32,
ppvaudioptr2: *mut *mut ::std::ffi::c_void,
pdwaudiobytes2: *mut u32,
dwflags: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(dwoffset),
::std::mem::transmute(dwbytes),
::std::mem::transmute(ppvaudioptr1),
::std::mem::transmute(pdwaudiobytes1),
::std::mem::transmute(ppvaudioptr2),
::std::mem::transmute(pdwaudiobytes2),
::std::mem::transmute(dwflags),
)
}
pub unsafe fn Play(
&self,
dwreserved1: u32,
dwpriority: u32,
dwflags: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(dwreserved1),
::std::mem::transmute(dwpriority),
::std::mem::transmute(dwflags),
)
}
pub unsafe fn SetCurrentPosition(&self, dwnewposition: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(dwnewposition),
)
}
pub unsafe fn SetFormat(
&self,
pcfxformat: *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(pcfxformat),
)
}
pub unsafe fn SetVolume(&self, lvolume: i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(lvolume),
)
}
pub unsafe fn SetPan(&self, lpan: i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(lpan),
)
}
pub unsafe fn SetFrequency(&self, dwfrequency: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(
::windows::Abi::abi(self),
::std::mem::transmute(dwfrequency),
)
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).18)(::windows::Abi::abi(self))
}
pub unsafe fn Unlock(
&self,
pvaudioptr1: *mut ::std::ffi::c_void,
dwaudiobytes1: u32,
pvaudioptr2: *mut ::std::ffi::c_void,
dwaudiobytes2: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).19)(
::windows::Abi::abi(self),
::std::mem::transmute(pvaudioptr1),
::std::mem::transmute(dwaudiobytes1),
::std::mem::transmute(pvaudioptr2),
::std::mem::transmute(dwaudiobytes2),
)
}
pub unsafe fn Restore(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).20)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<IDirectSoundBuffer> for ::windows::IUnknown {
fn from(value: IDirectSoundBuffer) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundBuffer> for ::windows::IUnknown {
fn from(value: &IDirectSoundBuffer) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundBuffer {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundBuffer {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundBuffer_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsbuffercaps: *mut DSBCAPS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwcurrentplaycursor: *mut u32,
pdwcurrentwritecursor: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwfxformat: *mut super::Multimedia::WAVEFORMATEX,
dwsizeallocated: u32,
pdwsizewritten: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
plvolume: *mut i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
plpan: *mut i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwfrequency: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwstatus: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdirectsound: ::windows::RawPtr,
pcdsbufferdesc: *mut DSBUFFERDESC,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwoffset: u32,
dwbytes: u32,
ppvaudioptr1: *mut *mut ::std::ffi::c_void,
pdwaudiobytes1: *mut u32,
ppvaudioptr2: *mut *mut ::std::ffi::c_void,
pdwaudiobytes2: *mut u32,
dwflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwreserved1: u32,
dwpriority: u32,
dwflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwnewposition: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcfxformat: *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
lvolume: i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
lpan: i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwfrequency: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvaudioptr1: *mut ::std::ffi::c_void,
dwaudiobytes1: u32,
pvaudioptr2: *mut ::std::ffi::c_void,
dwaudiobytes2: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundBuffer8(::windows::IUnknown);
impl IDirectSoundBuffer8 {}
unsafe impl ::windows::Interface for IDirectSoundBuffer8 {
type Vtable = IDirectSoundBuffer8_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1747297353,
29988,
19842,
[146, 15, 80, 227, 106, 179, 171, 30],
);
}
impl IDirectSoundBuffer8 {
pub unsafe fn GetCaps(&self, pdsbuffercaps: *mut DSBCAPS) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsbuffercaps),
)
}
pub unsafe fn GetCurrentPosition(
&self,
pdwcurrentplaycursor: *mut u32,
pdwcurrentwritecursor: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwcurrentplaycursor),
::std::mem::transmute(pdwcurrentwritecursor),
)
}
pub unsafe fn GetFormat(
&self,
pwfxformat: *mut super::Multimedia::WAVEFORMATEX,
dwsizeallocated: u32,
pdwsizewritten: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pwfxformat),
::std::mem::transmute(dwsizeallocated),
::std::mem::transmute(pdwsizewritten),
)
}
pub unsafe fn GetVolume(&self, plvolume: *mut i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(plvolume),
)
}
pub unsafe fn GetPan(&self, plpan: *mut i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(plpan),
)
}
pub unsafe fn GetFrequency(&self, pdwfrequency: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwfrequency),
)
}
pub unsafe fn GetStatus(&self, pdwstatus: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwstatus),
)
}
pub unsafe fn Initialize<'a>(
&self,
pdirectsound: impl ::windows::IntoParam<'a, IDirectSound>,
pcdsbufferdesc: *mut DSBUFFERDESC,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
pdirectsound.into_param().abi(),
::std::mem::transmute(pcdsbufferdesc),
)
}
pub unsafe fn Lock(
&self,
dwoffset: u32,
dwbytes: u32,
ppvaudioptr1: *mut *mut ::std::ffi::c_void,
pdwaudiobytes1: *mut u32,
ppvaudioptr2: *mut *mut ::std::ffi::c_void,
pdwaudiobytes2: *mut u32,
dwflags: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(dwoffset),
::std::mem::transmute(dwbytes),
::std::mem::transmute(ppvaudioptr1),
::std::mem::transmute(pdwaudiobytes1),
::std::mem::transmute(ppvaudioptr2),
::std::mem::transmute(pdwaudiobytes2),
::std::mem::transmute(dwflags),
)
}
pub unsafe fn Play(
&self,
dwreserved1: u32,
dwpriority: u32,
dwflags: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(dwreserved1),
::std::mem::transmute(dwpriority),
::std::mem::transmute(dwflags),
)
}
pub unsafe fn SetCurrentPosition(&self, dwnewposition: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(dwnewposition),
)
}
pub unsafe fn SetFormat(
&self,
pcfxformat: *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(pcfxformat),
)
}
pub unsafe fn SetVolume(&self, lvolume: i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(lvolume),
)
}
pub unsafe fn SetPan(&self, lpan: i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(lpan),
)
}
pub unsafe fn SetFrequency(&self, dwfrequency: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(
::windows::Abi::abi(self),
::std::mem::transmute(dwfrequency),
)
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).18)(::windows::Abi::abi(self))
}
pub unsafe fn Unlock(
&self,
pvaudioptr1: *mut ::std::ffi::c_void,
dwaudiobytes1: u32,
pvaudioptr2: *mut ::std::ffi::c_void,
dwaudiobytes2: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).19)(
::windows::Abi::abi(self),
::std::mem::transmute(pvaudioptr1),
::std::mem::transmute(dwaudiobytes1),
::std::mem::transmute(pvaudioptr2),
::std::mem::transmute(dwaudiobytes2),
)
}
pub unsafe fn Restore(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).20)(::windows::Abi::abi(self))
}
pub unsafe fn SetFX(
&self,
dweffectscount: u32,
pdsfxdesc: *mut DSEFFECTDESC,
pdwresultcodes: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).21)(
::windows::Abi::abi(self),
::std::mem::transmute(dweffectscount),
::std::mem::transmute(pdsfxdesc),
::std::mem::transmute(pdwresultcodes),
)
}
pub unsafe fn AcquireResources(
&self,
dwflags: u32,
dweffectscount: u32,
pdwresultcodes: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).22)(
::windows::Abi::abi(self),
::std::mem::transmute(dwflags),
::std::mem::transmute(dweffectscount),
::std::mem::transmute(pdwresultcodes),
)
}
pub unsafe fn GetObjectInPath(
&self,
rguidobject: *const ::windows::Guid,
dwindex: u32,
rguidinterface: *const ::windows::Guid,
ppobject: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).23)(
::windows::Abi::abi(self),
::std::mem::transmute(rguidobject),
::std::mem::transmute(dwindex),
::std::mem::transmute(rguidinterface),
::std::mem::transmute(ppobject),
)
}
}
impl ::std::convert::From<IDirectSoundBuffer8> for ::windows::IUnknown {
fn from(value: IDirectSoundBuffer8) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundBuffer8> for ::windows::IUnknown {
fn from(value: &IDirectSoundBuffer8) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundBuffer8 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundBuffer8 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IDirectSoundBuffer8> for IDirectSoundBuffer {
fn from(value: IDirectSoundBuffer8) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundBuffer8> for IDirectSoundBuffer {
fn from(value: &IDirectSoundBuffer8) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IDirectSoundBuffer> for IDirectSoundBuffer8 {
fn into_param(self) -> ::windows::Param<'a, IDirectSoundBuffer> {
::windows::Param::Owned(::std::convert::Into::<IDirectSoundBuffer>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IDirectSoundBuffer> for &'a IDirectSoundBuffer8 {
fn into_param(self) -> ::windows::Param<'a, IDirectSoundBuffer> {
::windows::Param::Owned(::std::convert::Into::<IDirectSoundBuffer>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundBuffer8_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsbuffercaps: *mut DSBCAPS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwcurrentplaycursor: *mut u32,
pdwcurrentwritecursor: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwfxformat: *mut super::Multimedia::WAVEFORMATEX,
dwsizeallocated: u32,
pdwsizewritten: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
plvolume: *mut i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
plpan: *mut i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwfrequency: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwstatus: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdirectsound: ::windows::RawPtr,
pcdsbufferdesc: *mut DSBUFFERDESC,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwoffset: u32,
dwbytes: u32,
ppvaudioptr1: *mut *mut ::std::ffi::c_void,
pdwaudiobytes1: *mut u32,
ppvaudioptr2: *mut *mut ::std::ffi::c_void,
pdwaudiobytes2: *mut u32,
dwflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwreserved1: u32,
dwpriority: u32,
dwflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwnewposition: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcfxformat: *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
lvolume: i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
lpan: i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwfrequency: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvaudioptr1: *mut ::std::ffi::c_void,
dwaudiobytes1: u32,
pvaudioptr2: *mut ::std::ffi::c_void,
dwaudiobytes2: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dweffectscount: u32,
pdsfxdesc: *mut DSEFFECTDESC,
pdwresultcodes: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwflags: u32,
dweffectscount: u32,
pdwresultcodes: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
rguidobject: *const ::windows::Guid,
dwindex: u32,
rguidinterface: *const ::windows::Guid,
ppobject: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
);
pub unsafe fn DirectSoundFullDuplexCreate<'a>(
pcguidcapturedevice: *mut ::windows::Guid,
pcguidrenderdevice: *mut ::windows::Guid,
pcdscbufferdesc: *mut DSCBUFFERDESC,
pcdsbufferdesc: *mut DSBUFFERDESC,
hwnd: impl ::windows::IntoParam<'a, super::WindowsAndMessaging::HWND>,
dwlevel: u32,
ppdsfd: *mut ::std::option::Option<IDirectSoundFullDuplex>,
ppdscbuffer8: *mut ::std::option::Option<IDirectSoundCaptureBuffer8>,
ppdsbuffer8: *mut ::std::option::Option<IDirectSoundBuffer8>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct EAudioConstriction(pub i32);
impl EAudioConstriction {
pub const eAudioConstrictionOff: Self = Self(0i32);
pub const eAudioConstriction48_16: Self = Self(1i32);
pub const eAudioConstriction44_16: Self = Self(2i32);
pub const eAudioConstriction14_14: Self = Self(3i32);
pub const eAudioConstrictionMute: Self = Self(4i32);
}
impl ::std::convert::From<i32> for EAudioConstriction {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for EAudioConstriction {
type Abi = Self;
}
pub type FNAPONOTIFICATIONCALLBACK = extern "system" fn(
pproperties: *mut APO_REG_PROPERTIES,
pvrefdata: *mut ::std::ffi::c_void,
)
-> ::windows::HRESULT;
pub const F_INSTRUMENT_DRUMS: u32 = 2147483648u32;
pub const F_RGN_OPTION_SELFNONEXCLUSIVE: u32 = 1u32;
pub const F_WAVELINK_PHASE_MASTER: u32 = 1u32;
pub const F_WSMP_NO_COMPRESSION: i32 = 2i32;
pub const F_WSMP_NO_TRUNCATION: i32 = 1i32;
pub const GUID_All_Objects: ::windows::Guid = ::windows::Guid::from_values(
2853260773,
49762,
16745,
[161, 200, 35, 214, 152, 204, 115, 181],
);
pub const GUID_DMUS_PROP_DLS1: ::windows::Guid = ::windows::Guid::from_values(
395259687,
50020,
4561,
[167, 96, 0, 0, 248, 117, 172, 18],
);
pub const GUID_DMUS_PROP_DLS2: ::windows::Guid = ::windows::Guid::from_values(
4047870437,
18057,
4562,
[175, 166, 0, 170, 0, 36, 216, 182],
);
pub const GUID_DMUS_PROP_Effects: ::windows::Guid = ::windows::Guid::from_values(
3450394129,
26698,
4562,
[135, 30, 0, 96, 8, 147, 177, 189],
);
pub const GUID_DMUS_PROP_GM_Hardware: ::windows::Guid = ::windows::Guid::from_values(
395259684,
50020,
4561,
[167, 96, 0, 0, 248, 117, 172, 18],
);
pub const GUID_DMUS_PROP_GS_Capable: ::windows::Guid = ::windows::Guid::from_values(
1687595938,
25008,
4562,
[175, 166, 0, 170, 0, 36, 216, 182],
);
pub const GUID_DMUS_PROP_GS_Hardware: ::windows::Guid = ::windows::Guid::from_values(
395259685,
50020,
4561,
[167, 96, 0, 0, 248, 117, 172, 18],
);
pub const GUID_DMUS_PROP_INSTRUMENT2: ::windows::Guid = ::windows::Guid::from_values(
2254426994,
40807,
4562,
[135, 42, 0, 96, 8, 147, 177, 189],
);
pub const GUID_DMUS_PROP_LegacyCaps: ::windows::Guid = ::windows::Guid::from_values(
3483880898,
161,
4562,
[170, 213, 0, 0, 248, 117, 172, 18],
);
pub const GUID_DMUS_PROP_MemorySize: ::windows::Guid = ::windows::Guid::from_values(
395259688,
50020,
4561,
[167, 96, 0, 0, 248, 117, 172, 18],
);
pub const GUID_DMUS_PROP_SampleMemorySize: ::windows::Guid =
::windows::Guid::from_values(
395259688,
50020,
4561,
[167, 96, 0, 0, 248, 117, 172, 18],
);
pub const GUID_DMUS_PROP_SamplePlaybackRate: ::windows::Guid =
::windows::Guid::from_values(
714209043,
42175,
4562,
[187, 223, 0, 96, 8, 51, 219, 216],
);
pub const GUID_DMUS_PROP_SetSynthSink: ::windows::Guid = ::windows::Guid::from_values(
171596709,
14262,
4562,
[185, 249, 0, 0, 248, 117, 172, 18],
);
pub const GUID_DMUS_PROP_SinkUsesDSound: ::windows::Guid = ::windows::Guid::from_values(
3189803095,
35154,
4562,
[186, 28, 0, 0, 248, 117, 172, 18],
);
pub const GUID_DMUS_PROP_SynthSink_DSOUND: ::windows::Guid =
::windows::Guid::from_values(
178878532,
51319,
4561,
[135, 12, 0, 96, 8, 147, 177, 189],
);
pub const GUID_DMUS_PROP_SynthSink_WAVE: ::windows::Guid = ::windows::Guid::from_values(
178878533,
51319,
4561,
[135, 12, 0, 96, 8, 147, 177, 189],
);
pub const GUID_DMUS_PROP_Volume: ::windows::Guid = ::windows::Guid::from_values(
4276071973,
58478,
4561,
[170, 206, 0, 0, 248, 117, 172, 18],
);
pub const GUID_DMUS_PROP_WavesReverb: ::windows::Guid = ::windows::Guid::from_values(
80434722,
13029,
4562,
[175, 166, 0, 170, 0, 36, 216, 182],
);
pub const GUID_DMUS_PROP_WriteLatency: ::windows::Guid = ::windows::Guid::from_values(
646582176,
24818,
4562,
[175, 166, 0, 170, 0, 36, 216, 182],
);
pub const GUID_DMUS_PROP_WritePeriod: ::windows::Guid = ::windows::Guid::from_values(
646582177,
24818,
4562,
[175, 166, 0, 170, 0, 36, 216, 182],
);
pub const GUID_DMUS_PROP_XG_Capable: ::windows::Guid = ::windows::Guid::from_values(
1687595937,
25008,
4562,
[175, 166, 0, 170, 0, 36, 216, 182],
);
pub const GUID_DMUS_PROP_XG_Hardware: ::windows::Guid = ::windows::Guid::from_values(
395259686,
50020,
4561,
[167, 96, 0, 0, 248, 117, 172, 18],
);
pub const GUID_DSCFX_CLASS_AEC: ::windows::Guid = ::windows::Guid::from_values(
3214294400,
50521,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const GUID_DSCFX_CLASS_NS: ::windows::Guid = ::windows::Guid::from_values(
3766456383,
25341,
20064,
[140, 221, 222, 167, 35, 102, 101, 181],
);
pub const GUID_DSCFX_MS_AEC: ::windows::Guid = ::windows::Guid::from_values(
3454777625,
14234,
18570,
[135, 101, 245, 60, 253, 54, 222, 64],
);
pub const GUID_DSCFX_MS_NS: ::windows::Guid = ::windows::Guid::from_values(
298174267,
26345,
19361,
[160, 186, 232, 20, 198, 238, 217, 45],
);
pub const GUID_DSCFX_SYSTEM_AEC: ::windows::Guid = ::windows::Guid::from_values(
472040813,
39033,
20315,
[163, 137, 39, 153, 109, 220, 40, 16],
);
pub const GUID_DSCFX_SYSTEM_NS: ::windows::Guid = ::windows::Guid::from_values(
1521518638,
29300,
17686,
[135, 125, 78, 238, 153, 186, 79, 208],
);
pub const GUID_DSFX_STANDARD_CHORUS: ::windows::Guid = ::windows::Guid::from_values(
4024853148,
33271,
17025,
[189, 145, 201, 214, 4, 169, 90, 246],
);
pub const GUID_DSFX_STANDARD_COMPRESSOR: ::windows::Guid = ::windows::Guid::from_values(
4009828217,
16384,
16493,
[135, 175, 191, 251, 63, 195, 157, 87],
);
pub const GUID_DSFX_STANDARD_DISTORTION: ::windows::Guid = ::windows::Guid::from_values(
4010888336,
52509,
18510,
[150, 229, 9, 207, 175, 145, 42, 33],
);
pub const GUID_DSFX_STANDARD_ECHO: ::windows::Guid = ::windows::Guid::from_values(
4013855532,
54283,
20305,
[140, 207, 63, 152, 241, 178, 157, 93],
);
pub const GUID_DSFX_STANDARD_FLANGER: ::windows::Guid = ::windows::Guid::from_values(
4023008658,
57304,
18034,
[166, 3, 116, 32, 137, 75, 173, 152],
);
pub const GUID_DSFX_STANDARD_GARGLE: ::windows::Guid = ::windows::Guid::from_values(
3674046992,
22289,
19345,
[159, 227, 247, 91, 122, 226, 121, 191],
);
pub const GUID_DSFX_STANDARD_I3DL2REVERB: ::windows::Guid =
::windows::Guid::from_values(
4019740273,
54727,
17108,
[186, 77, 45, 7, 62, 46, 150, 244],
);
pub const GUID_DSFX_STANDARD_PARAMEQ: ::windows::Guid = ::windows::Guid::from_values(
302837129,
15348,
16755,
[161, 50, 60, 180, 6, 207, 50, 49],
);
pub const GUID_DSFX_WAVES_REVERB: ::windows::Guid = ::windows::Guid::from_values(
2281439848,
39509,
17248,
[149, 170, 0, 74, 29, 157, 226, 108],
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioDeviceModulesClient(::windows::IUnknown);
impl IAudioDeviceModulesClient {}
unsafe impl ::windows::Interface for IAudioDeviceModulesClient {
type Vtable = IAudioDeviceModulesClient_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2566094252,
53430,
18933,
[137, 106, 170, 77, 22, 154, 76, 72],
);
}
impl IAudioDeviceModulesClient {
pub unsafe fn SetAudioDeviceModulesManager<'a>(
&self,
paudiodevicemodulesmanager: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
paudiodevicemodulesmanager.into_param().abi(),
)
}
}
impl ::std::convert::From<IAudioDeviceModulesClient> for ::windows::IUnknown {
fn from(value: IAudioDeviceModulesClient) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioDeviceModulesClient> for ::windows::IUnknown {
fn from(value: &IAudioDeviceModulesClient) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioDeviceModulesClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioDeviceModulesClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioDeviceModulesClient_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
paudiodevicemodulesmanager: ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioProcessingObject(::windows::IUnknown);
impl IAudioProcessingObject {}
unsafe impl ::windows::Interface for IAudioProcessingObject {
type Vtable = IAudioProcessingObject_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
4252969769,
9424,
19292,
[177, 119, 89, 44, 57, 249, 202, 16],
);
}
impl IAudioProcessingObject {
pub unsafe fn Reset(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(::windows::Abi::abi(self))
}
pub unsafe fn GetLatency(&self, ptime: *mut i64) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(ptime),
)
}
pub unsafe fn GetRegistrationProperties(
&self,
ppregprops: *mut *mut APO_REG_PROPERTIES,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(ppregprops),
)
}
pub unsafe fn Initialize(
&self,
cbdatasize: u32,
pbydata: *mut u8,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(cbdatasize),
::std::mem::transmute(pbydata),
)
}
pub unsafe fn IsInputFormatSupported<'a>(
&self,
poppositeformat: impl ::windows::IntoParam<'a, IAudioMediaType>,
prequestedinputformat: impl ::windows::IntoParam<'a, IAudioMediaType>,
ppsupportedinputformat: *mut ::std::option::Option<IAudioMediaType>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
poppositeformat.into_param().abi(),
prequestedinputformat.into_param().abi(),
::std::mem::transmute(ppsupportedinputformat),
)
}
pub unsafe fn IsOutputFormatSupported<'a>(
&self,
poppositeformat: impl ::windows::IntoParam<'a, IAudioMediaType>,
prequestedoutputformat: impl ::windows::IntoParam<'a, IAudioMediaType>,
ppsupportedoutputformat: *mut ::std::option::Option<IAudioMediaType>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
poppositeformat.into_param().abi(),
prequestedoutputformat.into_param().abi(),
::std::mem::transmute(ppsupportedoutputformat),
)
}
pub unsafe fn GetInputChannelCount(
&self,
pu32channelcount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(pu32channelcount),
)
}
}
impl ::std::convert::From<IAudioProcessingObject> for ::windows::IUnknown {
fn from(value: IAudioProcessingObject) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioProcessingObject> for ::windows::IUnknown {
fn from(value: &IAudioProcessingObject) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioProcessingObject {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioProcessingObject {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioProcessingObject_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ptime: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppregprops: *mut *mut APO_REG_PROPERTIES,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
cbdatasize: u32,
pbydata: *mut u8,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
poppositeformat: ::windows::RawPtr,
prequestedinputformat: ::windows::RawPtr,
ppsupportedinputformat: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
poppositeformat: ::windows::RawPtr,
prequestedoutputformat: ::windows::RawPtr,
ppsupportedoutputformat: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pu32channelcount: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioProcessingObjectConfiguration(::windows::IUnknown);
impl IAudioProcessingObjectConfiguration {}
unsafe impl ::windows::Interface for IAudioProcessingObjectConfiguration {
type Vtable = IAudioProcessingObjectConfiguration_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
241096709,
43942,
18883,
[143, 154, 43, 140, 136, 156, 79, 168],
);
}
impl IAudioProcessingObjectConfiguration {
pub unsafe fn LockForProcess(
&self,
u32numinputconnections: u32,
ppinputconnections: *mut *mut APO_CONNECTION_DESCRIPTOR,
u32numoutputconnections: u32,
ppoutputconnections: *mut *mut APO_CONNECTION_DESCRIPTOR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(u32numinputconnections),
::std::mem::transmute(ppinputconnections),
::std::mem::transmute(u32numoutputconnections),
::std::mem::transmute(ppoutputconnections),
)
}
pub unsafe fn UnlockForProcess(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<IAudioProcessingObjectConfiguration> for ::windows::IUnknown {
fn from(value: IAudioProcessingObjectConfiguration) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioProcessingObjectConfiguration> for ::windows::IUnknown {
fn from(value: &IAudioProcessingObjectConfiguration) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioProcessingObjectConfiguration {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioProcessingObjectConfiguration {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioProcessingObjectConfiguration_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
u32numinputconnections: u32,
ppinputconnections: *mut *mut APO_CONNECTION_DESCRIPTOR_abi,
u32numoutputconnections: u32,
ppoutputconnections: *mut *mut APO_CONNECTION_DESCRIPTOR_abi,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioProcessingObjectRT(::windows::IUnknown);
impl IAudioProcessingObjectRT {}
unsafe impl ::windows::Interface for IAudioProcessingObjectRT {
type Vtable = IAudioProcessingObjectRT_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2652727917,
56764,
20117,
[164, 199, 173, 100, 186, 55, 132, 108],
);
}
impl IAudioProcessingObjectRT {
pub unsafe fn CalcInputFrames(&self, u32outputframecount: u32) -> u32 {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(u32outputframecount),
)
}
pub unsafe fn CalcOutputFrames(&self, u32inputframecount: u32) -> u32 {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(u32inputframecount),
)
}
}
impl ::std::convert::From<IAudioProcessingObjectRT> for ::windows::IUnknown {
fn from(value: IAudioProcessingObjectRT) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioProcessingObjectRT> for ::windows::IUnknown {
fn from(value: &IAudioProcessingObjectRT) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioProcessingObjectRT {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioProcessingObjectRT {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioProcessingObjectRT_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
u32outputframecount: u32,
) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
u32inputframecount: u32,
) -> u32,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioProcessingObjectVBR(::windows::IUnknown);
impl IAudioProcessingObjectVBR {}
unsafe impl ::windows::Interface for IAudioProcessingObjectVBR {
type Vtable = IAudioProcessingObjectVBR_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2074205071,
30893,
18893,
[149, 145, 247, 157, 128, 161, 124, 129],
);
}
impl IAudioProcessingObjectVBR {
pub unsafe fn CalcMaxInputFrames(
&self,
u32maxoutputframecount: u32,
pu32inputframecount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(u32maxoutputframecount),
::std::mem::transmute(pu32inputframecount),
)
}
pub unsafe fn CalcMaxOutputFrames(
&self,
u32maxinputframecount: u32,
pu32outputframecount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(u32maxinputframecount),
::std::mem::transmute(pu32outputframecount),
)
}
}
impl ::std::convert::From<IAudioProcessingObjectVBR> for ::windows::IUnknown {
fn from(value: IAudioProcessingObjectVBR) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioProcessingObjectVBR> for ::windows::IUnknown {
fn from(value: &IAudioProcessingObjectVBR) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioProcessingObjectVBR {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioProcessingObjectVBR {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioProcessingObjectVBR_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
u32maxoutputframecount: u32,
pu32inputframecount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
u32maxinputframecount: u32,
pu32outputframecount: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioSystemEffects(::windows::IUnknown);
impl IAudioSystemEffects {}
unsafe impl ::windows::Interface for IAudioSystemEffects {
type Vtable = IAudioSystemEffects_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1604325159,
44502,
18842,
[138, 157, 107, 152, 82, 31, 167, 91],
);
}
impl IAudioSystemEffects {}
impl ::std::convert::From<IAudioSystemEffects> for ::windows::IUnknown {
fn from(value: IAudioSystemEffects) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSystemEffects> for ::windows::IUnknown {
fn from(value: &IAudioSystemEffects) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioSystemEffects {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioSystemEffects {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioSystemEffects_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioSystemEffects2(::windows::IUnknown);
impl IAudioSystemEffects2 {}
unsafe impl ::windows::Interface for IAudioSystemEffects2 {
type Vtable = IAudioSystemEffects2_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3137247698,
29750,
17614,
[158, 14, 77, 137, 175, 191, 255, 86],
);
}
impl IAudioSystemEffects2 {
pub unsafe fn GetEffectsList<'a>(
&self,
ppeffectsids: *mut *mut ::windows::Guid,
pceffects: *mut u32,
event: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(ppeffectsids),
::std::mem::transmute(pceffects),
event.into_param().abi(),
)
}
}
impl ::std::convert::From<IAudioSystemEffects2> for ::windows::IUnknown {
fn from(value: IAudioSystemEffects2) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSystemEffects2> for ::windows::IUnknown {
fn from(value: &IAudioSystemEffects2) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioSystemEffects2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioSystemEffects2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioSystemEffects2> for IAudioSystemEffects {
fn from(value: IAudioSystemEffects2) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSystemEffects2> for IAudioSystemEffects {
fn from(value: &IAudioSystemEffects2) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioSystemEffects> for IAudioSystemEffects2 {
fn into_param(self) -> ::windows::Param<'a, IAudioSystemEffects> {
::windows::Param::Owned(::std::convert::Into::<IAudioSystemEffects>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioSystemEffects> for &'a IAudioSystemEffects2 {
fn into_param(self) -> ::windows::Param<'a, IAudioSystemEffects> {
::windows::Param::Owned(::std::convert::Into::<IAudioSystemEffects>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioSystemEffects2_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppeffectsids: *mut *mut ::windows::Guid,
pceffects: *mut u32,
event: super::SystemServices::HANDLE,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioSystemEffectsCustomFormats(::windows::IUnknown);
impl IAudioSystemEffectsCustomFormats {}
unsafe impl ::windows::Interface for IAudioSystemEffectsCustomFormats {
type Vtable = IAudioSystemEffectsCustomFormats_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2971102772,
47999,
20229,
[190, 189, 27, 24, 165, 52, 224, 151],
);
}
impl IAudioSystemEffectsCustomFormats {
pub unsafe fn GetFormatCount(&self, pcformats: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcformats),
)
}
pub unsafe fn GetFormat(
&self,
nformat: u32,
ppformat: *mut ::std::option::Option<IAudioMediaType>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nformat),
::std::mem::transmute(ppformat),
)
}
pub unsafe fn GetFormatRepresentation(
&self,
nformat: u32,
ppwstrformatrep: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(nformat),
::std::mem::transmute(ppwstrformatrep),
)
}
}
impl ::std::convert::From<IAudioSystemEffectsCustomFormats> for ::windows::IUnknown {
fn from(value: IAudioSystemEffectsCustomFormats) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSystemEffectsCustomFormats> for ::windows::IUnknown {
fn from(value: &IAudioSystemEffectsCustomFormats) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioSystemEffectsCustomFormats {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioSystemEffectsCustomFormats {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioSystemEffectsCustomFormats_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcformats: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nformat: u32,
ppformat: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nformat: u32,
ppwstrformatrep: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusic(::windows::IUnknown);
impl IDirectMusic {}
unsafe impl ::windows::Interface for IDirectMusic {
type Vtable = IDirectMusic_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1698042202,
31533,
4562,
[186, 24, 0, 0, 248, 117, 172, 18],
);
}
impl IDirectMusic {
pub unsafe fn EnumPort(
&self,
dwindex: u32,
pportcaps: *mut DMUS_PORTCAPS,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(dwindex),
::std::mem::transmute(pportcaps),
)
}
pub unsafe fn CreateMusicBuffer<'a>(
&self,
pbufferdesc: *mut DMUS_BUFFERDESC,
ppbuffer: *mut ::std::option::Option<IDirectMusicBuffer>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pbufferdesc),
::std::mem::transmute(ppbuffer),
punkouter.into_param().abi(),
)
}
pub unsafe fn CreatePort<'a>(
&self,
rclsidport: *const ::windows::Guid,
pportparams: *mut DMUS_PORTPARAMS8,
ppport: *mut ::std::option::Option<IDirectMusicPort>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(rclsidport),
::std::mem::transmute(pportparams),
::std::mem::transmute(ppport),
punkouter.into_param().abi(),
)
}
pub unsafe fn EnumMasterClock(
&self,
dwindex: u32,
lpclockinfo: *mut DMUS_CLOCKINFO8,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(dwindex),
::std::mem::transmute(lpclockinfo),
)
}
pub unsafe fn SetMasterClock(
&self,
rguidclock: *const ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(rguidclock),
)
}
pub unsafe fn Activate<'a>(
&self,
fenable: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
fenable.into_param().abi(),
)
}
pub unsafe fn GetDefaultPort(
&self,
pguidport: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(pguidport),
)
}
pub unsafe fn SetDirectSound<'a>(
&self,
pdirectsound: impl ::windows::IntoParam<'a, IDirectSound>,
hwnd: impl ::windows::IntoParam<'a, super::WindowsAndMessaging::HWND>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
pdirectsound.into_param().abi(),
hwnd.into_param().abi(),
)
}
}
impl ::std::convert::From<IDirectMusic> for ::windows::IUnknown {
fn from(value: IDirectMusic) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusic> for ::windows::IUnknown {
fn from(value: &IDirectMusic) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusic {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusic {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusic_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwindex: u32,
pportcaps: *mut DMUS_PORTCAPS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbufferdesc: *mut DMUS_BUFFERDESC,
ppbuffer: *mut ::windows::RawPtr,
punkouter: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
rclsidport: *const ::windows::Guid,
pportparams: *mut DMUS_PORTPARAMS8,
ppport: *mut ::windows::RawPtr,
punkouter: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwindex: u32,
lpclockinfo: *mut DMUS_CLOCKINFO8,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
rguidclock: *const ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fenable: super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pguidport: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdirectsound: ::windows::RawPtr,
hwnd: super::WindowsAndMessaging::HWND,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusic8(::windows::IUnknown);
impl IDirectMusic8 {}
unsafe impl ::windows::Interface for IDirectMusic8 {
type Vtable = IDirectMusic8_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
758524407,
33085,
18745,
[133, 8, 240, 92, 107, 117, 253, 151],
);
}
impl IDirectMusic8 {
pub unsafe fn EnumPort(
&self,
dwindex: u32,
pportcaps: *mut DMUS_PORTCAPS,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(dwindex),
::std::mem::transmute(pportcaps),
)
}
pub unsafe fn CreateMusicBuffer<'a>(
&self,
pbufferdesc: *mut DMUS_BUFFERDESC,
ppbuffer: *mut ::std::option::Option<IDirectMusicBuffer>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pbufferdesc),
::std::mem::transmute(ppbuffer),
punkouter.into_param().abi(),
)
}
pub unsafe fn CreatePort<'a>(
&self,
rclsidport: *const ::windows::Guid,
pportparams: *mut DMUS_PORTPARAMS8,
ppport: *mut ::std::option::Option<IDirectMusicPort>,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(rclsidport),
::std::mem::transmute(pportparams),
::std::mem::transmute(ppport),
punkouter.into_param().abi(),
)
}
pub unsafe fn EnumMasterClock(
&self,
dwindex: u32,
lpclockinfo: *mut DMUS_CLOCKINFO8,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(dwindex),
::std::mem::transmute(lpclockinfo),
)
}
pub unsafe fn SetMasterClock(
&self,
rguidclock: *const ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(rguidclock),
)
}
pub unsafe fn Activate<'a>(
&self,
fenable: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
fenable.into_param().abi(),
)
}
pub unsafe fn GetDefaultPort(
&self,
pguidport: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(pguidport),
)
}
pub unsafe fn SetDirectSound<'a>(
&self,
pdirectsound: impl ::windows::IntoParam<'a, IDirectSound>,
hwnd: impl ::windows::IntoParam<'a, super::WindowsAndMessaging::HWND>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
pdirectsound.into_param().abi(),
hwnd.into_param().abi(),
)
}
}
impl ::std::convert::From<IDirectMusic8> for ::windows::IUnknown {
fn from(value: IDirectMusic8) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusic8> for ::windows::IUnknown {
fn from(value: &IDirectMusic8) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusic8 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusic8 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IDirectMusic8> for IDirectMusic {
fn from(value: IDirectMusic8) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusic8> for IDirectMusic {
fn from(value: &IDirectMusic8) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IDirectMusic> for IDirectMusic8 {
fn into_param(self) -> ::windows::Param<'a, IDirectMusic> {
::windows::Param::Owned(::std::convert::Into::<IDirectMusic>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IDirectMusic> for &'a IDirectMusic8 {
fn into_param(self) -> ::windows::Param<'a, IDirectMusic> {
::windows::Param::Owned(::std::convert::Into::<IDirectMusic>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusic8_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwindex: u32,
pportcaps: *mut DMUS_PORTCAPS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbufferdesc: *mut DMUS_BUFFERDESC,
ppbuffer: *mut ::windows::RawPtr,
punkouter: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
rclsidport: *const ::windows::Guid,
pportparams: *mut DMUS_PORTPARAMS8,
ppport: *mut ::windows::RawPtr,
punkouter: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwindex: u32,
lpclockinfo: *mut DMUS_CLOCKINFO8,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
rguidclock: *const ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fenable: super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pguidport: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdirectsound: ::windows::RawPtr,
hwnd: super::WindowsAndMessaging::HWND,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicBuffer(::windows::IUnknown);
impl IDirectMusicBuffer {}
unsafe impl ::windows::Interface for IDirectMusicBuffer {
type Vtable = IDirectMusicBuffer_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3534497912,
45979,
4561,
[135, 4, 0, 96, 8, 147, 177, 189],
);
}
impl IDirectMusicBuffer {
pub unsafe fn Flush(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(::windows::Abi::abi(self))
}
pub unsafe fn TotalTime(&self, prttime: *mut i64) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(prttime),
)
}
pub unsafe fn PackStructured(
&self,
rt: i64,
dwchannelgroup: u32,
dwchannelmessage: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(rt),
::std::mem::transmute(dwchannelgroup),
::std::mem::transmute(dwchannelmessage),
)
}
pub unsafe fn PackUnstructured(
&self,
rt: i64,
dwchannelgroup: u32,
cb: u32,
lpb: *mut u8,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(rt),
::std::mem::transmute(dwchannelgroup),
::std::mem::transmute(cb),
::std::mem::transmute(lpb),
)
}
pub unsafe fn ResetReadPtr(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(::windows::Abi::abi(self))
}
pub unsafe fn GetNextEvent(
&self,
prt: *mut i64,
pdwchannelgroup: *mut u32,
pdwlength: *mut u32,
ppdata: *mut *mut u8,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(prt),
::std::mem::transmute(pdwchannelgroup),
::std::mem::transmute(pdwlength),
::std::mem::transmute(ppdata),
)
}
pub unsafe fn GetRawBufferPtr(&self, ppdata: *mut *mut u8) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(ppdata),
)
}
pub unsafe fn GetStartTime(&self, prt: *mut i64) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(prt),
)
}
pub unsafe fn GetUsedBytes(&self, pcb: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(pcb),
)
}
pub unsafe fn GetMaxBytes(&self, pcb: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(pcb),
)
}
pub unsafe fn GetBufferFormat(
&self,
pguidformat: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(pguidformat),
)
}
pub unsafe fn SetStartTime(&self, rt: i64) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(rt),
)
}
pub unsafe fn SetUsedBytes(&self, cb: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(cb),
)
}
}
impl ::std::convert::From<IDirectMusicBuffer> for ::windows::IUnknown {
fn from(value: IDirectMusicBuffer) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicBuffer> for ::windows::IUnknown {
fn from(value: &IDirectMusicBuffer) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicBuffer {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicBuffer {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicBuffer_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
prttime: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
rt: i64,
dwchannelgroup: u32,
dwchannelmessage: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
rt: i64,
dwchannelgroup: u32,
cb: u32,
lpb: *mut u8,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
prt: *mut i64,
pdwchannelgroup: *mut u32,
pdwlength: *mut u32,
ppdata: *mut *mut u8,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppdata: *mut *mut u8,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
prt: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcb: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcb: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pguidformat: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
rt: i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
cb: u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicCollection(::windows::IUnknown);
impl IDirectMusicCollection {}
unsafe impl ::windows::Interface for IDirectMusicCollection {
type Vtable = IDirectMusicCollection_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3534497916,
45979,
4561,
[135, 4, 0, 96, 8, 147, 177, 189],
);
}
impl IDirectMusicCollection {
pub unsafe fn GetInstrument(
&self,
dwpatch: u32,
ppinstrument: *mut ::std::option::Option<IDirectMusicInstrument>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(dwpatch),
::std::mem::transmute(ppinstrument),
)
}
pub unsafe fn EnumInstrument<'a>(
&self,
dwindex: u32,
pdwpatch: *mut u32,
pwszname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
dwnamelen: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(dwindex),
::std::mem::transmute(pdwpatch),
pwszname.into_param().abi(),
::std::mem::transmute(dwnamelen),
)
}
}
impl ::std::convert::From<IDirectMusicCollection> for ::windows::IUnknown {
fn from(value: IDirectMusicCollection) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicCollection> for ::windows::IUnknown {
fn from(value: &IDirectMusicCollection) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicCollection {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicCollection {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicCollection_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwpatch: u32,
ppinstrument: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwindex: u32,
pdwpatch: *mut u32,
pwszname: super::SystemServices::PWSTR,
dwnamelen: u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicDownload(::windows::IUnknown);
impl IDirectMusicDownload {}
unsafe impl ::windows::Interface for IDirectMusicDownload {
type Vtable = IDirectMusicDownload_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3534497915,
45979,
4561,
[135, 4, 0, 96, 8, 147, 177, 189],
);
}
impl IDirectMusicDownload {
pub unsafe fn GetBuffer(
&self,
ppvbuffer: *mut *mut ::std::ffi::c_void,
pdwsize: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(ppvbuffer),
::std::mem::transmute(pdwsize),
)
}
}
impl ::std::convert::From<IDirectMusicDownload> for ::windows::IUnknown {
fn from(value: IDirectMusicDownload) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicDownload> for ::windows::IUnknown {
fn from(value: &IDirectMusicDownload) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicDownload {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicDownload {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicDownload_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppvbuffer: *mut *mut ::std::ffi::c_void,
pdwsize: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicDownloadedInstrument(::windows::IUnknown);
impl IDirectMusicDownloadedInstrument {}
unsafe impl ::windows::Interface for IDirectMusicDownloadedInstrument {
type Vtable = IDirectMusicDownloadedInstrument_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3534497918,
45979,
4561,
[135, 4, 0, 96, 8, 147, 177, 189],
);
}
impl IDirectMusicDownloadedInstrument {}
impl ::std::convert::From<IDirectMusicDownloadedInstrument> for ::windows::IUnknown {
fn from(value: IDirectMusicDownloadedInstrument) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicDownloadedInstrument> for ::windows::IUnknown {
fn from(value: &IDirectMusicDownloadedInstrument) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicDownloadedInstrument {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicDownloadedInstrument {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicDownloadedInstrument_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicInstrument(::windows::IUnknown);
impl IDirectMusicInstrument {}
unsafe impl ::windows::Interface for IDirectMusicInstrument {
type Vtable = IDirectMusicInstrument_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3534497917,
45979,
4561,
[135, 4, 0, 96, 8, 147, 177, 189],
);
}
impl IDirectMusicInstrument {
pub unsafe fn GetPatch(&self, pdwpatch: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwpatch),
)
}
pub unsafe fn SetPatch(&self, dwpatch: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(dwpatch),
)
}
}
impl ::std::convert::From<IDirectMusicInstrument> for ::windows::IUnknown {
fn from(value: IDirectMusicInstrument) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicInstrument> for ::windows::IUnknown {
fn from(value: &IDirectMusicInstrument) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicInstrument {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicInstrument {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicInstrument_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwpatch: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwpatch: u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicPort(::windows::IUnknown);
impl IDirectMusicPort {}
unsafe impl ::windows::Interface for IDirectMusicPort {
type Vtable = IDirectMusicPort_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
150132937,
14274,
4562,
[185, 249, 0, 0, 248, 117, 172, 18],
);
}
impl IDirectMusicPort {
pub unsafe fn PlayBuffer<'a>(
&self,
pbuffer: impl ::windows::IntoParam<'a, IDirectMusicBuffer>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
pbuffer.into_param().abi(),
)
}
pub unsafe fn SetReadNotificationHandle<'a>(
&self,
hevent: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
hevent.into_param().abi(),
)
}
pub unsafe fn Read<'a>(
&self,
pbuffer: impl ::windows::IntoParam<'a, IDirectMusicBuffer>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
pbuffer.into_param().abi(),
)
}
pub unsafe fn DownloadInstrument<'a>(
&self,
pinstrument: impl ::windows::IntoParam<'a, IDirectMusicInstrument>,
ppdownloadedinstrument: *mut ::std::option::Option<
IDirectMusicDownloadedInstrument,
>,
pnoteranges: *mut DMUS_NOTERANGE,
dwnumnoteranges: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
pinstrument.into_param().abi(),
::std::mem::transmute(ppdownloadedinstrument),
::std::mem::transmute(pnoteranges),
::std::mem::transmute(dwnumnoteranges),
)
}
pub unsafe fn UnloadInstrument<'a>(
&self,
pdownloadedinstrument: impl ::windows::IntoParam<
'a,
IDirectMusicDownloadedInstrument,
>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
pdownloadedinstrument.into_param().abi(),
)
}
pub unsafe fn GetRunningStats(
&self,
pstats: *mut DMUS_SYNTHSTATS,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(pstats),
)
}
pub unsafe fn Compact(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(::windows::Abi::abi(self))
}
pub unsafe fn GetCaps(&self, pportcaps: *mut DMUS_PORTCAPS) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(pportcaps),
)
}
pub unsafe fn SetNumChannelGroups(
&self,
dwchannelgroups: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(dwchannelgroups),
)
}
pub unsafe fn GetNumChannelGroups(
&self,
pdwchannelgroups: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwchannelgroups),
)
}
pub unsafe fn Activate<'a>(
&self,
factive: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
factive.into_param().abi(),
)
}
pub unsafe fn SetChannelPriority(
&self,
dwchannelgroup: u32,
dwchannel: u32,
dwpriority: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(dwchannelgroup),
::std::mem::transmute(dwchannel),
::std::mem::transmute(dwpriority),
)
}
pub unsafe fn GetChannelPriority(
&self,
dwchannelgroup: u32,
dwchannel: u32,
pdwpriority: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(
::windows::Abi::abi(self),
::std::mem::transmute(dwchannelgroup),
::std::mem::transmute(dwchannel),
::std::mem::transmute(pdwpriority),
)
}
pub unsafe fn SetDirectSound<'a>(
&self,
pdirectsound: impl ::windows::IntoParam<'a, IDirectSound>,
pdirectsoundbuffer: impl ::windows::IntoParam<'a, IDirectSoundBuffer>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).18)(
::windows::Abi::abi(self),
pdirectsound.into_param().abi(),
pdirectsoundbuffer.into_param().abi(),
)
}
pub unsafe fn GetFormat(
&self,
pwaveformatex: *mut super::Multimedia::WAVEFORMATEX,
pdwwaveformatexsize: *mut u32,
pdwbuffersize: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).19)(
::windows::Abi::abi(self),
::std::mem::transmute(pwaveformatex),
::std::mem::transmute(pdwwaveformatexsize),
::std::mem::transmute(pdwbuffersize),
)
}
}
impl ::std::convert::From<IDirectMusicPort> for ::windows::IUnknown {
fn from(value: IDirectMusicPort) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicPort> for ::windows::IUnknown {
fn from(value: &IDirectMusicPort) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicPort {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicPort {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicPort_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbuffer: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
hevent: super::SystemServices::HANDLE,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbuffer: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pinstrument: ::windows::RawPtr,
ppdownloadedinstrument: *mut ::windows::RawPtr,
pnoteranges: *mut DMUS_NOTERANGE,
dwnumnoteranges: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdownloadedinstrument: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pstats: *mut DMUS_SYNTHSTATS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pportcaps: *mut DMUS_PORTCAPS,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwchannelgroups: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwchannelgroups: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
factive: super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwchannelgroup: u32,
dwchannel: u32,
dwpriority: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwchannelgroup: u32,
dwchannel: u32,
pdwpriority: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdirectsound: ::windows::RawPtr,
pdirectsoundbuffer: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwaveformatex: *mut super::Multimedia::WAVEFORMATEX,
pdwwaveformatexsize: *mut u32,
pdwbuffersize: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicPortDownload(::windows::IUnknown);
impl IDirectMusicPortDownload {}
unsafe impl ::windows::Interface for IDirectMusicPortDownload {
type Vtable = IDirectMusicPortDownload_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3534497914,
45979,
4561,
[135, 4, 0, 96, 8, 147, 177, 189],
);
}
impl IDirectMusicPortDownload {
pub unsafe fn GetBuffer(
&self,
dwdlid: u32,
ppidmdownload: *mut ::std::option::Option<IDirectMusicDownload>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(dwdlid),
::std::mem::transmute(ppidmdownload),
)
}
pub unsafe fn AllocateBuffer(
&self,
dwsize: u32,
ppidmdownload: *mut ::std::option::Option<IDirectMusicDownload>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(dwsize),
::std::mem::transmute(ppidmdownload),
)
}
pub unsafe fn GetDLId(
&self,
pdwstartdlid: *mut u32,
dwcount: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwstartdlid),
::std::mem::transmute(dwcount),
)
}
pub unsafe fn GetAppend(&self, pdwappend: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwappend),
)
}
pub unsafe fn Download<'a>(
&self,
pidmdownload: impl ::windows::IntoParam<'a, IDirectMusicDownload>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
pidmdownload.into_param().abi(),
)
}
pub unsafe fn Unload<'a>(
&self,
pidmdownload: impl ::windows::IntoParam<'a, IDirectMusicDownload>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
pidmdownload.into_param().abi(),
)
}
}
impl ::std::convert::From<IDirectMusicPortDownload> for ::windows::IUnknown {
fn from(value: IDirectMusicPortDownload) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicPortDownload> for ::windows::IUnknown {
fn from(value: &IDirectMusicPortDownload) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicPortDownload {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicPortDownload {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicPortDownload_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwdlid: u32,
ppidmdownload: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwsize: u32,
ppidmdownload: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwstartdlid: *mut u32,
dwcount: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwappend: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pidmdownload: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pidmdownload: ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicSynth(::windows::IUnknown);
impl IDirectMusicSynth {}
unsafe impl ::windows::Interface for IDirectMusicSynth {
type Vtable = IDirectMusicSynth_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
159528545,
23685,
4562,
[175, 166, 0, 170, 0, 36, 216, 182],
);
}
impl IDirectMusicSynth {
pub unsafe fn Open(
&self,
pportparams: *mut DMUS_PORTPARAMS8,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pportparams),
)
}
pub unsafe fn Close(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(::windows::Abi::abi(self))
}
pub unsafe fn SetNumChannelGroups(&self, dwgroups: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(dwgroups),
)
}
pub unsafe fn Download(
&self,
phdownload: *mut super::SystemServices::HANDLE,
pvdata: *mut ::std::ffi::c_void,
pbfree: *mut i32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(phdownload),
::std::mem::transmute(pvdata),
::std::mem::transmute(pbfree),
)
}
pub unsafe fn Unload<'a>(
&self,
hdownload: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
lpfreehandle : * mut * mut * mut * mut * mut * mut * mut * mut * mut * mut * mut :: windows :: HRESULT,
huserdata: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
hdownload.into_param().abi(),
::std::mem::transmute(lpfreehandle),
huserdata.into_param().abi(),
)
}
pub unsafe fn PlayBuffer(
&self,
rt: i64,
pbbuffer: *mut u8,
cbbuffer: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(rt),
::std::mem::transmute(pbbuffer),
::std::mem::transmute(cbbuffer),
)
}
pub unsafe fn GetRunningStats(
&self,
pstats: *mut DMUS_SYNTHSTATS,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(pstats),
)
}
pub unsafe fn GetPortCaps(&self, pcaps: *mut DMUS_PORTCAPS) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(pcaps),
)
}
pub unsafe fn Activate<'a>(
&self,
fenable: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
fenable.into_param().abi(),
)
}
pub unsafe fn SetSynthSink<'a>(
&self,
psynthsink: impl ::windows::IntoParam<'a, IDirectMusicSynthSink>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
psynthsink.into_param().abi(),
)
}
pub unsafe fn Render(
&self,
pbuffer: *mut i16,
dwlength: u32,
llposition: i64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(pbuffer),
::std::mem::transmute(dwlength),
::std::mem::transmute(llposition),
)
}
pub unsafe fn SetChannelPriority(
&self,
dwchannelgroup: u32,
dwchannel: u32,
dwpriority: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(dwchannelgroup),
::std::mem::transmute(dwchannel),
::std::mem::transmute(dwpriority),
)
}
pub unsafe fn GetChannelPriority(
&self,
dwchannelgroup: u32,
dwchannel: u32,
pdwpriority: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(
::windows::Abi::abi(self),
::std::mem::transmute(dwchannelgroup),
::std::mem::transmute(dwchannel),
::std::mem::transmute(pdwpriority),
)
}
pub unsafe fn GetFormat(
&self,
pwaveformatex: *mut super::Multimedia::WAVEFORMATEX,
pdwwaveformatexsize: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).18)(
::windows::Abi::abi(self),
::std::mem::transmute(pwaveformatex),
::std::mem::transmute(pdwwaveformatexsize),
)
}
pub unsafe fn GetAppend(&self, pdwappend: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).19)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwappend),
)
}
}
impl ::std::convert::From<IDirectMusicSynth> for ::windows::IUnknown {
fn from(value: IDirectMusicSynth) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicSynth> for ::windows::IUnknown {
fn from(value: &IDirectMusicSynth) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicSynth {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicSynth {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicSynth_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pportparams : * mut DMUS_PORTPARAMS8 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , dwgroups : u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , phdownload : * mut super :: SystemServices :: HANDLE , pvdata : * mut :: std :: ffi :: c_void , pbfree : * mut i32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , hdownload : super :: SystemServices :: HANDLE , lpfreehandle : * mut * mut * mut * mut * mut * mut * mut * mut * mut * mut * mut :: windows :: HRESULT , huserdata : super :: SystemServices :: HANDLE , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , rt : i64 , pbbuffer : * mut u8 , cbbuffer : u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pstats : * mut DMUS_SYNTHSTATS , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pcaps : * mut DMUS_PORTCAPS , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( ) , pub unsafe extern "system" fn ( ) , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , fenable : super :: SystemServices :: BOOL , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , psynthsink : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pbuffer : * mut i16 , dwlength : u32 , llposition : i64 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , dwchannelgroup : u32 , dwchannel : u32 , dwpriority : u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , dwchannelgroup : u32 , dwchannel : u32 , pdwpriority : * mut u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pwaveformatex : * mut super :: Multimedia :: WAVEFORMATEX , pdwwaveformatexsize : * mut u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pdwappend : * mut u32 , ) -> :: windows :: HRESULT , ) ;
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicSynth8(::windows::IUnknown);
impl IDirectMusicSynth8 {}
unsafe impl ::windows::Interface for IDirectMusicSynth8 {
type Vtable = IDirectMusicSynth8_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1405793829,
10001,
19615,
[157, 231, 27, 127, 146, 95, 111, 200],
);
}
impl IDirectMusicSynth8 {
pub unsafe fn Open(
&self,
pportparams: *mut DMUS_PORTPARAMS8,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pportparams),
)
}
pub unsafe fn Close(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(::windows::Abi::abi(self))
}
pub unsafe fn SetNumChannelGroups(&self, dwgroups: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(dwgroups),
)
}
pub unsafe fn Download(
&self,
phdownload: *mut super::SystemServices::HANDLE,
pvdata: *mut ::std::ffi::c_void,
pbfree: *mut i32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(phdownload),
::std::mem::transmute(pvdata),
::std::mem::transmute(pbfree),
)
}
pub unsafe fn Unload<'a>(
&self,
hdownload: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
lpfreehandle : * mut * mut * mut * mut * mut * mut * mut * mut * mut * mut * mut :: windows :: HRESULT,
huserdata: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
hdownload.into_param().abi(),
::std::mem::transmute(lpfreehandle),
huserdata.into_param().abi(),
)
}
pub unsafe fn PlayBuffer(
&self,
rt: i64,
pbbuffer: *mut u8,
cbbuffer: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(rt),
::std::mem::transmute(pbbuffer),
::std::mem::transmute(cbbuffer),
)
}
pub unsafe fn GetRunningStats(
&self,
pstats: *mut DMUS_SYNTHSTATS,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(pstats),
)
}
pub unsafe fn GetPortCaps(&self, pcaps: *mut DMUS_PORTCAPS) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(pcaps),
)
}
pub unsafe fn Activate<'a>(
&self,
fenable: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
fenable.into_param().abi(),
)
}
pub unsafe fn SetSynthSink<'a>(
&self,
psynthsink: impl ::windows::IntoParam<'a, IDirectMusicSynthSink>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
psynthsink.into_param().abi(),
)
}
pub unsafe fn Render(
&self,
pbuffer: *mut i16,
dwlength: u32,
llposition: i64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(pbuffer),
::std::mem::transmute(dwlength),
::std::mem::transmute(llposition),
)
}
pub unsafe fn SetChannelPriority(
&self,
dwchannelgroup: u32,
dwchannel: u32,
dwpriority: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(dwchannelgroup),
::std::mem::transmute(dwchannel),
::std::mem::transmute(dwpriority),
)
}
pub unsafe fn GetChannelPriority(
&self,
dwchannelgroup: u32,
dwchannel: u32,
pdwpriority: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(
::windows::Abi::abi(self),
::std::mem::transmute(dwchannelgroup),
::std::mem::transmute(dwchannel),
::std::mem::transmute(pdwpriority),
)
}
pub unsafe fn GetFormat(
&self,
pwaveformatex: *mut super::Multimedia::WAVEFORMATEX,
pdwwaveformatexsize: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).18)(
::windows::Abi::abi(self),
::std::mem::transmute(pwaveformatex),
::std::mem::transmute(pdwwaveformatexsize),
)
}
pub unsafe fn GetAppend(&self, pdwappend: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).19)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwappend),
)
}
pub unsafe fn PlayVoice(
&self,
rt: i64,
dwvoiceid: u32,
dwchannelgroup: u32,
dwchannel: u32,
dwdlid: u32,
prpitch: i32,
vrvolume: i32,
stvoicestart: u64,
stloopstart: u64,
stloopend: u64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).20)(
::windows::Abi::abi(self),
::std::mem::transmute(rt),
::std::mem::transmute(dwvoiceid),
::std::mem::transmute(dwchannelgroup),
::std::mem::transmute(dwchannel),
::std::mem::transmute(dwdlid),
::std::mem::transmute(prpitch),
::std::mem::transmute(vrvolume),
::std::mem::transmute(stvoicestart),
::std::mem::transmute(stloopstart),
::std::mem::transmute(stloopend),
)
}
pub unsafe fn StopVoice(&self, rt: i64, dwvoiceid: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).21)(
::windows::Abi::abi(self),
::std::mem::transmute(rt),
::std::mem::transmute(dwvoiceid),
)
}
pub unsafe fn GetVoiceState(
&self,
dwvoice: *mut u32,
cbvoice: u32,
dwvoicestate: *mut DMUS_VOICE_STATE,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).22)(
::windows::Abi::abi(self),
::std::mem::transmute(dwvoice),
::std::mem::transmute(cbvoice),
::std::mem::transmute(dwvoicestate),
)
}
pub unsafe fn Refresh(
&self,
dwdownloadid: u32,
dwflags: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).23)(
::windows::Abi::abi(self),
::std::mem::transmute(dwdownloadid),
::std::mem::transmute(dwflags),
)
}
pub unsafe fn AssignChannelToBuses(
&self,
dwchannelgroup: u32,
dwchannel: u32,
pdwbuses: *mut u32,
cbuses: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).24)(
::windows::Abi::abi(self),
::std::mem::transmute(dwchannelgroup),
::std::mem::transmute(dwchannel),
::std::mem::transmute(pdwbuses),
::std::mem::transmute(cbuses),
)
}
}
impl ::std::convert::From<IDirectMusicSynth8> for ::windows::IUnknown {
fn from(value: IDirectMusicSynth8) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicSynth8> for ::windows::IUnknown {
fn from(value: &IDirectMusicSynth8) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicSynth8 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicSynth8 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IDirectMusicSynth8> for IDirectMusicSynth {
fn from(value: IDirectMusicSynth8) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicSynth8> for IDirectMusicSynth {
fn from(value: &IDirectMusicSynth8) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IDirectMusicSynth> for IDirectMusicSynth8 {
fn into_param(self) -> ::windows::Param<'a, IDirectMusicSynth> {
::windows::Param::Owned(::std::convert::Into::<IDirectMusicSynth>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IDirectMusicSynth> for &'a IDirectMusicSynth8 {
fn into_param(self) -> ::windows::Param<'a, IDirectMusicSynth> {
::windows::Param::Owned(::std::convert::Into::<IDirectMusicSynth>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicSynth8_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pportparams : * mut DMUS_PORTPARAMS8 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , dwgroups : u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , phdownload : * mut super :: SystemServices :: HANDLE , pvdata : * mut :: std :: ffi :: c_void , pbfree : * mut i32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , hdownload : super :: SystemServices :: HANDLE , lpfreehandle : * mut * mut * mut * mut * mut * mut * mut * mut * mut * mut * mut :: windows :: HRESULT , huserdata : super :: SystemServices :: HANDLE , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , rt : i64 , pbbuffer : * mut u8 , cbbuffer : u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pstats : * mut DMUS_SYNTHSTATS , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pcaps : * mut DMUS_PORTCAPS , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( ) , pub unsafe extern "system" fn ( ) , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , fenable : super :: SystemServices :: BOOL , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , psynthsink : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pbuffer : * mut i16 , dwlength : u32 , llposition : i64 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , dwchannelgroup : u32 , dwchannel : u32 , dwpriority : u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , dwchannelgroup : u32 , dwchannel : u32 , pdwpriority : * mut u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pwaveformatex : * mut super :: Multimedia :: WAVEFORMATEX , pdwwaveformatexsize : * mut u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pdwappend : * mut u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , rt : i64 , dwvoiceid : u32 , dwchannelgroup : u32 , dwchannel : u32 , dwdlid : u32 , prpitch : i32 , vrvolume : i32 , stvoicestart : u64 , stloopstart : u64 , stloopend : u64 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , rt : i64 , dwvoiceid : u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , dwvoice : * mut u32 , cbvoice : u32 , dwvoicestate : * mut DMUS_VOICE_STATE , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , dwdownloadid : u32 , dwflags : u32 , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , dwchannelgroup : u32 , dwchannel : u32 , pdwbuses : * mut u32 , cbuses : u32 , ) -> :: windows :: HRESULT , ) ;
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicSynthSink(::windows::IUnknown);
impl IDirectMusicSynthSink {}
unsafe impl ::windows::Interface for IDirectMusicSynthSink {
type Vtable = IDirectMusicSynthSink_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
159528547,
23685,
4562,
[175, 166, 0, 170, 0, 36, 216, 182],
);
}
impl IDirectMusicSynthSink {
pub unsafe fn Init<'a>(
&self,
psynth: impl ::windows::IntoParam<'a, IDirectMusicSynth>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
psynth.into_param().abi(),
)
}
pub unsafe fn Activate<'a>(
&self,
fenable: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
fenable.into_param().abi(),
)
}
pub unsafe fn SampleToRefTime(
&self,
llsampletime: i64,
prftime: *mut i64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(llsampletime),
::std::mem::transmute(prftime),
)
}
pub unsafe fn RefTimeToSample(
&self,
rftime: i64,
pllsampletime: *mut i64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(rftime),
::std::mem::transmute(pllsampletime),
)
}
pub unsafe fn SetDirectSound<'a>(
&self,
pdirectsound: impl ::windows::IntoParam<'a, IDirectSound>,
pdirectsoundbuffer: impl ::windows::IntoParam<'a, IDirectSoundBuffer>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
pdirectsound.into_param().abi(),
pdirectsoundbuffer.into_param().abi(),
)
}
pub unsafe fn GetDesiredBufferSize(
&self,
pdwbuffersizeinsamples: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwbuffersizeinsamples),
)
}
}
impl ::std::convert::From<IDirectMusicSynthSink> for ::windows::IUnknown {
fn from(value: IDirectMusicSynthSink) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicSynthSink> for ::windows::IUnknown {
fn from(value: &IDirectMusicSynthSink) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicSynthSink {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicSynthSink {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicSynthSink_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
psynth: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fenable: super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
llsampletime: i64,
prftime: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
rftime: i64,
pllsampletime: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdirectsound: ::windows::RawPtr,
pdirectsoundbuffer: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwbuffersizeinsamples: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectMusicThru(::windows::IUnknown);
impl IDirectMusicThru {}
unsafe impl ::windows::Interface for IDirectMusicThru {
type Vtable = IDirectMusicThru_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3469824999,
13830,
4562,
[185, 249, 0, 0, 248, 117, 172, 18],
);
}
impl IDirectMusicThru {
pub unsafe fn ThruChannel<'a>(
&self,
dwsourcechannelgroup: u32,
dwsourcechannel: u32,
dwdestinationchannelgroup: u32,
dwdestinationchannel: u32,
pdestinationport: impl ::windows::IntoParam<'a, IDirectMusicPort>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(dwsourcechannelgroup),
::std::mem::transmute(dwsourcechannel),
::std::mem::transmute(dwdestinationchannelgroup),
::std::mem::transmute(dwdestinationchannel),
pdestinationport.into_param().abi(),
)
}
}
impl ::std::convert::From<IDirectMusicThru> for ::windows::IUnknown {
fn from(value: IDirectMusicThru) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectMusicThru> for ::windows::IUnknown {
fn from(value: &IDirectMusicThru) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectMusicThru {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectMusicThru {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectMusicThru_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwsourcechannelgroup: u32,
dwsourcechannel: u32,
dwdestinationchannelgroup: u32,
dwdestinationchannel: u32,
pdestinationport: ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSound3DBuffer(::windows::IUnknown);
impl IDirectSound3DBuffer {}
unsafe impl ::windows::Interface for IDirectSound3DBuffer {
type Vtable = IDirectSound3DBuffer_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
664468102,
18817,
4558,
[165, 33, 0, 32, 175, 11, 229, 96],
);
}
impl IDirectSound3DBuffer {
pub unsafe fn GetAllParameters(
&self,
pds3dbuffer: *mut DS3DBUFFER,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pds3dbuffer),
)
}
pub unsafe fn GetConeAngles(
&self,
pdwinsideconeangle: *mut u32,
pdwoutsideconeangle: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwinsideconeangle),
::std::mem::transmute(pdwoutsideconeangle),
)
}
pub unsafe fn GetConeOrientation(
&self,
pvorientation: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pvorientation),
)
}
pub unsafe fn GetConeOutsideVolume(
&self,
plconeoutsidevolume: *mut i32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(plconeoutsidevolume),
)
}
pub unsafe fn GetMaxDistance(
&self,
pflmaxdistance: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(pflmaxdistance),
)
}
pub unsafe fn GetMinDistance(
&self,
pflmindistance: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pflmindistance),
)
}
pub unsafe fn GetMode(&self, pdwmode: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwmode),
)
}
pub unsafe fn GetPosition(
&self,
pvposition: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(pvposition),
)
}
pub unsafe fn GetVelocity(
&self,
pvvelocity: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(pvvelocity),
)
}
pub unsafe fn SetAllParameters(
&self,
pcds3dbuffer: *mut DS3DBUFFER,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(pcds3dbuffer),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetConeAngles(
&self,
dwinsideconeangle: u32,
dwoutsideconeangle: u32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(dwinsideconeangle),
::std::mem::transmute(dwoutsideconeangle),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetConeOrientation(
&self,
x: f32,
y: f32,
z: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(x),
::std::mem::transmute(y),
::std::mem::transmute(z),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetConeOutsideVolume(
&self,
lconeoutsidevolume: i32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(lconeoutsidevolume),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetMaxDistance(
&self,
flmaxdistance: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(flmaxdistance),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetMinDistance(
&self,
flmindistance: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(
::windows::Abi::abi(self),
::std::mem::transmute(flmindistance),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetMode(&self, dwmode: u32, dwapply: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).18)(
::windows::Abi::abi(self),
::std::mem::transmute(dwmode),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetPosition(
&self,
x: f32,
y: f32,
z: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).19)(
::windows::Abi::abi(self),
::std::mem::transmute(x),
::std::mem::transmute(y),
::std::mem::transmute(z),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetVelocity(
&self,
x: f32,
y: f32,
z: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).20)(
::windows::Abi::abi(self),
::std::mem::transmute(x),
::std::mem::transmute(y),
::std::mem::transmute(z),
::std::mem::transmute(dwapply),
)
}
}
impl ::std::convert::From<IDirectSound3DBuffer> for ::windows::IUnknown {
fn from(value: IDirectSound3DBuffer) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSound3DBuffer> for ::windows::IUnknown {
fn from(value: &IDirectSound3DBuffer) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSound3DBuffer {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSound3DBuffer {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSound3DBuffer_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pds3dbuffer: *mut DS3DBUFFER,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwinsideconeangle: *mut u32,
pdwoutsideconeangle: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvorientation: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
plconeoutsidevolume: *mut i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pflmaxdistance: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pflmindistance: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwmode: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvposition: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvvelocity: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcds3dbuffer: *mut DS3DBUFFER,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwinsideconeangle: u32,
dwoutsideconeangle: u32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
x: f32,
y: f32,
z: f32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
lconeoutsidevolume: i32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
flmaxdistance: f32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
flmindistance: f32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwmode: u32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
x: f32,
y: f32,
z: f32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
x: f32,
y: f32,
z: f32,
dwapply: u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSound3DListener(::windows::IUnknown);
impl IDirectSound3DListener {}
unsafe impl ::windows::Interface for IDirectSound3DListener {
type Vtable = IDirectSound3DListener_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
664468100,
18817,
4558,
[165, 33, 0, 32, 175, 11, 229, 96],
);
}
impl IDirectSound3DListener {
pub unsafe fn GetAllParameters(
&self,
plistener: *mut DS3DLISTENER,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(plistener),
)
}
pub unsafe fn GetDistanceFactor(
&self,
pfldistancefactor: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pfldistancefactor),
)
}
pub unsafe fn GetDopplerFactor(
&self,
pfldopplerfactor: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pfldopplerfactor),
)
}
pub unsafe fn GetOrientation(
&self,
pvorientfront: *mut super::Direct3D9::D3DVECTOR,
pvorienttop: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pvorientfront),
::std::mem::transmute(pvorienttop),
)
}
pub unsafe fn GetPosition(
&self,
pvposition: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(pvposition),
)
}
pub unsafe fn GetRolloffFactor(
&self,
pflrollofffactor: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pflrollofffactor),
)
}
pub unsafe fn GetVelocity(
&self,
pvvelocity: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(pvvelocity),
)
}
pub unsafe fn SetAllParameters(
&self,
pclistener: *mut DS3DLISTENER,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(pclistener),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetDistanceFactor(
&self,
fldistancefactor: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(fldistancefactor),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetDopplerFactor(
&self,
fldopplerfactor: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(fldopplerfactor),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetOrientation(
&self,
xfront: f32,
yfront: f32,
zfront: f32,
xtop: f32,
ytop: f32,
ztop: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(xfront),
::std::mem::transmute(yfront),
::std::mem::transmute(zfront),
::std::mem::transmute(xtop),
::std::mem::transmute(ytop),
::std::mem::transmute(ztop),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetPosition(
&self,
x: f32,
y: f32,
z: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(x),
::std::mem::transmute(y),
::std::mem::transmute(z),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetRolloffFactor(
&self,
flrollofffactor: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(flrollofffactor),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn SetVelocity(
&self,
x: f32,
y: f32,
z: f32,
dwapply: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(x),
::std::mem::transmute(y),
::std::mem::transmute(z),
::std::mem::transmute(dwapply),
)
}
pub unsafe fn CommitDeferredSettings(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<IDirectSound3DListener> for ::windows::IUnknown {
fn from(value: IDirectSound3DListener) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSound3DListener> for ::windows::IUnknown {
fn from(value: &IDirectSound3DListener) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSound3DListener {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSound3DListener {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSound3DListener_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
plistener: *mut DS3DLISTENER,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pfldistancefactor: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pfldopplerfactor: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvorientfront: *mut super::Direct3D9::D3DVECTOR,
pvorienttop: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvposition: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pflrollofffactor: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvvelocity: *mut super::Direct3D9::D3DVECTOR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pclistener: *mut DS3DLISTENER,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fldistancefactor: f32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fldopplerfactor: f32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
xfront: f32,
yfront: f32,
zfront: f32,
xtop: f32,
ytop: f32,
ztop: f32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
x: f32,
y: f32,
z: f32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
flrollofffactor: f32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
x: f32,
y: f32,
z: f32,
dwapply: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundCaptureFXAec(::windows::IUnknown);
impl IDirectSoundCaptureFXAec {}
unsafe impl ::windows::Interface for IDirectSoundCaptureFXAec {
type Vtable = IDirectSoundCaptureFXAec_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2910065725,
36925,
19127,
[128, 102, 40, 211, 99, 3, 109, 101],
);
}
impl IDirectSoundCaptureFXAec {
pub unsafe fn SetAllParameters(
&self,
pdscfxaec: *mut DSCFXAec,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pdscfxaec),
)
}
pub unsafe fn GetAllParameters(
&self,
pdscfxaec: *mut DSCFXAec,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdscfxaec),
)
}
pub unsafe fn GetStatus(&self, pdwstatus: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwstatus),
)
}
pub unsafe fn Reset(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<IDirectSoundCaptureFXAec> for ::windows::IUnknown {
fn from(value: IDirectSoundCaptureFXAec) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundCaptureFXAec> for ::windows::IUnknown {
fn from(value: &IDirectSoundCaptureFXAec) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundCaptureFXAec {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundCaptureFXAec {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundCaptureFXAec_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdscfxaec: *mut DSCFXAec,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdscfxaec: *mut DSCFXAec,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwstatus: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundCaptureFXNoiseSuppress(::windows::IUnknown);
impl IDirectSoundCaptureFXNoiseSuppress {}
unsafe impl ::windows::Interface for IDirectSoundCaptureFXNoiseSuppress {
type Vtable = IDirectSoundCaptureFXNoiseSuppress_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3979419201,
64430,
16757,
[150, 37, 205, 8, 84, 246, 147, 202],
);
}
impl IDirectSoundCaptureFXNoiseSuppress {
pub unsafe fn SetAllParameters(
&self,
pcdscfxnoisesuppress: *mut DSCFXNoiseSuppress,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdscfxnoisesuppress),
)
}
pub unsafe fn GetAllParameters(
&self,
pdscfxnoisesuppress: *mut DSCFXNoiseSuppress,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdscfxnoisesuppress),
)
}
pub unsafe fn Reset(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<IDirectSoundCaptureFXNoiseSuppress> for ::windows::IUnknown {
fn from(value: IDirectSoundCaptureFXNoiseSuppress) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundCaptureFXNoiseSuppress> for ::windows::IUnknown {
fn from(value: &IDirectSoundCaptureFXNoiseSuppress) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundCaptureFXNoiseSuppress {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundCaptureFXNoiseSuppress {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundCaptureFXNoiseSuppress_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdscfxnoisesuppress: *mut DSCFXNoiseSuppress,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdscfxnoisesuppress: *mut DSCFXNoiseSuppress,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundFXChorus(::windows::IUnknown);
impl IDirectSoundFXChorus {}
unsafe impl ::windows::Interface for IDirectSoundFXChorus {
type Vtable = IDirectSoundFXChorus_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2282242787,
5215,
17382,
[169, 52, 167, 24, 6, 229, 5, 71],
);
}
impl IDirectSoundFXChorus {
pub unsafe fn SetAllParameters(
&self,
pcdsfxchorus: *mut DSFXChorus,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsfxchorus),
)
}
pub unsafe fn GetAllParameters(
&self,
pdsfxchorus: *mut DSFXChorus,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsfxchorus),
)
}
}
impl ::std::convert::From<IDirectSoundFXChorus> for ::windows::IUnknown {
fn from(value: IDirectSoundFXChorus) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundFXChorus> for ::windows::IUnknown {
fn from(value: &IDirectSoundFXChorus) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundFXChorus {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundFXChorus {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundFXChorus_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsfxchorus: *mut DSFXChorus,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsfxchorus: *mut DSFXChorus,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundFXCompressor(::windows::IUnknown);
impl IDirectSoundFXCompressor {}
unsafe impl ::windows::Interface for IDirectSoundFXCompressor {
type Vtable = IDirectSoundFXCompressor_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1270681940,
25334,
20012,
[161, 92, 211, 182, 196, 23, 247, 160],
);
}
impl IDirectSoundFXCompressor {
pub unsafe fn SetAllParameters(
&self,
pcdsfxcompressor: *mut DSFXCompressor,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsfxcompressor),
)
}
pub unsafe fn GetAllParameters(
&self,
pdsfxcompressor: *mut DSFXCompressor,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsfxcompressor),
)
}
}
impl ::std::convert::From<IDirectSoundFXCompressor> for ::windows::IUnknown {
fn from(value: IDirectSoundFXCompressor) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundFXCompressor> for ::windows::IUnknown {
fn from(value: &IDirectSoundFXCompressor) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundFXCompressor {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundFXCompressor {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundFXCompressor_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsfxcompressor: *mut DSFXCompressor,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsfxcompressor: *mut DSFXCompressor,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundFXDistortion(::windows::IUnknown);
impl IDirectSoundFXDistortion {}
unsafe impl ::windows::Interface for IDirectSoundFXDistortion {
type Vtable = IDirectSoundFXDistortion_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2395947814,
17759,
19851,
[189, 169, 141, 93, 62, 158, 62, 11],
);
}
impl IDirectSoundFXDistortion {
pub unsafe fn SetAllParameters(
&self,
pcdsfxdistortion: *mut DSFXDistortion,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsfxdistortion),
)
}
pub unsafe fn GetAllParameters(
&self,
pdsfxdistortion: *mut DSFXDistortion,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsfxdistortion),
)
}
}
impl ::std::convert::From<IDirectSoundFXDistortion> for ::windows::IUnknown {
fn from(value: IDirectSoundFXDistortion) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundFXDistortion> for ::windows::IUnknown {
fn from(value: &IDirectSoundFXDistortion) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundFXDistortion {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundFXDistortion {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundFXDistortion_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsfxdistortion: *mut DSFXDistortion,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsfxdistortion: *mut DSFXDistortion,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundFXEcho(::windows::IUnknown);
impl IDirectSoundFXEcho {}
unsafe impl ::windows::Interface for IDirectSoundFXEcho {
type Vtable = IDirectSoundFXEcho_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2345832159,
20699,
20114,
[162, 189, 68, 84, 136, 209, 237, 66],
);
}
impl IDirectSoundFXEcho {
pub unsafe fn SetAllParameters(
&self,
pcdsfxecho: *mut DSFXEcho,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsfxecho),
)
}
pub unsafe fn GetAllParameters(
&self,
pdsfxecho: *mut DSFXEcho,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsfxecho),
)
}
}
impl ::std::convert::From<IDirectSoundFXEcho> for ::windows::IUnknown {
fn from(value: IDirectSoundFXEcho) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundFXEcho> for ::windows::IUnknown {
fn from(value: &IDirectSoundFXEcho) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundFXEcho {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundFXEcho {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundFXEcho_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsfxecho: *mut DSFXEcho,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsfxecho: *mut DSFXEcho,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundFXFlanger(::windows::IUnknown);
impl IDirectSoundFXFlanger {}
unsafe impl ::windows::Interface for IDirectSoundFXFlanger {
type Vtable = IDirectSoundFXFlanger_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2420021368,
11410,
16498,
[155, 44, 234, 104, 245, 57, 103, 131],
);
}
impl IDirectSoundFXFlanger {
pub unsafe fn SetAllParameters(
&self,
pcdsfxflanger: *mut DSFXFlanger,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsfxflanger),
)
}
pub unsafe fn GetAllParameters(
&self,
pdsfxflanger: *mut DSFXFlanger,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsfxflanger),
)
}
}
impl ::std::convert::From<IDirectSoundFXFlanger> for ::windows::IUnknown {
fn from(value: IDirectSoundFXFlanger) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundFXFlanger> for ::windows::IUnknown {
fn from(value: &IDirectSoundFXFlanger) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundFXFlanger {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundFXFlanger {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundFXFlanger_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsfxflanger: *mut DSFXFlanger,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsfxflanger: *mut DSFXFlanger,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundFXGargle(::windows::IUnknown);
impl IDirectSoundFXGargle {}
unsafe impl ::windows::Interface for IDirectSoundFXGargle {
type Vtable = IDirectSoundFXGargle_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3591828306,
54818,
4558,
[170, 197, 0, 32, 175, 11, 153, 163],
);
}
impl IDirectSoundFXGargle {
pub unsafe fn SetAllParameters(
&self,
pcdsfxgargle: *mut DSFXGargle,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsfxgargle),
)
}
pub unsafe fn GetAllParameters(
&self,
pdsfxgargle: *mut DSFXGargle,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsfxgargle),
)
}
}
impl ::std::convert::From<IDirectSoundFXGargle> for ::windows::IUnknown {
fn from(value: IDirectSoundFXGargle) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundFXGargle> for ::windows::IUnknown {
fn from(value: &IDirectSoundFXGargle) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundFXGargle {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundFXGargle {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundFXGargle_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsfxgargle: *mut DSFXGargle,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsfxgargle: *mut DSFXGargle,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundFXI3DL2Reverb(::windows::IUnknown);
impl IDirectSoundFXI3DL2Reverb {}
unsafe impl ::windows::Interface for IDirectSoundFXI3DL2Reverb {
type Vtable = IDirectSoundFXI3DL2Reverb_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1259760234,
3430,
17395,
[128, 227, 238, 98, 128, 222, 225, 164],
);
}
impl IDirectSoundFXI3DL2Reverb {
pub unsafe fn SetAllParameters(
&self,
pcdsfxi3dl2reverb: *mut DSFXI3DL2Reverb,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsfxi3dl2reverb),
)
}
pub unsafe fn GetAllParameters(
&self,
pdsfxi3dl2reverb: *mut DSFXI3DL2Reverb,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsfxi3dl2reverb),
)
}
pub unsafe fn SetPreset(&self, dwpreset: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(dwpreset),
)
}
pub unsafe fn GetPreset(&self, pdwpreset: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwpreset),
)
}
pub unsafe fn SetQuality(&self, lquality: i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(lquality),
)
}
pub unsafe fn GetQuality(&self, plquality: *mut i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(plquality),
)
}
}
impl ::std::convert::From<IDirectSoundFXI3DL2Reverb> for ::windows::IUnknown {
fn from(value: IDirectSoundFXI3DL2Reverb) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundFXI3DL2Reverb> for ::windows::IUnknown {
fn from(value: &IDirectSoundFXI3DL2Reverb) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundFXI3DL2Reverb {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundFXI3DL2Reverb {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundFXI3DL2Reverb_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsfxi3dl2reverb: *mut DSFXI3DL2Reverb,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsfxi3dl2reverb: *mut DSFXI3DL2Reverb,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwpreset: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwpreset: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
lquality: i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
plquality: *mut i32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundFXParamEq(::windows::IUnknown);
impl IDirectSoundFXParamEq {}
unsafe impl ::windows::Interface for IDirectSoundFXParamEq {
type Vtable = IDirectSoundFXParamEq_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3225201150,
65168,
16900,
[128, 120, 130, 51, 76, 209, 119, 218],
);
}
impl IDirectSoundFXParamEq {
pub unsafe fn SetAllParameters(
&self,
pcdsfxparameq: *mut DSFXParamEq,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsfxparameq),
)
}
pub unsafe fn GetAllParameters(
&self,
pdsfxparameq: *mut DSFXParamEq,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsfxparameq),
)
}
}
impl ::std::convert::From<IDirectSoundFXParamEq> for ::windows::IUnknown {
fn from(value: IDirectSoundFXParamEq) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundFXParamEq> for ::windows::IUnknown {
fn from(value: &IDirectSoundFXParamEq) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundFXParamEq {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundFXParamEq {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundFXParamEq_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsfxparameq: *mut DSFXParamEq,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsfxparameq: *mut DSFXParamEq,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundFXWavesReverb(::windows::IUnknown);
impl IDirectSoundFXWavesReverb {}
unsafe impl ::windows::Interface for IDirectSoundFXWavesReverb {
type Vtable = IDirectSoundFXWavesReverb_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1183157306,
3526,
17891,
[183, 96, 212, 238, 241, 108, 179, 37],
);
}
impl IDirectSoundFXWavesReverb {
pub unsafe fn SetAllParameters(
&self,
pcdsfxwavesreverb: *mut DSFXWavesReverb,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdsfxwavesreverb),
)
}
pub unsafe fn GetAllParameters(
&self,
pdsfxwavesreverb: *mut DSFXWavesReverb,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdsfxwavesreverb),
)
}
}
impl ::std::convert::From<IDirectSoundFXWavesReverb> for ::windows::IUnknown {
fn from(value: IDirectSoundFXWavesReverb) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundFXWavesReverb> for ::windows::IUnknown {
fn from(value: &IDirectSoundFXWavesReverb) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundFXWavesReverb {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundFXWavesReverb {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundFXWavesReverb_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdsfxwavesreverb: *mut DSFXWavesReverb,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdsfxwavesreverb: *mut DSFXWavesReverb,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDirectSoundNotify(::windows::IUnknown);
impl IDirectSoundNotify {}
unsafe impl ::windows::Interface for IDirectSoundNotify {
type Vtable = IDirectSoundNotify_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2954954627,
35277,
4560,
[175, 8, 0, 160, 201, 37, 205, 22],
);
}
impl IDirectSoundNotify {
pub unsafe fn SetNotificationPositions(
&self,
dwpositionnotifies: u32,
pcpositionnotifies: *mut DSBPOSITIONNOTIFY,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(dwpositionnotifies),
::std::mem::transmute(pcpositionnotifies),
)
}
}
impl ::std::convert::From<IDirectSoundNotify> for ::windows::IUnknown {
fn from(value: IDirectSoundNotify) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDirectSoundNotify> for ::windows::IUnknown {
fn from(value: &IDirectSoundNotify) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDirectSoundNotify {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDirectSoundNotify {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDirectSoundNotify_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwpositionnotifies: u32,
pcpositionnotifies: *mut DSBPOSITIONNOTIFY,
) -> ::windows::HRESULT,
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MIDILOCALE {
pub ulBank: u32,
pub ulInstrument: u32,
}
impl MIDILOCALE {}
impl ::std::default::Default for MIDILOCALE {
fn default() -> Self {
Self {
ulBank: 0,
ulInstrument: 0,
}
}
}
impl ::std::fmt::Debug for MIDILOCALE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("MIDILOCALE")
.field("ulBank", &format_args!("{:?}", self.ulBank))
.field("ulInstrument", &format_args!("{:?}", self.ulInstrument))
.finish()
}
}
impl ::std::cmp::PartialEq for MIDILOCALE {
fn eq(&self, other: &Self) -> bool {
self.ulBank == other.ulBank && self.ulInstrument == other.ulInstrument
}
}
impl ::std::cmp::Eq for MIDILOCALE {}
unsafe impl ::windows::Abi for MIDILOCALE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct INSTHEADER {
pub cRegions: u32,
pub Locale: MIDILOCALE,
}
impl INSTHEADER {}
impl ::std::default::Default for INSTHEADER {
fn default() -> Self {
Self {
cRegions: 0,
Locale: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for INSTHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("INSTHEADER")
.field("cRegions", &format_args!("{:?}", self.cRegions))
.field("Locale", &format_args!("{:?}", self.Locale))
.finish()
}
}
impl ::std::cmp::PartialEq for INSTHEADER {
fn eq(&self, other: &Self) -> bool {
self.cRegions == other.cRegions && self.Locale == other.Locale
}
}
impl ::std::cmp::Eq for INSTHEADER {}
unsafe impl ::windows::Abi for INSTHEADER {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_AUDIOEFFECTSDISCOVERY(pub i32);
impl KSPROPERTY_AUDIOEFFECTSDISCOVERY {
pub const KSPROPERTY_AUDIOEFFECTSDISCOVERY_EFFECTSLIST: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_AUDIOEFFECTSDISCOVERY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_AUDIOEFFECTSDISCOVERY {
type Abi = Self;
}
pub const KSPROPERTY_SUPPORT_GET: u32 = 1u32;
pub const KSPROPERTY_SUPPORT_SET: u32 = 2u32;
pub const KSPROPSETID_AudioEffectsDiscovery: ::windows::Guid =
::windows::Guid::from_values(
186743410,
5816,
19021,
[189, 237, 249, 214, 187, 237, 205, 143],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSP_PINMODE {
pub PinProperty: super::CoreAudio::KSP_PIN,
pub AudioProcessingMode: ::windows::Guid,
}
impl KSP_PINMODE {}
unsafe impl ::windows::Abi for KSP_PINMODE {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MDEVICECAPSEX {
pub cbSize: u32,
pub pCaps: *mut ::std::ffi::c_void,
}
impl MDEVICECAPSEX {}
unsafe impl ::windows::Abi for MDEVICECAPSEX {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MIDIOPENDESC {
pub hMidi: super::Multimedia::HMIDI,
pub dwCallback: usize,
pub dwInstance: usize,
pub dnDevNode: usize,
pub cIds: u32,
pub rgIds: [super::Multimedia::midiopenstrmid_tag; 1],
}
impl MIDIOPENDESC {}
unsafe impl ::windows::Abi for MIDIOPENDESC {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct POOLCUE {
pub ulOffset: u32,
}
impl POOLCUE {}
impl ::std::default::Default for POOLCUE {
fn default() -> Self {
Self { ulOffset: 0 }
}
}
impl ::std::fmt::Debug for POOLCUE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("POOLCUE")
.field("ulOffset", &format_args!("{:?}", self.ulOffset))
.finish()
}
}
impl ::std::cmp::PartialEq for POOLCUE {
fn eq(&self, other: &Self) -> bool {
self.ulOffset == other.ulOffset
}
}
impl ::std::cmp::Eq for POOLCUE {}
unsafe impl ::windows::Abi for POOLCUE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct POOLTABLE {
pub cbSize: u32,
pub cCues: u32,
}
impl POOLTABLE {}
impl ::std::default::Default for POOLTABLE {
fn default() -> Self {
Self {
cbSize: 0,
cCues: 0,
}
}
}
impl ::std::fmt::Debug for POOLTABLE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("POOLTABLE")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("cCues", &format_args!("{:?}", self.cCues))
.finish()
}
}
impl ::std::cmp::PartialEq for POOLTABLE {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize && self.cCues == other.cCues
}
}
impl ::std::cmp::Eq for POOLTABLE {}
unsafe impl ::windows::Abi for POOLTABLE {
type Abi = Self;
}
pub const POOL_CUE_NULL: i32 = -1i32;
pub const REFRESH_F_LASTBUFFER: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct RGNHEADER {
pub RangeKey: RGNRANGE,
pub RangeVelocity: RGNRANGE,
pub fusOptions: u16,
pub usKeyGroup: u16,
}
impl RGNHEADER {}
impl ::std::default::Default for RGNHEADER {
fn default() -> Self {
Self {
RangeKey: ::std::default::Default::default(),
RangeVelocity: ::std::default::Default::default(),
fusOptions: 0,
usKeyGroup: 0,
}
}
}
impl ::std::fmt::Debug for RGNHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("RGNHEADER")
.field("RangeKey", &format_args!("{:?}", self.RangeKey))
.field("RangeVelocity", &format_args!("{:?}", self.RangeVelocity))
.field("fusOptions", &format_args!("{:?}", self.fusOptions))
.field("usKeyGroup", &format_args!("{:?}", self.usKeyGroup))
.finish()
}
}
impl ::std::cmp::PartialEq for RGNHEADER {
fn eq(&self, other: &Self) -> bool {
self.RangeKey == other.RangeKey
&& self.RangeVelocity == other.RangeVelocity
&& self.fusOptions == other.fusOptions
&& self.usKeyGroup == other.usKeyGroup
}
}
impl ::std::cmp::Eq for RGNHEADER {}
unsafe impl ::windows::Abi for RGNHEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct UNCOMPRESSEDAUDIOFORMAT {
pub guidFormatType: ::windows::Guid,
pub dwSamplesPerFrame: u32,
pub dwBytesPerSampleContainer: u32,
pub dwValidBitsPerSample: u32,
pub fFramesPerSecond: f32,
pub dwChannelMask: u32,
}
impl UNCOMPRESSEDAUDIOFORMAT {}
impl ::std::default::Default for UNCOMPRESSEDAUDIOFORMAT {
fn default() -> Self {
Self {
guidFormatType: ::std::default::Default::default(),
dwSamplesPerFrame: 0,
dwBytesPerSampleContainer: 0,
dwValidBitsPerSample: 0,
fFramesPerSecond: 0.0,
dwChannelMask: 0,
}
}
}
impl ::std::fmt::Debug for UNCOMPRESSEDAUDIOFORMAT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("UNCOMPRESSEDAUDIOFORMAT")
.field("guidFormatType", &format_args!("{:?}", self.guidFormatType))
.field(
"dwSamplesPerFrame",
&format_args!("{:?}", self.dwSamplesPerFrame),
)
.field(
"dwBytesPerSampleContainer",
&format_args!("{:?}", self.dwBytesPerSampleContainer),
)
.field(
"dwValidBitsPerSample",
&format_args!("{:?}", self.dwValidBitsPerSample),
)
.field(
"fFramesPerSecond",
&format_args!("{:?}", self.fFramesPerSecond),
)
.field("dwChannelMask", &format_args!("{:?}", self.dwChannelMask))
.finish()
}
}
impl ::std::cmp::PartialEq for UNCOMPRESSEDAUDIOFORMAT {
fn eq(&self, other: &Self) -> bool {
self.guidFormatType == other.guidFormatType
&& self.dwSamplesPerFrame == other.dwSamplesPerFrame
&& self.dwBytesPerSampleContainer == other.dwBytesPerSampleContainer
&& self.dwValidBitsPerSample == other.dwValidBitsPerSample
&& self.fFramesPerSecond == other.fFramesPerSecond
&& self.dwChannelMask == other.dwChannelMask
}
}
impl ::std::cmp::Eq for UNCOMPRESSEDAUDIOFORMAT {}
unsafe impl ::windows::Abi for UNCOMPRESSEDAUDIOFORMAT {
type Abi = Self;
}
pub const WAVELINK_CHANNEL_LEFT: i32 = 1i32;
pub const WAVELINK_CHANNEL_RIGHT: i32 = 2i32;
pub const WLOOP_TYPE_FORWARD: u32 = 0u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct _DMUS_PORTPARAMS {
pub dwSize: u32,
pub dwValidParams: u32,
pub dwVoices: u32,
pub dwChannelGroups: u32,
pub dwAudioChannels: u32,
pub dwSampleRate: u32,
pub dwEffectFlags: u32,
pub fShare: super::SystemServices::BOOL,
}
impl _DMUS_PORTPARAMS {}
impl ::std::default::Default for _DMUS_PORTPARAMS {
fn default() -> Self {
Self {
dwSize: 0,
dwValidParams: 0,
dwVoices: 0,
dwChannelGroups: 0,
dwAudioChannels: 0,
dwSampleRate: 0,
dwEffectFlags: 0,
fShare: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for _DMUS_PORTPARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_DMUS_PORTPARAMS")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwValidParams", &format_args!("{:?}", self.dwValidParams))
.field("dwVoices", &format_args!("{:?}", self.dwVoices))
.field(
"dwChannelGroups",
&format_args!("{:?}", self.dwChannelGroups),
)
.field(
"dwAudioChannels",
&format_args!("{:?}", self.dwAudioChannels),
)
.field("dwSampleRate", &format_args!("{:?}", self.dwSampleRate))
.field("dwEffectFlags", &format_args!("{:?}", self.dwEffectFlags))
.field("fShare", &format_args!("{:?}", self.fShare))
.finish()
}
}
impl ::std::cmp::PartialEq for _DMUS_PORTPARAMS {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwValidParams == other.dwValidParams
&& self.dwVoices == other.dwVoices
&& self.dwChannelGroups == other.dwChannelGroups
&& self.dwAudioChannels == other.dwAudioChannels
&& self.dwSampleRate == other.dwSampleRate
&& self.dwEffectFlags == other.dwEffectFlags
&& self.fShare == other.fShare
}
}
impl ::std::cmp::Eq for _DMUS_PORTPARAMS {}
unsafe impl ::windows::Abi for _DMUS_PORTPARAMS {
type Abi = Self;
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod Automation {
pub unsafe fn SysAllocStringLen<'a>(
strin: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
ui: u32,
) -> BSTR {
panic!("Unsupported target OS");
}
pub unsafe fn SysStringLen<'a>(pbstr: impl ::windows::IntoParam<'a, BSTR>) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn SysFreeString<'a>(bstrstring: impl ::windows::IntoParam<'a, BSTR>) {
panic!("Unsupported target OS");
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: cmp :: Eq)]
pub struct BSTR(*mut u16);
impl BSTR {
pub fn is_empty(&self) -> bool {
self.0.is_null()
}
fn from_wide(value: &[u16]) -> Self {
if value.len() == 0 {
return Self(::std::ptr::null_mut());
}
unsafe {
SysAllocStringLen(
super::SystemServices::PWSTR(value.as_ptr() as _),
value.len() as u32,
)
}
}
fn as_wide(&self) -> &[u16] {
if self.0.is_null() {
return &[];
}
unsafe {
::std::slice::from_raw_parts(
self.0 as *const u16,
SysStringLen(self) as usize,
)
}
}
}
impl std::convert::From<&str> for BSTR {
fn from(value: &str) -> Self {
let value: ::std::vec::Vec<u16> = value.encode_utf16().collect();
Self::from_wide(&value)
}
}
impl std::convert::From<::std::string::String> for BSTR {
fn from(value: ::std::string::String) -> Self {
value.as_str().into()
}
}
impl ::std::convert::From<&::std::string::String> for BSTR {
fn from(value: &::std::string::String) -> Self {
value.as_str().into()
}
}
impl<'a> ::std::convert::TryFrom<&'a BSTR> for ::std::string::String {
type Error = ::std::string::FromUtf16Error;
fn try_from(value: &BSTR) -> ::std::result::Result<Self, Self::Error> {
::std::string::String::from_utf16(value.as_wide())
}
}
impl ::std::convert::TryFrom<BSTR> for ::std::string::String {
type Error = ::std::string::FromUtf16Error;
fn try_from(value: BSTR) -> ::std::result::Result<Self, Self::Error> {
::std::string::String::try_from(&value)
}
}
impl ::std::default::Default for BSTR {
fn default() -> Self {
Self(::std::ptr::null_mut())
}
}
impl ::std::fmt::Display for BSTR {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
use std::fmt::Write;
for c in ::std::char::decode_utf16(self.as_wide().iter().cloned()) {
f.write_char(c.map_err(|_| ::std::fmt::Error)?)?
}
Ok(())
}
}
impl ::std::fmt::Debug for BSTR {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::std::write!(f, "{}", self)
}
}
impl ::std::cmp::PartialEq for BSTR {
fn eq(&self, other: &Self) -> bool {
self.as_wide() == other.as_wide()
}
}
impl ::std::cmp::PartialEq<::std::string::String> for BSTR {
fn eq(&self, other: &::std::string::String) -> bool {
self == other.as_str()
}
}
impl ::std::cmp::PartialEq<str> for BSTR {
fn eq(&self, other: &str) -> bool {
self == other
}
}
impl ::std::cmp::PartialEq<&str> for BSTR {
fn eq(&self, other: &&str) -> bool {
self.as_wide().iter().copied().eq(other.encode_utf16())
}
}
impl ::std::cmp::PartialEq<BSTR> for &str {
fn eq(&self, other: &BSTR) -> bool {
other == self
}
}
impl ::std::ops::Drop for BSTR {
fn drop(&mut self) {
if !self.0.is_null() {
unsafe {
SysFreeString(self as &Self);
}
}
}
}
unsafe impl ::windows::Abi for BSTR {
type Abi = *mut u16;
fn set_abi(&mut self) -> *mut *mut u16 {
debug_assert!(self.0.is_null());
&mut self.0 as *mut _ as _
}
}
pub type BSTR_abi = *mut u16;
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDispatch(::windows::IUnknown);
impl IDispatch {}
unsafe impl ::windows::Interface for IDispatch {
type Vtable = IDispatch_abi;
const IID: ::windows::Guid =
::windows::Guid::from_values(132096, 0, 0, [192, 0, 0, 0, 0, 0, 0, 70]);
}
impl IDispatch {
pub unsafe fn GetTypeInfoCount(&self, pctinfo: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pctinfo),
)
}
pub unsafe fn GetIDsOfNames(
&self,
riid: *const ::windows::Guid,
rgsznames: *mut super::SystemServices::PWSTR,
cnames: u32,
lcid: u32,
rgdispid: *mut i32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(riid),
::std::mem::transmute(rgsznames),
::std::mem::transmute(cnames),
::std::mem::transmute(lcid),
::std::mem::transmute(rgdispid),
)
}
}
impl ::std::convert::From<IDispatch> for ::windows::IUnknown {
fn from(value: IDispatch) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDispatch> for ::windows::IUnknown {
fn from(value: &IDispatch) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDispatch {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDispatch {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDispatch_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pctinfo: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
riid: *const ::windows::Guid,
rgsznames: *mut super::SystemServices::PWSTR,
cnames: u32,
lcid: u32,
rgdispid: *mut i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SAFEARRAYBOUND {
pub cElements: u32,
pub lLbound: i32,
}
impl SAFEARRAYBOUND {}
impl ::std::default::Default for SAFEARRAYBOUND {
fn default() -> Self {
Self {
cElements: 0,
lLbound: 0,
}
}
}
impl ::std::fmt::Debug for SAFEARRAYBOUND {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("SAFEARRAYBOUND")
.field("cElements", &format_args!("{:?}", self.cElements))
.field("lLbound", &format_args!("{:?}", self.lLbound))
.finish()
}
}
impl ::std::cmp::PartialEq for SAFEARRAYBOUND {
fn eq(&self, other: &Self) -> bool {
self.cElements == other.cElements && self.lLbound == other.lLbound
}
}
impl ::std::cmp::Eq for SAFEARRAYBOUND {}
unsafe impl ::windows::Abi for SAFEARRAYBOUND {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SAFEARRAY {
pub cDims: u16,
pub fFeatures: u16,
pub cbElements: u32,
pub cLocks: u32,
pub pvData: *mut ::std::ffi::c_void,
pub rgsabound: [SAFEARRAYBOUND; 1],
}
impl SAFEARRAY {}
impl ::std::default::Default for SAFEARRAY {
fn default() -> Self {
Self {
cDims: 0,
fFeatures: 0,
cbElements: 0,
cLocks: 0,
pvData: ::std::ptr::null_mut(),
rgsabound: [::std::default::Default::default(); 1],
}
}
}
impl ::std::fmt::Debug for SAFEARRAY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("SAFEARRAY")
.field("cDims", &format_args!("{:?}", self.cDims))
.field("fFeatures", &format_args!("{:?}", self.fFeatures))
.field("cbElements", &format_args!("{:?}", self.cbElements))
.field("cLocks", &format_args!("{:?}", self.cLocks))
.field("pvData", &format_args!("{:?}", self.pvData))
.field("rgsabound", &format_args!("{:?}", self.rgsabound))
.finish()
}
}
impl ::std::cmp::PartialEq for SAFEARRAY {
fn eq(&self, other: &Self) -> bool {
self.cDims == other.cDims
&& self.fFeatures == other.fFeatures
&& self.cbElements == other.cbElements
&& self.cLocks == other.cLocks
&& self.pvData == other.pvData
&& self.rgsabound == other.rgsabound
}
}
impl ::std::cmp::Eq for SAFEARRAY {}
unsafe impl ::windows::Abi for SAFEARRAY {
type Abi = Self;
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod Com {
pub unsafe fn CoTaskMemAlloc(cb: usize) -> *mut ::std::ffi::c_void {
panic!("Unsupported target OS");
}
pub unsafe fn CoTaskMemFree(pv: *mut ::std::ffi::c_void) {
panic!("Unsupported target OS");
}
pub unsafe fn CLSIDFromProgID<'a>(
lpszprogid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
lpclsid: *mut ::windows::Guid,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct COINIT(pub u32);
impl COINIT {
pub const COINIT_APARTMENTTHREADED: Self = Self(2u32);
pub const COINIT_MULTITHREADED: Self = Self(0u32);
pub const COINIT_DISABLE_OLE1DDE: Self = Self(4u32);
pub const COINIT_SPEED_OVER_MEMORY: Self = Self(8u32);
}
impl ::std::convert::From<u32> for COINIT {
fn from(value: u32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for COINIT {
type Abi = Self;
}
impl ::std::ops::BitOr for COINIT {
type Output = Self;
fn bitor(self, rhs: Self) -> Self {
Self(self.0 | rhs.0)
}
}
impl ::std::ops::BitAnd for COINIT {
type Output = Self;
fn bitand(self, rhs: Self) -> Self {
Self(self.0 & rhs.0)
}
}
impl ::std::ops::BitOrAssign for COINIT {
fn bitor_assign(&mut self, rhs: Self) {
self.0.bitor_assign(rhs.0)
}
}
impl ::std::ops::BitAndAssign for COINIT {
fn bitand_assign(&mut self, rhs: Self) {
self.0.bitand_assign(rhs.0)
}
}
pub unsafe fn CoInitializeEx(
pvreserved: *mut ::std::ffi::c_void,
dwcoinit: COINIT,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct CLSCTX(pub u32);
impl CLSCTX {
pub const CLSCTX_INPROC_SERVER: Self = Self(1u32);
pub const CLSCTX_INPROC_HANDLER: Self = Self(2u32);
pub const CLSCTX_LOCAL_SERVER: Self = Self(4u32);
pub const CLSCTX_INPROC_SERVER16: Self = Self(8u32);
pub const CLSCTX_REMOTE_SERVER: Self = Self(16u32);
pub const CLSCTX_INPROC_HANDLER16: Self = Self(32u32);
pub const CLSCTX_RESERVED1: Self = Self(64u32);
pub const CLSCTX_RESERVED2: Self = Self(128u32);
pub const CLSCTX_RESERVED3: Self = Self(256u32);
pub const CLSCTX_RESERVED4: Self = Self(512u32);
pub const CLSCTX_NO_CODE_DOWNLOAD: Self = Self(1024u32);
pub const CLSCTX_RESERVED5: Self = Self(2048u32);
pub const CLSCTX_NO_CUSTOM_MARSHAL: Self = Self(4096u32);
pub const CLSCTX_ENABLE_CODE_DOWNLOAD: Self = Self(8192u32);
pub const CLSCTX_NO_FAILURE_LOG: Self = Self(16384u32);
pub const CLSCTX_DISABLE_AAA: Self = Self(32768u32);
pub const CLSCTX_ENABLE_AAA: Self = Self(65536u32);
pub const CLSCTX_FROM_DEFAULT_CONTEXT: Self = Self(131072u32);
pub const CLSCTX_ACTIVATE_X86_SERVER: Self = Self(262144u32);
pub const CLSCTX_ACTIVATE_32_BIT_SERVER: Self = Self(262144u32);
pub const CLSCTX_ACTIVATE_64_BIT_SERVER: Self = Self(524288u32);
pub const CLSCTX_ENABLE_CLOAKING: Self = Self(1048576u32);
pub const CLSCTX_APPCONTAINER: Self = Self(4194304u32);
pub const CLSCTX_ACTIVATE_AAA_AS_IU: Self = Self(8388608u32);
pub const CLSCTX_RESERVED6: Self = Self(16777216u32);
pub const CLSCTX_ACTIVATE_ARM32_SERVER: Self = Self(33554432u32);
pub const CLSCTX_PS_DLL: Self = Self(2147483648u32);
pub const CLSCTX_ALL: Self = Self(23u32);
pub const CLSCTX_SERVER: Self = Self(21u32);
}
impl ::std::convert::From<u32> for CLSCTX {
fn from(value: u32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for CLSCTX {
type Abi = Self;
}
impl ::std::ops::BitOr for CLSCTX {
type Output = Self;
fn bitor(self, rhs: Self) -> Self {
Self(self.0 | rhs.0)
}
}
impl ::std::ops::BitAnd for CLSCTX {
type Output = Self;
fn bitand(self, rhs: Self) -> Self {
Self(self.0 & rhs.0)
}
}
impl ::std::ops::BitOrAssign for CLSCTX {
fn bitor_assign(&mut self, rhs: Self) {
self.0.bitor_assign(rhs.0)
}
}
impl ::std::ops::BitAndAssign for CLSCTX {
fn bitand_assign(&mut self, rhs: Self) {
self.0.bitand_assign(rhs.0)
}
}
pub unsafe fn CoCreateInstance<'a>(
rclsid: *const ::windows::Guid,
punkouter: impl ::windows::IntoParam<'a, ::windows::IUnknown>,
dwclscontext: CLSCTX,
riid: *const ::windows::Guid,
ppv: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod CoreAudio {
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IMMDeviceCollection(::windows::IUnknown);
impl IMMDeviceCollection {}
unsafe impl ::windows::Interface for IMMDeviceCollection {
type Vtable = IMMDeviceCollection_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
198681022,
31258,
17627,
[131, 151, 204, 83, 146, 56, 123, 94],
);
}
impl IMMDeviceCollection {
pub unsafe fn GetCount(&self, pcdevices: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcdevices),
)
}
pub unsafe fn Item(
&self,
ndevice: u32,
ppdevice: *mut ::std::option::Option<IMMDevice>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(ndevice),
::std::mem::transmute(ppdevice),
)
}
}
impl ::std::convert::From<IMMDeviceCollection> for ::windows::IUnknown {
fn from(value: IMMDeviceCollection) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IMMDeviceCollection> for ::windows::IUnknown {
fn from(value: &IMMDeviceCollection) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IMMDeviceCollection {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IMMDeviceCollection {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMMDeviceCollection_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcdevices: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ndevice: u32,
ppdevice: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSIDENTIFIER {
pub Anonymous: KSIDENTIFIER_0,
}
impl KSIDENTIFIER {}
unsafe impl ::windows::Abi for KSIDENTIFIER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSIDENTIFIER_0 {
pub Anonymous: KSIDENTIFIER_0_0,
pub Alignment: i64,
}
impl KSIDENTIFIER_0 {}
unsafe impl ::windows::Abi for KSIDENTIFIER_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSIDENTIFIER_0_0 {
pub Set: ::windows::Guid,
pub Id: u32,
pub Flags: u32,
}
impl KSIDENTIFIER_0_0 {}
impl ::std::default::Default for KSIDENTIFIER_0_0 {
fn default() -> Self {
Self {
Set: ::std::default::Default::default(),
Id: 0,
Flags: 0,
}
}
}
impl ::std::fmt::Debug for KSIDENTIFIER_0_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous_e__Struct")
.field("Set", &format_args!("{:?}", self.Set))
.field("Id", &format_args!("{:?}", self.Id))
.field("Flags", &format_args!("{:?}", self.Flags))
.finish()
}
}
impl ::std::cmp::PartialEq for KSIDENTIFIER_0_0 {
fn eq(&self, other: &Self) -> bool {
self.Set == other.Set && self.Id == other.Id && self.Flags == other.Flags
}
}
impl ::std::cmp::Eq for KSIDENTIFIER_0_0 {}
unsafe impl ::windows::Abi for KSIDENTIFIER_0_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSP_PIN {
pub Property: KSIDENTIFIER,
pub PinId: u32,
pub Anonymous: KSP_PIN_0,
}
impl KSP_PIN {}
unsafe impl ::windows::Abi for KSP_PIN {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSP_PIN_0 {
pub Reserved: u32,
pub Flags: u32,
}
impl KSP_PIN_0 {}
unsafe impl ::windows::Abi for KSP_PIN_0 {
type Abi = Self;
}
pub const AEC_MODE_FULL_DUPLEX: u32 = 2u32;
pub const AEC_MODE_HALF_DUPLEX: u32 = 1u32;
pub const AEC_MODE_PASS_THROUGH: u32 = 0u32;
pub const AEC_STATUS_FD_CURRENTLY_CONVERGED: u32 = 8u32;
pub const AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED: u32 = 1u32;
pub const AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED: u32 = 2u32;
pub const AEC_STATUS_FD_HISTORY_UNINITIALIZED: u32 = 0u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AMBISONICS_CHANNEL_ORDERING(pub i32);
impl AMBISONICS_CHANNEL_ORDERING {
pub const AMBISONICS_CHANNEL_ORDERING_ACN: Self = Self(0i32);
}
impl ::std::convert::From<i32> for AMBISONICS_CHANNEL_ORDERING {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AMBISONICS_CHANNEL_ORDERING {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AMBISONICS_NORMALIZATION(pub i32);
impl AMBISONICS_NORMALIZATION {
pub const AMBISONICS_NORMALIZATION_SN3D: Self = Self(0i32);
pub const AMBISONICS_NORMALIZATION_N3D: Self = Self(1i32);
}
impl ::std::convert::From<i32> for AMBISONICS_NORMALIZATION {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AMBISONICS_NORMALIZATION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AMBISONICS_TYPE(pub i32);
impl AMBISONICS_TYPE {
pub const AMBISONICS_TYPE_FULL3D: Self = Self(0i32);
}
impl ::std::convert::From<i32> for AMBISONICS_TYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AMBISONICS_TYPE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct AMBISONICS_PARAMS {
pub u32Size: u32,
pub u32Version: u32,
pub u32Type: AMBISONICS_TYPE,
pub u32ChannelOrdering: AMBISONICS_CHANNEL_ORDERING,
pub u32Normalization: AMBISONICS_NORMALIZATION,
pub u32Order: u32,
pub u32NumChannels: u32,
pub pu32ChannelMap: *mut u32,
}
impl AMBISONICS_PARAMS {}
impl ::std::default::Default for AMBISONICS_PARAMS {
fn default() -> Self {
Self {
u32Size: 0,
u32Version: 0,
u32Type: ::std::default::Default::default(),
u32ChannelOrdering: ::std::default::Default::default(),
u32Normalization: ::std::default::Default::default(),
u32Order: 0,
u32NumChannels: 0,
pu32ChannelMap: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for AMBISONICS_PARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("AMBISONICS_PARAMS")
.field("u32Size", &format_args!("{:?}", self.u32Size))
.field("u32Version", &format_args!("{:?}", self.u32Version))
.field("u32Type", &format_args!("{:?}", self.u32Type))
.field(
"u32ChannelOrdering",
&format_args!("{:?}", self.u32ChannelOrdering),
)
.field(
"u32Normalization",
&format_args!("{:?}", self.u32Normalization),
)
.field("u32Order", &format_args!("{:?}", self.u32Order))
.field("u32NumChannels", &format_args!("{:?}", self.u32NumChannels))
.field("pu32ChannelMap", &format_args!("{:?}", self.pu32ChannelMap))
.finish()
}
}
impl ::std::cmp::PartialEq for AMBISONICS_PARAMS {
fn eq(&self, other: &Self) -> bool {
self.u32Size == other.u32Size
&& self.u32Version == other.u32Version
&& self.u32Type == other.u32Type
&& self.u32ChannelOrdering == other.u32ChannelOrdering
&& self.u32Normalization == other.u32Normalization
&& self.u32Order == other.u32Order
&& self.u32NumChannels == other.u32NumChannels
&& self.pu32ChannelMap == other.pu32ChannelMap
}
}
impl ::std::cmp::Eq for AMBISONICS_PARAMS {}
unsafe impl ::windows::Abi for AMBISONICS_PARAMS {
type Abi = Self;
}
pub const AMBISONICS_PARAM_VERSION_1: u32 = 1u32;
pub const APO_CLASS_UUID: ::windows::Guid = ::windows::Guid::from_values(
1502215400,
40144,
18045,
[138, 106, 84, 25, 227, 21, 41, 212],
);
pub const AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE: u32 = 536870912u32;
pub const AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED: u32 = 1073741824u32;
pub const AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED: u32 = 268435456u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AUDCLNT_SHAREMODE(pub i32);
impl AUDCLNT_SHAREMODE {
pub const AUDCLNT_SHAREMODE_SHARED: Self = Self(0i32);
pub const AUDCLNT_SHAREMODE_EXCLUSIVE: Self = Self(1i32);
}
impl ::std::convert::From<i32> for AUDCLNT_SHAREMODE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AUDCLNT_SHAREMODE {
type Abi = Self;
}
pub const AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM: u32 = 2147483648u32;
pub const AUDCLNT_STREAMFLAGS_CROSSPROCESS: u32 = 65536u32;
pub const AUDCLNT_STREAMFLAGS_EVENTCALLBACK: u32 = 262144u32;
pub const AUDCLNT_STREAMFLAGS_LOOPBACK: u32 = 131072u32;
pub const AUDCLNT_STREAMFLAGS_NOPERSIST: u32 = 524288u32;
pub const AUDCLNT_STREAMFLAGS_RATEADJUST: u32 = 1048576u32;
pub const AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY: u32 = 134217728u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AUDCLNT_STREAMOPTIONS(pub u32);
impl AUDCLNT_STREAMOPTIONS {
pub const AUDCLNT_STREAMOPTIONS_NONE: Self = Self(0u32);
pub const AUDCLNT_STREAMOPTIONS_RAW: Self = Self(1u32);
pub const AUDCLNT_STREAMOPTIONS_MATCH_FORMAT: Self = Self(2u32);
pub const AUDCLNT_STREAMOPTIONS_AMBISONICS: Self = Self(4u32);
}
impl ::std::convert::From<u32> for AUDCLNT_STREAMOPTIONS {
fn from(value: u32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AUDCLNT_STREAMOPTIONS {
type Abi = Self;
}
impl ::std::ops::BitOr for AUDCLNT_STREAMOPTIONS {
type Output = Self;
fn bitor(self, rhs: Self) -> Self {
Self(self.0 | rhs.0)
}
}
impl ::std::ops::BitAnd for AUDCLNT_STREAMOPTIONS {
type Output = Self;
fn bitand(self, rhs: Self) -> Self {
Self(self.0 & rhs.0)
}
}
impl ::std::ops::BitOrAssign for AUDCLNT_STREAMOPTIONS {
fn bitor_assign(&mut self, rhs: Self) {
self.0.bitor_assign(rhs.0)
}
}
impl ::std::ops::BitAndAssign for AUDCLNT_STREAMOPTIONS {
fn bitand_assign(&mut self, rhs: Self) {
self.0.bitand_assign(rhs.0)
}
}
pub const AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ: u32 = 1u32;
pub const AUDIOENDPOINT_CLASS_UUID: ::windows::Guid = ::windows::Guid::from_values(
3244708412,
65036,
19092,
[165, 134, 241, 168, 12, 251, 191, 62],
);
pub const AUDIOMODULE_MAX_DATA_SIZE: u32 = 64000u32;
pub const AUDIOMODULE_MAX_NAME_CCH_SIZE: u32 = 128u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AUDIOPOSTURE_MEMBER_FLAGS(pub i32);
impl AUDIOPOSTURE_MEMBER_FLAGS {
pub const AUDIOPOSTURE_MEMBER_FLAGS_HINGEANGLE: Self = Self(1i32);
pub const AUDIOPOSTURE_MEMBER_FLAGS_PANELSTATE: Self = Self(2i32);
}
impl ::std::convert::From<i32> for AUDIOPOSTURE_MEMBER_FLAGS {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AUDIOPOSTURE_MEMBER_FLAGS {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AUDIOPOSTURE_PANEL_ORIENTATION(pub i32);
impl AUDIOPOSTURE_PANEL_ORIENTATION {
pub const AUDIOPOSTURE_PANEL_ORIENTATION_NOTROTATED: Self = Self(0i32);
pub const AUDIOPOSTURE_PANEL_ORIENTATION_ROTATED90DEGREESCOUNTERCLOCKWISE: Self =
Self(1i32);
pub const AUDIOPOSTURE_PANEL_ORIENTATION_ROTATED180DEGREESCOUNTERCLOCKWISE: Self =
Self(2i32);
pub const AUDIOPOSTURE_PANEL_ORIENTATION_ROTATED270DEGREESCOUNTERCLOCKWISE: Self =
Self(3i32);
pub const AUDIOPOSTURE_PANEL_ORIENTATION_FACEUP: Self = Self(4i32);
pub const AUDIOPOSTURE_PANEL_ORIENTATION_FACEDOWN: Self = Self(5i32);
pub const AUDIOPOSTURE_PANEL_ORIENTATION_COUNT: Self = Self(6i32);
}
impl ::std::convert::From<i32> for AUDIOPOSTURE_PANEL_ORIENTATION {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AUDIOPOSTURE_PANEL_ORIENTATION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AUDIOPOSTURE_PANEL_POWER(pub i32);
impl AUDIOPOSTURE_PANEL_POWER {
pub const AUDIOPOSTURE_PANEL_POWER_OFF: Self = Self(0i32);
pub const AUDIOPOSTURE_PANEL_POWER_ON: Self = Self(1i32);
}
impl ::std::convert::From<i32> for AUDIOPOSTURE_PANEL_POWER {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AUDIOPOSTURE_PANEL_POWER {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AUDIO_CURVE_TYPE(pub i32);
impl AUDIO_CURVE_TYPE {
pub const AUDIO_CURVE_TYPE_NONE: Self = Self(0i32);
pub const AUDIO_CURVE_TYPE_WINDOWS_FADE: Self = Self(1i32);
}
impl ::std::convert::From<i32> for AUDIO_CURVE_TYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AUDIO_CURVE_TYPE {
type Abi = Self;
}
pub const AUDIO_EFFECT_TYPE_ACOUSTIC_ECHO_CANCELLATION: ::windows::Guid =
::windows::Guid::from_values(
1868869054,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_AUTOMATIC_GAIN_CONTROL: ::windows::Guid =
::windows::Guid::from_values(
1868869056,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_BASS_BOOST: ::windows::Guid = ::windows::Guid::from_values(
1868869061,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_BASS_MANAGEMENT: ::windows::Guid =
::windows::Guid::from_values(
1868869066,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_BEAMFORMING: ::windows::Guid = ::windows::Guid::from_values(
1868869057,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_CONSTANT_TONE_REMOVAL: ::windows::Guid =
::windows::Guid::from_values(
1868869058,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_DYNAMIC_RANGE_COMPRESSION: ::windows::Guid =
::windows::Guid::from_values(
1868869070,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_ENVIRONMENTAL_EFFECTS: ::windows::Guid =
::windows::Guid::from_values(
1868869067,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_EQUALIZER: ::windows::Guid = ::windows::Guid::from_values(
1868869059,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_LOUDNESS_EQUALIZER: ::windows::Guid =
::windows::Guid::from_values(
1868869060,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_NOISE_SUPPRESSION: ::windows::Guid =
::windows::Guid::from_values(
1868869055,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_ROOM_CORRECTION: ::windows::Guid =
::windows::Guid::from_values(
1868869065,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_SPEAKER_COMPENSATION: ::windows::Guid =
::windows::Guid::from_values(
1868869069,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_SPEAKER_FILL: ::windows::Guid =
::windows::Guid::from_values(
1868869064,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_SPEAKER_PROTECTION: ::windows::Guid =
::windows::Guid::from_values(
1868869068,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_VIRTUAL_HEADPHONES: ::windows::Guid =
::windows::Guid::from_values(
1868869063,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
pub const AUDIO_EFFECT_TYPE_VIRTUAL_SURROUND: ::windows::Guid =
::windows::Guid::from_values(
1868869062,
33297,
4578,
[140, 112, 44, 39, 215, 240, 1, 250],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct EndpointConnectorType(pub i32);
impl EndpointConnectorType {
pub const eHostProcessConnector: Self = Self(0i32);
pub const eOffloadConnector: Self = Self(1i32);
pub const eLoopbackConnector: Self = Self(2i32);
pub const eKeywordDetectorConnector: Self = Self(3i32);
pub const eConnectorCount: Self = Self(4i32);
}
impl ::std::convert::From<i32> for EndpointConnectorType {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for EndpointConnectorType {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct AUDIO_ENDPOINT_SHARED_CREATE_PARAMS {
pub u32Size: u32,
pub u32TSSessionId: u32,
pub targetEndpointConnectorType: EndpointConnectorType,
pub wfxDeviceFormat: super::Multimedia::WAVEFORMATEX,
}
impl AUDIO_ENDPOINT_SHARED_CREATE_PARAMS {}
unsafe impl ::windows::Abi for AUDIO_ENDPOINT_SHARED_CREATE_PARAMS {
type Abi = Self;
}
pub const AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS: ::windows::Guid =
::windows::Guid::from_values(
2559906611,
47565,
18609,
[160, 163, 255, 64, 104, 45, 115, 247],
);
pub const AUDIO_SIGNALPROCESSINGMODE_DEFAULT: ::windows::Guid =
::windows::Guid::from_values(
3247320958,
37693,
18789,
[183, 209, 30, 239, 34, 141, 42, 243],
);
pub const AUDIO_SIGNALPROCESSINGMODE_MEDIA: ::windows::Guid =
::windows::Guid::from_values(
1199571022,
28979,
16856,
[140, 116, 102, 13, 173, 210, 192, 238],
);
pub const AUDIO_SIGNALPROCESSINGMODE_MOVIE: ::windows::Guid =
::windows::Guid::from_values(
2993679117,
60564,
18300,
[148, 148, 209, 171, 142, 117, 63, 110],
);
pub const AUDIO_SIGNALPROCESSINGMODE_NOTIFICATION: ::windows::Guid =
::windows::Guid::from_values(
2633148171,
62327,
16443,
[189, 107, 54, 8, 99, 224, 53, 92],
);
pub const AUDIO_SIGNALPROCESSINGMODE_RAW: ::windows::Guid =
::windows::Guid::from_values(
2660297248,
46227,
20433,
[161, 168, 126, 19, 97, 169, 86, 207],
);
pub const AUDIO_SIGNALPROCESSINGMODE_SPEECH: ::windows::Guid =
::windows::Guid::from_values(
4229758107,
47574,
19706,
[181, 224, 75, 178, 22, 104, 120, 178],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AUDIO_STREAM_CATEGORY(pub i32);
impl AUDIO_STREAM_CATEGORY {
pub const AudioCategory_Other: Self = Self(0i32);
pub const AudioCategory_ForegroundOnlyMedia: Self = Self(1i32);
pub const AudioCategory_Communications: Self = Self(3i32);
pub const AudioCategory_Alerts: Self = Self(4i32);
pub const AudioCategory_SoundEffects: Self = Self(5i32);
pub const AudioCategory_GameEffects: Self = Self(6i32);
pub const AudioCategory_GameMedia: Self = Self(7i32);
pub const AudioCategory_GameChat: Self = Self(8i32);
pub const AudioCategory_Speech: Self = Self(9i32);
pub const AudioCategory_Movie: Self = Self(10i32);
pub const AudioCategory_Media: Self = Self(11i32);
}
impl ::std::convert::From<i32> for AUDIO_STREAM_CATEGORY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AUDIO_STREAM_CATEGORY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct AUDIO_VOLUME_NOTIFICATION_DATA {
pub guidEventContext: ::windows::Guid,
pub bMuted: super::SystemServices::BOOL,
pub fMasterVolume: f32,
pub nChannels: u32,
pub afChannelVolumes: [f32; 1],
}
impl AUDIO_VOLUME_NOTIFICATION_DATA {}
impl ::std::default::Default for AUDIO_VOLUME_NOTIFICATION_DATA {
fn default() -> Self {
Self {
guidEventContext: ::std::default::Default::default(),
bMuted: ::std::default::Default::default(),
fMasterVolume: 0.0,
nChannels: 0,
afChannelVolumes: [0.0; 1],
}
}
}
impl ::std::fmt::Debug for AUDIO_VOLUME_NOTIFICATION_DATA {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("AUDIO_VOLUME_NOTIFICATION_DATA")
.field(
"guidEventContext",
&format_args!("{:?}", self.guidEventContext),
)
.field("bMuted", &format_args!("{:?}", self.bMuted))
.field("fMasterVolume", &format_args!("{:?}", self.fMasterVolume))
.field("nChannels", &format_args!("{:?}", self.nChannels))
.field(
"afChannelVolumes",
&format_args!("{:?}", self.afChannelVolumes),
)
.finish()
}
}
impl ::std::cmp::PartialEq for AUDIO_VOLUME_NOTIFICATION_DATA {
fn eq(&self, other: &Self) -> bool {
self.guidEventContext == other.guidEventContext
&& self.bMuted == other.bMuted
&& self.fMasterVolume == other.fMasterVolume
&& self.nChannels == other.nChannels
&& self.afChannelVolumes == other.afChannelVolumes
}
}
impl ::std::cmp::Eq for AUDIO_VOLUME_NOTIFICATION_DATA {}
unsafe impl ::windows::Abi for AUDIO_VOLUME_NOTIFICATION_DATA {
type Abi = Self;
}
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IActivateAudioInterfaceCompletionHandler(::windows::IUnknown);
impl IActivateAudioInterfaceCompletionHandler {}
unsafe impl ::windows::Interface for IActivateAudioInterfaceCompletionHandler {
type Vtable = IActivateAudioInterfaceCompletionHandler_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1104759211,
39010,
17482,
[128, 246, 194, 97, 51, 77, 165, 235],
);
}
impl IActivateAudioInterfaceCompletionHandler {
pub unsafe fn ActivateCompleted<'a>(
&self,
activateoperation: impl ::windows::IntoParam<
'a,
IActivateAudioInterfaceAsyncOperation,
>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
activateoperation.into_param().abi(),
)
}
}
impl ::std::convert::From<IActivateAudioInterfaceCompletionHandler> for ::windows::IUnknown {
fn from(value: IActivateAudioInterfaceCompletionHandler) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IActivateAudioInterfaceCompletionHandler> for ::windows::IUnknown {
fn from(value: &IActivateAudioInterfaceCompletionHandler) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown>
for IActivateAudioInterfaceCompletionHandler
{
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown>
for &'a IActivateAudioInterfaceCompletionHandler
{
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IActivateAudioInterfaceCompletionHandler_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
activateoperation: ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IActivateAudioInterfaceAsyncOperation(::windows::IUnknown);
impl IActivateAudioInterfaceAsyncOperation {}
unsafe impl ::windows::Interface for IActivateAudioInterfaceAsyncOperation {
type Vtable = IActivateAudioInterfaceAsyncOperation_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1923231096,
52708,
17181,
[184, 204, 132, 58, 113, 25, 155, 109],
);
}
impl IActivateAudioInterfaceAsyncOperation {
pub unsafe fn GetActivateResult(
&self,
activateresult: *mut ::windows::HRESULT,
activatedinterface: *mut ::std::option::Option<::windows::IUnknown>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(activateresult),
::std::mem::transmute(activatedinterface),
)
}
}
impl ::std::convert::From<IActivateAudioInterfaceAsyncOperation> for ::windows::IUnknown {
fn from(value: IActivateAudioInterfaceAsyncOperation) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IActivateAudioInterfaceAsyncOperation> for ::windows::IUnknown {
fn from(value: &IActivateAudioInterfaceAsyncOperation) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IActivateAudioInterfaceAsyncOperation {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown>
for &'a IActivateAudioInterfaceAsyncOperation
{
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IActivateAudioInterfaceAsyncOperation_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
activateresult: *mut ::windows::HRESULT,
activatedinterface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
pub unsafe fn ActivateAudioInterfaceAsync<'a>(
deviceinterfacepath: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
riid: *const ::windows::Guid,
activationparams: *mut super::StructuredStorage::PROPVARIANT,
completionhandler: impl ::windows::IntoParam<
'a,
IActivateAudioInterfaceCompletionHandler,
>,
activationoperation: *mut ::std::option::Option<
IActivateAudioInterfaceAsyncOperation,
>,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
pub struct Apis {}
impl Apis {}
impl ::windows::RuntimeName for Apis {
const NAME: &'static str = "Windows.Win32.CoreAudio.Apis";
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct AudioClient3ActivationParams {
pub tracingContextId: ::windows::Guid,
}
impl AudioClient3ActivationParams {}
impl ::std::default::Default for AudioClient3ActivationParams {
fn default() -> Self {
Self {
tracingContextId: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for AudioClient3ActivationParams {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("AudioClient3ActivationParams")
.field(
"tracingContextId",
&format_args!("{:?}", self.tracingContextId),
)
.finish()
}
}
impl ::std::cmp::PartialEq for AudioClient3ActivationParams {
fn eq(&self, other: &Self) -> bool {
self.tracingContextId == other.tracingContextId
}
}
impl ::std::cmp::Eq for AudioClient3ActivationParams {}
unsafe impl ::windows::Abi for AudioClient3ActivationParams {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct AudioClientProperties {
pub cbSize: u32,
pub bIsOffload: super::SystemServices::BOOL,
pub eCategory: AUDIO_STREAM_CATEGORY,
pub Options: AUDCLNT_STREAMOPTIONS,
}
impl AudioClientProperties {}
impl ::std::default::Default for AudioClientProperties {
fn default() -> Self {
Self {
cbSize: 0,
bIsOffload: ::std::default::Default::default(),
eCategory: ::std::default::Default::default(),
Options: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for AudioClientProperties {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("AudioClientProperties")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("bIsOffload", &format_args!("{:?}", self.bIsOffload))
.field("eCategory", &format_args!("{:?}", self.eCategory))
.field("Options", &format_args!("{:?}", self.Options))
.finish()
}
}
impl ::std::cmp::PartialEq for AudioClientProperties {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize
&& self.bIsOffload == other.bIsOffload
&& self.eCategory == other.eCategory
&& self.Options == other.Options
}
}
impl ::std::cmp::Eq for AudioClientProperties {}
unsafe impl ::windows::Abi for AudioClientProperties {
type Abi = Self;
}
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IMMDevice(::windows::IUnknown);
impl IMMDevice {}
unsafe impl ::windows::Interface for IMMDevice {
type Vtable = IMMDevice_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3597010495,
5511,
20035,
[129, 241, 185, 72, 232, 7, 54, 63],
);
}
impl IMMDevice {
pub unsafe fn Activate(
&self,
iid: *const ::windows::Guid,
dwclsctx: u32,
pactivationparams: *mut super::StructuredStorage::PROPVARIANT,
ppinterface: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(iid),
::std::mem::transmute(dwclsctx),
::std::mem::transmute(pactivationparams),
::std::mem::transmute(ppinterface),
)
}
pub unsafe fn OpenPropertyStore(
&self,
stgmaccess: u32,
ppproperties: *mut ::std::option::Option<super::Audio::IPropertyStore>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(stgmaccess),
::std::mem::transmute(ppproperties),
)
}
pub unsafe fn GetId(
&self,
ppstrid: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(ppstrid),
)
}
pub unsafe fn GetState(&self, pdwstate: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwstate),
)
}
}
impl ::std::convert::From<IMMDevice> for ::windows::IUnknown {
fn from(value: IMMDevice) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IMMDevice> for ::windows::IUnknown {
fn from(value: &IMMDevice) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IMMDevice {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IMMDevice {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMMDevice_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: *const ::windows::Guid,
dwclsctx: u32,
pactivationparams: *mut super::StructuredStorage::PROPVARIANT_abi,
ppinterface: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
stgmaccess: u32,
ppproperties: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppstrid: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwstate: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(C)]
#[derive(:: std :: clone :: Clone)]
pub struct AudioExtensionParams {
pub AddPageParam: super::WindowsAndMessaging::LPARAM,
pub pEndpoint: ::std::option::Option<IMMDevice>,
pub pPnpInterface: ::std::option::Option<IMMDevice>,
pub pPnpDevnode: ::std::option::Option<IMMDevice>,
}
impl AudioExtensionParams {}
impl ::std::default::Default for AudioExtensionParams {
fn default() -> Self {
Self {
AddPageParam: ::std::default::Default::default(),
pEndpoint: ::std::default::Default::default(),
pPnpInterface: ::std::default::Default::default(),
pPnpDevnode: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for AudioExtensionParams {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("AudioExtensionParams")
.field("AddPageParam", &format_args!("{:?}", self.AddPageParam))
.field("pEndpoint", &format_args!("{:?}", self.pEndpoint))
.field("pPnpInterface", &format_args!("{:?}", self.pPnpInterface))
.field("pPnpDevnode", &format_args!("{:?}", self.pPnpDevnode))
.finish()
}
}
impl ::std::cmp::PartialEq for AudioExtensionParams {
fn eq(&self, other: &Self) -> bool {
self.AddPageParam == other.AddPageParam
&& self.pEndpoint == other.pEndpoint
&& self.pPnpInterface == other.pPnpInterface
&& self.pPnpDevnode == other.pPnpDevnode
}
}
impl ::std::cmp::Eq for AudioExtensionParams {}
#[repr(C)]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct AudioExtensionParams_abi {
pub AddPageParam: super::WindowsAndMessaging::LPARAM,
pub pEndpoint: ::windows::RawPtr,
pub pPnpInterface: ::windows::RawPtr,
pub pPnpDevnode: ::windows::RawPtr,
}
unsafe impl ::windows::Abi for AudioExtensionParams {
type Abi = AudioExtensionParams_abi;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AudioObjectType(pub u32);
impl AudioObjectType {
pub const AudioObjectType_None: Self = Self(0u32);
pub const AudioObjectType_Dynamic: Self = Self(1u32);
pub const AudioObjectType_FrontLeft: Self = Self(2u32);
pub const AudioObjectType_FrontRight: Self = Self(4u32);
pub const AudioObjectType_FrontCenter: Self = Self(8u32);
pub const AudioObjectType_LowFrequency: Self = Self(16u32);
pub const AudioObjectType_SideLeft: Self = Self(32u32);
pub const AudioObjectType_SideRight: Self = Self(64u32);
pub const AudioObjectType_BackLeft: Self = Self(128u32);
pub const AudioObjectType_BackRight: Self = Self(256u32);
pub const AudioObjectType_TopFrontLeft: Self = Self(512u32);
pub const AudioObjectType_TopFrontRight: Self = Self(1024u32);
pub const AudioObjectType_TopBackLeft: Self = Self(2048u32);
pub const AudioObjectType_TopBackRight: Self = Self(4096u32);
pub const AudioObjectType_BottomFrontLeft: Self = Self(8192u32);
pub const AudioObjectType_BottomFrontRight: Self = Self(16384u32);
pub const AudioObjectType_BottomBackLeft: Self = Self(32768u32);
pub const AudioObjectType_BottomBackRight: Self = Self(65536u32);
pub const AudioObjectType_BackCenter: Self = Self(131072u32);
}
impl ::std::convert::From<u32> for AudioObjectType {
fn from(value: u32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AudioObjectType {
type Abi = Self;
}
impl ::std::ops::BitOr for AudioObjectType {
type Output = Self;
fn bitor(self, rhs: Self) -> Self {
Self(self.0 | rhs.0)
}
}
impl ::std::ops::BitAnd for AudioObjectType {
type Output = Self;
fn bitand(self, rhs: Self) -> Self {
Self(self.0 & rhs.0)
}
}
impl ::std::ops::BitOrAssign for AudioObjectType {
fn bitor_assign(&mut self, rhs: Self) {
self.0.bitor_assign(rhs.0)
}
}
impl ::std::ops::BitAndAssign for AudioObjectType {
fn bitand_assign(&mut self, rhs: Self) {
self.0.bitand_assign(rhs.0)
}
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AudioSessionDisconnectReason(pub i32);
impl AudioSessionDisconnectReason {
pub const DisconnectReasonDeviceRemoval: Self = Self(0i32);
pub const DisconnectReasonServerShutdown: Self = Self(1i32);
pub const DisconnectReasonFormatChanged: Self = Self(2i32);
pub const DisconnectReasonSessionLogoff: Self = Self(3i32);
pub const DisconnectReasonSessionDisconnected: Self = Self(4i32);
pub const DisconnectReasonExclusiveModeOverride: Self = Self(5i32);
}
impl ::std::convert::From<i32> for AudioSessionDisconnectReason {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AudioSessionDisconnectReason {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct AudioSessionState(pub i32);
impl AudioSessionState {
pub const AudioSessionStateInactive: Self = Self(0i32);
pub const AudioSessionStateActive: Self = Self(1i32);
pub const AudioSessionStateExpired: Self = Self(2i32);
}
impl ::std::convert::From<i32> for AudioSessionState {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for AudioSessionState {
type Abi = Self;
}
pub const BLUETOOTHLE_MIDI_SERVICE_UUID: ::windows::Guid = ::windows::Guid::from_values(
62393946,
60904,
19251,
[167, 81, 108, 227, 78, 196, 199, 0],
);
pub const BLUETOOTH_MIDI_DATAIO_CHARACTERISTIC: ::windows::Guid =
::windows::Guid::from_values(
2004018651,
14440,
16658,
[161, 169, 242, 102, 157, 16, 107, 243],
);
pub const BUS_INTERFACE_REFERENCE_VERSION: u32 = 256u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct CAPTURE_MEMORY_ALLOCATION_FLAGS(pub i32);
impl CAPTURE_MEMORY_ALLOCATION_FLAGS {
pub const KS_CAPTURE_ALLOC_INVALID: Self = Self(0i32);
pub const KS_CAPTURE_ALLOC_SYSTEM: Self = Self(1i32);
pub const KS_CAPTURE_ALLOC_VRAM: Self = Self(2i32);
pub const KS_CAPTURE_ALLOC_SYSTEM_AGP: Self = Self(4i32);
pub const KS_CAPTURE_ALLOC_VRAM_MAPPED: Self = Self(8i32);
pub const KS_CAPTURE_ALLOC_SECURE_BUFFER: Self = Self(16i32);
}
impl ::std::convert::From<i32> for CAPTURE_MEMORY_ALLOCATION_FLAGS {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for CAPTURE_MEMORY_ALLOCATION_FLAGS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CC_BYTE_PAIR {
pub Decoded: [u8; 2],
pub Reserved: u16,
}
impl CC_BYTE_PAIR {}
impl ::std::default::Default for CC_BYTE_PAIR {
fn default() -> Self {
Self {
Decoded: [0; 2],
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for CC_BYTE_PAIR {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CC_BYTE_PAIR")
.field("Decoded", &format_args!("{:?}", self.Decoded))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for CC_BYTE_PAIR {
fn eq(&self, other: &Self) -> bool {
self.Decoded == other.Decoded && self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for CC_BYTE_PAIR {}
unsafe impl ::windows::Abi for CC_BYTE_PAIR {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_SCANLINES {
pub DwordBitArray: [u32; 32],
}
impl VBICODECFILTERING_SCANLINES {}
impl ::std::default::Default for VBICODECFILTERING_SCANLINES {
fn default() -> Self {
Self {
DwordBitArray: [0; 32],
}
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_SCANLINES {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_SCANLINES")
.field("DwordBitArray", &format_args!("{:?}", self.DwordBitArray))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_SCANLINES {
fn eq(&self, other: &Self) -> bool {
self.DwordBitArray == other.DwordBitArray
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_SCANLINES {}
unsafe impl ::windows::Abi for VBICODECFILTERING_SCANLINES {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CC_HW_FIELD {
pub ScanlinesRequested: VBICODECFILTERING_SCANLINES,
pub fieldFlags: u32,
pub PictureNumber: i64,
pub Lines: [CC_BYTE_PAIR; 12],
}
impl CC_HW_FIELD {}
impl ::std::default::Default for CC_HW_FIELD {
fn default() -> Self {
Self {
ScanlinesRequested: ::std::default::Default::default(),
fieldFlags: 0,
PictureNumber: 0,
Lines: [::std::default::Default::default(); 12],
}
}
}
impl ::std::fmt::Debug for CC_HW_FIELD {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CC_HW_FIELD")
.field(
"ScanlinesRequested",
&format_args!("{:?}", self.ScanlinesRequested),
)
.field("fieldFlags", &format_args!("{:?}", self.fieldFlags))
.field("PictureNumber", &format_args!("{:?}", self.PictureNumber))
.field("Lines", &format_args!("{:?}", self.Lines))
.finish()
}
}
impl ::std::cmp::PartialEq for CC_HW_FIELD {
fn eq(&self, other: &Self) -> bool {
self.ScanlinesRequested == other.ScanlinesRequested
&& self.fieldFlags == other.fieldFlags
&& self.PictureNumber == other.PictureNumber
&& self.Lines == other.Lines
}
}
impl ::std::cmp::Eq for CC_HW_FIELD {}
unsafe impl ::windows::Abi for CC_HW_FIELD {
type Abi = Self;
}
pub const CC_MAX_HW_DECODE_LINES: u32 = 12u32;
pub const CLSID_KsIBasicAudioInterfaceHandler: ::windows::Guid =
::windows::Guid::from_values(
3120081982,
3953,
4562,
[183, 44, 0, 192, 79, 182, 189, 61],
);
pub const CODECAPI_ALLSETTINGS: ::windows::Guid = ::windows::Guid::from_values(
1784118930,
33761,
16659,
[173, 194, 79, 206, 195, 47, 131, 161],
);
pub const CODECAPI_AUDIO_ENCODER: ::windows::Guid = ::windows::Guid::from_values(
3117521470,
63639,
17052,
[188, 70, 129, 56, 183, 39, 43, 45],
);
pub const CODECAPI_CHANGELISTS: ::windows::Guid = ::windows::Guid::from_values(
1655777999,
63152,
18393,
[148, 86, 150, 242, 44, 78, 11, 157],
);
pub const CODECAPI_CURRENTCHANGELIST: ::windows::Guid = ::windows::Guid::from_values(
481382019,
32114,
18007,
[131, 253, 71, 162, 197, 185, 209, 61],
);
pub const CODECAPI_SETALLDEFAULTS: ::windows::Guid = ::windows::Guid::from_values(
1818126972,
44280,
20309,
[169, 153, 26, 98, 129, 9, 5, 27],
);
pub const CODECAPI_SUPPORTSEVENTS: ::windows::Guid = ::windows::Guid::from_values(
92385175,
30355,
19901,
[157, 202, 63, 158, 189, 101, 133, 161],
);
pub const CODECAPI_VIDEO_ENCODER: ::windows::Guid = ::windows::Guid::from_values(
1897064673,
15619,
18415,
[142, 96, 3, 241, 207, 83, 115, 1],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct CONSTRICTOR_OPTION(pub i32);
impl CONSTRICTOR_OPTION {
pub const CONSTRICTOR_OPTION_DISABLE: Self = Self(0i32);
pub const CONSTRICTOR_OPTION_MUTE: Self = Self(1i32);
}
impl ::std::convert::From<i32> for CONSTRICTOR_OPTION {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for CONSTRICTOR_OPTION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct ConnectorType(pub i32);
impl ConnectorType {
pub const Unknown_Connector: Self = Self(0i32);
pub const Physical_Internal: Self = Self(1i32);
pub const Physical_External: Self = Self(2i32);
pub const Software_IO: Self = Self(3i32);
pub const Software_Fixed: Self = Self(4i32);
pub const Network: Self = Self(5i32);
}
impl ::std::convert::From<i32> for ConnectorType {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for ConnectorType {
type Abi = Self;
}
pub const DDPF_FOURCC: i32 = 4i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DDVIDEOPORTCONNECT {
pub dwSize: u32,
pub dwPortWidth: u32,
pub guidTypeID: ::windows::Guid,
pub dwFlags: u32,
pub dwReserved1: usize,
}
impl DDVIDEOPORTCONNECT {}
impl ::std::default::Default for DDVIDEOPORTCONNECT {
fn default() -> Self {
Self {
dwSize: 0,
dwPortWidth: 0,
guidTypeID: ::std::default::Default::default(),
dwFlags: 0,
dwReserved1: 0,
}
}
}
impl ::std::fmt::Debug for DDVIDEOPORTCONNECT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DDVIDEOPORTCONNECT")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field("dwPortWidth", &format_args!("{:?}", self.dwPortWidth))
.field("guidTypeID", &format_args!("{:?}", self.guidTypeID))
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("dwReserved1", &format_args!("{:?}", self.dwReserved1))
.finish()
}
}
impl ::std::cmp::PartialEq for DDVIDEOPORTCONNECT {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwPortWidth == other.dwPortWidth
&& self.guidTypeID == other.guidTypeID
&& self.dwFlags == other.dwFlags
&& self.dwReserved1 == other.dwReserved1
}
}
impl ::std::cmp::Eq for DDVIDEOPORTCONNECT {}
unsafe impl ::windows::Abi for DDVIDEOPORTCONNECT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DEVCAPS {
pub CanRecord: i32,
pub CanRecordStrobe: i32,
pub HasAudio: i32,
pub HasVideo: i32,
pub UsesFiles: i32,
pub CanSave: i32,
pub DeviceType: i32,
pub TCRead: i32,
pub TCWrite: i32,
pub CTLRead: i32,
pub IndexRead: i32,
pub Preroll: i32,
pub Postroll: i32,
pub SyncAcc: i32,
pub NormRate: i32,
pub CanPreview: i32,
pub CanMonitorSrc: i32,
pub CanTest: i32,
pub VideoIn: i32,
pub AudioIn: i32,
pub Calibrate: i32,
pub SeekType: i32,
pub SimulatedHardware: i32,
}
impl DEVCAPS {}
impl ::std::default::Default for DEVCAPS {
fn default() -> Self {
Self {
CanRecord: 0,
CanRecordStrobe: 0,
HasAudio: 0,
HasVideo: 0,
UsesFiles: 0,
CanSave: 0,
DeviceType: 0,
TCRead: 0,
TCWrite: 0,
CTLRead: 0,
IndexRead: 0,
Preroll: 0,
Postroll: 0,
SyncAcc: 0,
NormRate: 0,
CanPreview: 0,
CanMonitorSrc: 0,
CanTest: 0,
VideoIn: 0,
AudioIn: 0,
Calibrate: 0,
SeekType: 0,
SimulatedHardware: 0,
}
}
}
impl ::std::fmt::Debug for DEVCAPS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DEVCAPS")
.field("CanRecord", &format_args!("{:?}", self.CanRecord))
.field(
"CanRecordStrobe",
&format_args!("{:?}", self.CanRecordStrobe),
)
.field("HasAudio", &format_args!("{:?}", self.HasAudio))
.field("HasVideo", &format_args!("{:?}", self.HasVideo))
.field("UsesFiles", &format_args!("{:?}", self.UsesFiles))
.field("CanSave", &format_args!("{:?}", self.CanSave))
.field("DeviceType", &format_args!("{:?}", self.DeviceType))
.field("TCRead", &format_args!("{:?}", self.TCRead))
.field("TCWrite", &format_args!("{:?}", self.TCWrite))
.field("CTLRead", &format_args!("{:?}", self.CTLRead))
.field("IndexRead", &format_args!("{:?}", self.IndexRead))
.field("Preroll", &format_args!("{:?}", self.Preroll))
.field("Postroll", &format_args!("{:?}", self.Postroll))
.field("SyncAcc", &format_args!("{:?}", self.SyncAcc))
.field("NormRate", &format_args!("{:?}", self.NormRate))
.field("CanPreview", &format_args!("{:?}", self.CanPreview))
.field("CanMonitorSrc", &format_args!("{:?}", self.CanMonitorSrc))
.field("CanTest", &format_args!("{:?}", self.CanTest))
.field("VideoIn", &format_args!("{:?}", self.VideoIn))
.field("AudioIn", &format_args!("{:?}", self.AudioIn))
.field("Calibrate", &format_args!("{:?}", self.Calibrate))
.field("SeekType", &format_args!("{:?}", self.SeekType))
.field(
"SimulatedHardware",
&format_args!("{:?}", self.SimulatedHardware),
)
.finish()
}
}
impl ::std::cmp::PartialEq for DEVCAPS {
fn eq(&self, other: &Self) -> bool {
self.CanRecord == other.CanRecord
&& self.CanRecordStrobe == other.CanRecordStrobe
&& self.HasAudio == other.HasAudio
&& self.HasVideo == other.HasVideo
&& self.UsesFiles == other.UsesFiles
&& self.CanSave == other.CanSave
&& self.DeviceType == other.DeviceType
&& self.TCRead == other.TCRead
&& self.TCWrite == other.TCWrite
&& self.CTLRead == other.CTLRead
&& self.IndexRead == other.IndexRead
&& self.Preroll == other.Preroll
&& self.Postroll == other.Postroll
&& self.SyncAcc == other.SyncAcc
&& self.NormRate == other.NormRate
&& self.CanPreview == other.CanPreview
&& self.CanMonitorSrc == other.CanMonitorSrc
&& self.CanTest == other.CanTest
&& self.VideoIn == other.VideoIn
&& self.AudioIn == other.AudioIn
&& self.Calibrate == other.Calibrate
&& self.SeekType == other.SeekType
&& self.SimulatedHardware == other.SimulatedHardware
}
}
impl ::std::cmp::Eq for DEVCAPS {}
unsafe impl ::windows::Abi for DEVCAPS {
type Abi = Self;
}
pub const DEVICE_STATEMASK_ALL: u32 = 15u32;
pub const DEVICE_STATE_ACTIVE: u32 = 1u32;
pub const DEVICE_STATE_DISABLED: u32 = 2u32;
pub const DEVICE_STATE_NOTPRESENT: u32 = 4u32;
pub const DEVICE_STATE_UNPLUGGED: u32 = 8u32;
pub const DEVINTERFACE_AUDIOENDPOINTPLUGIN: ::windows::Guid =
::windows::Guid::from_values(
2670689126,
26028,
20390,
[138, 228, 18, 60, 120, 184, 147, 19],
);
pub const DEVINTERFACE_AUDIO_CAPTURE: ::windows::Guid = ::windows::Guid::from_values(
787448254,
13306,
18432,
[150, 112, 28, 212, 116, 151, 44, 63],
);
pub const DEVINTERFACE_AUDIO_RENDER: ::windows::Guid = ::windows::Guid::from_values(
3862068397,
56556,
18761,
[174, 138, 153, 30, 151, 106, 121, 210],
);
pub const DEVINTERFACE_MIDI_INPUT: ::windows::Guid = ::windows::Guid::from_values(
1347150636,
52470,
19756,
[183, 63, 111, 139, 55, 71, 226, 43],
);
pub const DEVINTERFACE_MIDI_OUTPUT: ::windows::Guid = ::windows::Guid::from_values(
1841443616,
43827,
19684,
[128, 212, 187, 179, 235, 191, 40, 20],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DIRECTX_AUDIO_ACTIVATION_PARAMS {
pub cbDirectXAudioActivationParams: u32,
pub guidAudioSession: ::windows::Guid,
pub dwAudioStreamFlags: u32,
}
impl DIRECTX_AUDIO_ACTIVATION_PARAMS {}
impl ::std::default::Default for DIRECTX_AUDIO_ACTIVATION_PARAMS {
fn default() -> Self {
Self {
cbDirectXAudioActivationParams: 0,
guidAudioSession: ::std::default::Default::default(),
dwAudioStreamFlags: 0,
}
}
}
impl ::std::fmt::Debug for DIRECTX_AUDIO_ACTIVATION_PARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("DIRECTX_AUDIO_ACTIVATION_PARAMS")
.field(
"cbDirectXAudioActivationParams",
&format_args!("{:?}", self.cbDirectXAudioActivationParams),
)
.field(
"guidAudioSession",
&format_args!("{:?}", self.guidAudioSession),
)
.field(
"dwAudioStreamFlags",
&format_args!("{:?}", self.dwAudioStreamFlags),
)
.finish()
}
}
impl ::std::cmp::PartialEq for DIRECTX_AUDIO_ACTIVATION_PARAMS {
fn eq(&self, other: &Self) -> bool {
self.cbDirectXAudioActivationParams == other.cbDirectXAudioActivationParams
&& self.guidAudioSession == other.guidAudioSession
&& self.dwAudioStreamFlags == other.dwAudioStreamFlags
}
}
impl ::std::cmp::Eq for DIRECTX_AUDIO_ACTIVATION_PARAMS {}
unsafe impl ::windows::Abi for DIRECTX_AUDIO_ACTIVATION_PARAMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DS3DVECTOR {
pub Anonymous1: DS3DVECTOR_0,
pub Anonymous2: DS3DVECTOR_1,
pub Anonymous3: DS3DVECTOR_2,
}
impl DS3DVECTOR {}
unsafe impl ::windows::Abi for DS3DVECTOR {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union DS3DVECTOR_0 {
pub x: f32,
pub dvX: f32,
}
impl DS3DVECTOR_0 {}
unsafe impl ::windows::Abi for DS3DVECTOR_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union DS3DVECTOR_1 {
pub y: f32,
pub dvY: f32,
}
impl DS3DVECTOR_1 {}
unsafe impl ::windows::Abi for DS3DVECTOR_1 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union DS3DVECTOR_2 {
pub z: f32,
pub dvZ: f32,
}
impl DS3DVECTOR_2 {}
unsafe impl ::windows::Abi for DS3DVECTOR_2 {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct DataFlow(pub i32);
impl DataFlow {
pub const In: Self = Self(0i32);
pub const Out: Self = Self(1i32);
}
impl ::std::convert::From<i32> for DataFlow {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for DataFlow {
type Abi = Self;
}
pub const DeviceTopology: ::windows::Guid = ::windows::Guid::from_values(
502675920,
24257,
18346,
[147, 121, 130, 141, 193, 170, 140, 89],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct EDataFlow(pub i32);
impl EDataFlow {
pub const eRender: Self = Self(0i32);
pub const eCapture: Self = Self(1i32);
pub const eAll: Self = Self(2i32);
pub const EDataFlow_enum_count: Self = Self(3i32);
}
impl ::std::convert::From<i32> for EDataFlow {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for EDataFlow {
type Abi = Self;
}
pub const ENCAPIPARAM_BITRATE: ::windows::Guid = ::windows::Guid::from_values(
1238125635,
51843,
19156,
[169, 175, 243, 105, 106, 246, 102, 223],
);
pub const ENCAPIPARAM_BITRATE_MODE: ::windows::Guid = ::windows::Guid::from_values(
3999248988,
50963,
16593,
[157, 88, 192, 215, 36, 30, 37, 15],
);
pub const ENCAPIPARAM_PEAK_BITRATE: ::windows::Guid = ::windows::Guid::from_values(
1883182761,
15688,
17569,
[176, 119, 1, 141, 255, 145, 93, 25],
);
pub const ENDPOINT_FORMAT_RESET_MIX_ONLY: u32 = 1u32;
pub const ENDPOINT_HARDWARE_SUPPORT_METER: u32 = 4u32;
pub const ENDPOINT_HARDWARE_SUPPORT_MUTE: u32 = 2u32;
pub const ENDPOINT_HARDWARE_SUPPORT_VOLUME: u32 = 1u32;
pub const ENDPOINT_SYSFX_DISABLED: u32 = 1u32;
pub const ENDPOINT_SYSFX_ENABLED: u32 = 0u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct EPcxConnectionType(pub i32);
impl EPcxConnectionType {
pub const eConnTypeUnknown: Self = Self(0i32);
pub const eConnType3Point5mm: Self = Self(1i32);
pub const eConnTypeQuarter: Self = Self(2i32);
pub const eConnTypeAtapiInternal: Self = Self(3i32);
pub const eConnTypeRCA: Self = Self(4i32);
pub const eConnTypeOptical: Self = Self(5i32);
pub const eConnTypeOtherDigital: Self = Self(6i32);
pub const eConnTypeOtherAnalog: Self = Self(7i32);
pub const eConnTypeMultichannelAnalogDIN: Self = Self(8i32);
pub const eConnTypeXlrProfessional: Self = Self(9i32);
pub const eConnTypeRJ11Modem: Self = Self(10i32);
pub const eConnTypeCombination: Self = Self(11i32);
}
impl ::std::convert::From<i32> for EPcxConnectionType {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for EPcxConnectionType {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct EPcxGenLocation(pub i32);
impl EPcxGenLocation {
pub const eGenLocPrimaryBox: Self = Self(0i32);
pub const eGenLocInternal: Self = Self(1i32);
pub const eGenLocSeparate: Self = Self(2i32);
pub const eGenLocOther: Self = Self(3i32);
pub const EPcxGenLocation_enum_count: Self = Self(4i32);
}
impl ::std::convert::From<i32> for EPcxGenLocation {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for EPcxGenLocation {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct EPcxGeoLocation(pub i32);
impl EPcxGeoLocation {
pub const eGeoLocRear: Self = Self(1i32);
pub const eGeoLocFront: Self = Self(2i32);
pub const eGeoLocLeft: Self = Self(3i32);
pub const eGeoLocRight: Self = Self(4i32);
pub const eGeoLocTop: Self = Self(5i32);
pub const eGeoLocBottom: Self = Self(6i32);
pub const eGeoLocRearPanel: Self = Self(7i32);
pub const eGeoLocRiser: Self = Self(8i32);
pub const eGeoLocInsideMobileLid: Self = Self(9i32);
pub const eGeoLocDrivebay: Self = Self(10i32);
pub const eGeoLocHDMI: Self = Self(11i32);
pub const eGeoLocOutsideMobileLid: Self = Self(12i32);
pub const eGeoLocATAPI: Self = Self(13i32);
pub const eGeoLocNotApplicable: Self = Self(14i32);
pub const eGeoLocReserved6: Self = Self(15i32);
pub const EPcxGeoLocation_enum_count: Self = Self(16i32);
}
impl ::std::convert::From<i32> for EPcxGeoLocation {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for EPcxGeoLocation {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct EPxcPortConnection(pub i32);
impl EPxcPortConnection {
pub const ePortConnJack: Self = Self(0i32);
pub const ePortConnIntegratedDevice: Self = Self(1i32);
pub const ePortConnBothIntegratedAndJack: Self = Self(2i32);
pub const ePortConnUnknown: Self = Self(3i32);
}
impl ::std::convert::From<i32> for EPxcPortConnection {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for EPxcPortConnection {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct ERole(pub i32);
impl ERole {
pub const eConsole: Self = Self(0i32);
pub const eMultimedia: Self = Self(1i32);
pub const eCommunications: Self = Self(2i32);
pub const ERole_enum_count: Self = Self(3i32);
}
impl ::std::convert::From<i32> for ERole {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for ERole {
type Abi = Self;
}
pub const EVENTCONTEXT_VOLUMESLIDER: ::windows::Guid = ::windows::Guid::from_values(
3804424670,
2481,
19204,
[132, 229, 7, 147, 18, 37, 238, 4],
);
pub const EVENTSETID_CROSSBAR: ::windows::Guid = ::windows::Guid::from_values(
1781401153,
10468,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const EVENTSETID_TUNER: ::windows::Guid = ::windows::Guid::from_values(
1781401094,
10468,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const EVENTSETID_VIDCAP_CAMERACONTROL_REGION_OF_INTEREST: ::windows::Guid =
::windows::Guid::from_values(
803208285,
50994,
19366,
[181, 223, 107, 77, 127, 200, 139, 139],
);
pub const EVENTSETID_VIDEODECODER: ::windows::Guid = ::windows::Guid::from_values(
1781401121,
10468,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct EndpointFormFactor(pub i32);
impl EndpointFormFactor {
pub const RemoteNetworkDevice: Self = Self(0i32);
pub const Speakers: Self = Self(1i32);
pub const LineLevel: Self = Self(2i32);
pub const Headphones: Self = Self(3i32);
pub const Microphone: Self = Self(4i32);
pub const Headset: Self = Self(5i32);
pub const Handset: Self = Self(6i32);
pub const UnknownDigitalPassthrough: Self = Self(7i32);
pub const SPDIF: Self = Self(8i32);
pub const DigitalAudioDisplayDevice: Self = Self(9i32);
pub const UnknownFormFactor: Self = Self(10i32);
pub const EndpointFormFactor_enum_count: Self = Self(11i32);
}
impl ::std::convert::From<i32> for EndpointFormFactor {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for EndpointFormFactor {
type Abi = Self;
}
pub const GUID_NULL: ::windows::Guid =
::windows::Guid::from_values(0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0]);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct HTASK(pub isize);
impl HTASK {}
impl HTASK {
pub const NULL: Self = Self(0);
pub fn is_null(&self) -> bool {
self == &Self::NULL
}
}
impl ::std::default::Default for HTASK {
fn default() -> Self {
Self(0)
}
}
impl ::std::fmt::Debug for HTASK {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("HTASK")
.field("Value", &format_args!("{:?}", self.0))
.finish()
}
}
impl ::std::cmp::PartialEq for HTASK {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::std::cmp::Eq for HTASK {}
unsafe impl ::windows::Abi for HTASK {
type Abi = Self;
}
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioAmbisonicsControl(::windows::IUnknown);
impl IAudioAmbisonicsControl {}
unsafe impl ::windows::Interface for IAudioAmbisonicsControl {
type Vtable = IAudioAmbisonicsControl_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
678579345,
57141,
18518,
[159, 118, 214, 162, 100, 19, 243, 223],
);
}
impl IAudioAmbisonicsControl {
pub unsafe fn SetData(
&self,
pambisonicsparams: *const AMBISONICS_PARAMS,
cbambisonicsparams: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pambisonicsparams),
::std::mem::transmute(cbambisonicsparams),
)
}
pub unsafe fn SetHeadTracking<'a>(
&self,
benableheadtracking: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
benableheadtracking.into_param().abi(),
)
}
pub unsafe fn GetHeadTracking(
&self,
pbenableheadtracking: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pbenableheadtracking),
)
}
pub unsafe fn SetRotation(
&self,
x: f32,
y: f32,
z: f32,
w: f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(x),
::std::mem::transmute(y),
::std::mem::transmute(z),
::std::mem::transmute(w),
)
}
}
impl ::std::convert::From<IAudioAmbisonicsControl> for ::windows::IUnknown {
fn from(value: IAudioAmbisonicsControl) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioAmbisonicsControl> for ::windows::IUnknown {
fn from(value: &IAudioAmbisonicsControl) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioAmbisonicsControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioAmbisonicsControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioAmbisonicsControl_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pambisonicsparams: *const AMBISONICS_PARAMS,
cbambisonicsparams: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
benableheadtracking: super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbenableheadtracking: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
x: f32,
y: f32,
z: f32,
w: f32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioAutoGainControl(::windows::IUnknown);
impl IAudioAutoGainControl {}
unsafe impl ::windows::Interface for IAudioAutoGainControl {
type Vtable = IAudioAutoGainControl_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2235572180,
28132,
19357,
[152, 105, 45, 103, 83, 168, 47, 60],
);
}
impl IAudioAutoGainControl {
pub unsafe fn GetEnabled(
&self,
pbenabled: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pbenabled),
)
}
pub unsafe fn SetEnabled<'a>(
&self,
benable: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
benable.into_param().abi(),
::std::mem::transmute(pguideventcontext),
)
}
}
impl ::std::convert::From<IAudioAutoGainControl> for ::windows::IUnknown {
fn from(value: IAudioAutoGainControl) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioAutoGainControl> for ::windows::IUnknown {
fn from(value: &IAudioAutoGainControl) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioAutoGainControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioAutoGainControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioAutoGainControl_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbenabled: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
benable: super::SystemServices::BOOL,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IPerChannelDbLevel(::windows::IUnknown);
impl IPerChannelDbLevel {}
unsafe impl ::windows::Interface for IPerChannelDbLevel {
type Vtable = IPerChannelDbLevel_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3271090177,
61957,
19401,
[153, 188, 193, 59, 30, 4, 140, 203],
);
}
impl IPerChannelDbLevel {
pub unsafe fn GetChannelCount(&self, pcchannels: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcchannels),
)
}
pub unsafe fn GetLevelRange(
&self,
nchannel: u32,
pfminleveldb: *mut f32,
pfmaxleveldb: *mut f32,
pfstepping: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfminleveldb),
::std::mem::transmute(pfmaxleveldb),
::std::mem::transmute(pfstepping),
)
}
pub unsafe fn GetLevel(
&self,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfleveldb),
)
}
pub unsafe fn SetLevel(
&self,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetLevelUniform(
&self,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetLevelAllChannels(
&self,
alevelsdb: *mut f32,
cchannels: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(alevelsdb),
::std::mem::transmute(cchannels),
::std::mem::transmute(pguideventcontext),
)
}
}
impl ::std::convert::From<IPerChannelDbLevel> for ::windows::IUnknown {
fn from(value: IPerChannelDbLevel) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IPerChannelDbLevel> for ::windows::IUnknown {
fn from(value: &IPerChannelDbLevel) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IPerChannelDbLevel {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IPerChannelDbLevel {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPerChannelDbLevel_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcchannels: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfminleveldb: *mut f32,
pfmaxleveldb: *mut f32,
pfstepping: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
alevelsdb: *mut f32,
cchannels: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioBass(::windows::IUnknown);
impl IAudioBass {}
unsafe impl ::windows::Interface for IAudioBass {
type Vtable = IAudioBass_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2729550297,
19891,
16989,
[162, 178, 189, 51, 92, 179, 226, 229],
);
}
impl IAudioBass {
pub unsafe fn GetChannelCount(&self, pcchannels: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcchannels),
)
}
pub unsafe fn GetLevelRange(
&self,
nchannel: u32,
pfminleveldb: *mut f32,
pfmaxleveldb: *mut f32,
pfstepping: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfminleveldb),
::std::mem::transmute(pfmaxleveldb),
::std::mem::transmute(pfstepping),
)
}
pub unsafe fn GetLevel(
&self,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfleveldb),
)
}
pub unsafe fn SetLevel(
&self,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetLevelUniform(
&self,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetLevelAllChannels(
&self,
alevelsdb: *mut f32,
cchannels: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(alevelsdb),
::std::mem::transmute(cchannels),
::std::mem::transmute(pguideventcontext),
)
}
}
impl ::std::convert::From<IAudioBass> for ::windows::IUnknown {
fn from(value: IAudioBass) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioBass> for ::windows::IUnknown {
fn from(value: &IAudioBass) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioBass {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioBass {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioBass> for IPerChannelDbLevel {
fn from(value: IAudioBass) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioBass> for IPerChannelDbLevel {
fn from(value: &IAudioBass) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IPerChannelDbLevel> for IAudioBass {
fn into_param(self) -> ::windows::Param<'a, IPerChannelDbLevel> {
::windows::Param::Owned(::std::convert::Into::<IPerChannelDbLevel>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IPerChannelDbLevel> for &'a IAudioBass {
fn into_param(self) -> ::windows::Param<'a, IPerChannelDbLevel> {
::windows::Param::Owned(::std::convert::Into::<IPerChannelDbLevel>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioBass_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcchannels: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfminleveldb: *mut f32,
pfmaxleveldb: *mut f32,
pfstepping: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
alevelsdb: *mut f32,
cchannels: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioCaptureClient(::windows::IUnknown);
impl IAudioCaptureClient {}
unsafe impl ::windows::Interface for IAudioCaptureClient {
type Vtable = IAudioCaptureClient_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3366829412,
59166,
18592,
[164, 222, 24, 92, 57, 92, 211, 23],
);
}
impl IAudioCaptureClient {
pub unsafe fn GetBuffer(
&self,
ppdata: *mut *mut u8,
pnumframestoread: *mut u32,
pdwflags: *mut u32,
pu64deviceposition: *mut u64,
pu64qpcposition: *mut u64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(ppdata),
::std::mem::transmute(pnumframestoread),
::std::mem::transmute(pdwflags),
::std::mem::transmute(pu64deviceposition),
::std::mem::transmute(pu64qpcposition),
)
}
pub unsafe fn ReleaseBuffer(&self, numframesread: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(numframesread),
)
}
pub unsafe fn GetNextPacketSize(
&self,
pnumframesinnextpacket: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pnumframesinnextpacket),
)
}
}
impl ::std::convert::From<IAudioCaptureClient> for ::windows::IUnknown {
fn from(value: IAudioCaptureClient) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioCaptureClient> for ::windows::IUnknown {
fn from(value: &IAudioCaptureClient) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioCaptureClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioCaptureClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioCaptureClient_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppdata: *mut *mut u8,
pnumframestoread: *mut u32,
pdwflags: *mut u32,
pu64deviceposition: *mut u64,
pu64qpcposition: *mut u64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
numframesread: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnumframesinnextpacket: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioChannelConfig(::windows::IUnknown);
impl IAudioChannelConfig {}
unsafe impl ::windows::Interface for IAudioChannelConfig {
type Vtable = IAudioChannelConfig_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3138503791,
60456,
18748,
[184, 138, 93, 184, 128, 98, 206, 152],
);
}
impl IAudioChannelConfig {
pub unsafe fn SetChannelConfig(
&self,
dwconfig: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(dwconfig),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn GetChannelConfig(&self, pdwconfig: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwconfig),
)
}
}
impl ::std::convert::From<IAudioChannelConfig> for ::windows::IUnknown {
fn from(value: IAudioChannelConfig) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioChannelConfig> for ::windows::IUnknown {
fn from(value: &IAudioChannelConfig) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioChannelConfig {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioChannelConfig {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioChannelConfig_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwconfig: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwconfig: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioClient(::windows::IUnknown);
impl IAudioClient {}
unsafe impl ::windows::Interface for IAudioClient {
type Vtable = IAudioClient_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
481930572,
56314,
19506,
[177, 120, 194, 245, 104, 167, 3, 178],
);
}
impl IAudioClient {
pub unsafe fn Initialize(
&self,
sharemode: AUDCLNT_SHAREMODE,
streamflags: u32,
hnsbufferduration: i64,
hnsperiodicity: i64,
pformat: *const super::Multimedia::WAVEFORMATEX,
audiosessionguid: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(sharemode),
::std::mem::transmute(streamflags),
::std::mem::transmute(hnsbufferduration),
::std::mem::transmute(hnsperiodicity),
::std::mem::transmute(pformat),
::std::mem::transmute(audiosessionguid),
)
}
pub unsafe fn GetBufferSize(
&self,
pnumbufferframes: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pnumbufferframes),
)
}
pub unsafe fn GetStreamLatency(&self, phnslatency: *mut i64) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(phnslatency),
)
}
pub unsafe fn GetCurrentPadding(
&self,
pnumpaddingframes: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pnumpaddingframes),
)
}
pub unsafe fn IsFormatSupported(
&self,
sharemode: AUDCLNT_SHAREMODE,
pformat: *const super::Multimedia::WAVEFORMATEX,
ppclosestmatch: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(sharemode),
::std::mem::transmute(pformat),
::std::mem::transmute(ppclosestmatch),
)
}
pub unsafe fn GetMixFormat(
&self,
ppdeviceformat: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(ppdeviceformat),
)
}
pub unsafe fn GetDevicePeriod(
&self,
phnsdefaultdeviceperiod: *mut i64,
phnsminimumdeviceperiod: *mut i64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(phnsdefaultdeviceperiod),
::std::mem::transmute(phnsminimumdeviceperiod),
)
}
pub unsafe fn Start(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(::windows::Abi::abi(self))
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(::windows::Abi::abi(self))
}
pub unsafe fn Reset(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(::windows::Abi::abi(self))
}
pub unsafe fn SetEventHandle<'a>(
&self,
eventhandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
eventhandle.into_param().abi(),
)
}
pub unsafe fn GetService(
&self,
riid: *const ::windows::Guid,
ppv: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(riid),
::std::mem::transmute(ppv),
)
}
}
impl ::std::convert::From<IAudioClient> for ::windows::IUnknown {
fn from(value: IAudioClient) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioClient> for ::windows::IUnknown {
fn from(value: &IAudioClient) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioClient_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sharemode: AUDCLNT_SHAREMODE,
streamflags: u32,
hnsbufferduration: i64,
hnsperiodicity: i64,
pformat: *const super::Multimedia::WAVEFORMATEX,
audiosessionguid: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnumbufferframes: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
phnslatency: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnumpaddingframes: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sharemode: AUDCLNT_SHAREMODE,
pformat: *const super::Multimedia::WAVEFORMATEX,
ppclosestmatch: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppdeviceformat: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
phnsdefaultdeviceperiod: *mut i64,
phnsminimumdeviceperiod: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
eventhandle: super::SystemServices::HANDLE,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
riid: *const ::windows::Guid,
ppv: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioClient2(::windows::IUnknown);
impl IAudioClient2 {}
unsafe impl ::windows::Interface for IAudioClient2 {
type Vtable = IAudioClient2_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1919383757,
62986,
20186,
[130, 222, 228, 118, 16, 205, 120, 170],
);
}
impl IAudioClient2 {
pub unsafe fn Initialize(
&self,
sharemode: AUDCLNT_SHAREMODE,
streamflags: u32,
hnsbufferduration: i64,
hnsperiodicity: i64,
pformat: *const super::Multimedia::WAVEFORMATEX,
audiosessionguid: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(sharemode),
::std::mem::transmute(streamflags),
::std::mem::transmute(hnsbufferduration),
::std::mem::transmute(hnsperiodicity),
::std::mem::transmute(pformat),
::std::mem::transmute(audiosessionguid),
)
}
pub unsafe fn GetBufferSize(
&self,
pnumbufferframes: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pnumbufferframes),
)
}
pub unsafe fn GetStreamLatency(&self, phnslatency: *mut i64) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(phnslatency),
)
}
pub unsafe fn GetCurrentPadding(
&self,
pnumpaddingframes: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pnumpaddingframes),
)
}
pub unsafe fn IsFormatSupported(
&self,
sharemode: AUDCLNT_SHAREMODE,
pformat: *const super::Multimedia::WAVEFORMATEX,
ppclosestmatch: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(sharemode),
::std::mem::transmute(pformat),
::std::mem::transmute(ppclosestmatch),
)
}
pub unsafe fn GetMixFormat(
&self,
ppdeviceformat: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(ppdeviceformat),
)
}
pub unsafe fn GetDevicePeriod(
&self,
phnsdefaultdeviceperiod: *mut i64,
phnsminimumdeviceperiod: *mut i64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(phnsdefaultdeviceperiod),
::std::mem::transmute(phnsminimumdeviceperiod),
)
}
pub unsafe fn Start(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(::windows::Abi::abi(self))
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(::windows::Abi::abi(self))
}
pub unsafe fn Reset(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(::windows::Abi::abi(self))
}
pub unsafe fn SetEventHandle<'a>(
&self,
eventhandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
eventhandle.into_param().abi(),
)
}
pub unsafe fn GetService(
&self,
riid: *const ::windows::Guid,
ppv: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(riid),
::std::mem::transmute(ppv),
)
}
pub unsafe fn IsOffloadCapable(
&self,
category: AUDIO_STREAM_CATEGORY,
pboffloadcapable: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(category),
::std::mem::transmute(pboffloadcapable),
)
}
pub unsafe fn SetClientProperties(
&self,
pproperties: *const AudioClientProperties,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(pproperties),
)
}
pub unsafe fn GetBufferSizeLimits<'a>(
&self,
pformat: *const super::Multimedia::WAVEFORMATEX,
beventdriven: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
phnsminbufferduration: *mut i64,
phnsmaxbufferduration: *mut i64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(
::windows::Abi::abi(self),
::std::mem::transmute(pformat),
beventdriven.into_param().abi(),
::std::mem::transmute(phnsminbufferduration),
::std::mem::transmute(phnsmaxbufferduration),
)
}
}
impl ::std::convert::From<IAudioClient2> for ::windows::IUnknown {
fn from(value: IAudioClient2) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioClient2> for ::windows::IUnknown {
fn from(value: &IAudioClient2) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioClient2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioClient2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioClient2> for IAudioClient {
fn from(value: IAudioClient2) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioClient2> for IAudioClient {
fn from(value: &IAudioClient2) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioClient> for IAudioClient2 {
fn into_param(self) -> ::windows::Param<'a, IAudioClient> {
::windows::Param::Owned(::std::convert::Into::<IAudioClient>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioClient> for &'a IAudioClient2 {
fn into_param(self) -> ::windows::Param<'a, IAudioClient> {
::windows::Param::Owned(::std::convert::Into::<IAudioClient>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioClient2_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sharemode: AUDCLNT_SHAREMODE,
streamflags: u32,
hnsbufferduration: i64,
hnsperiodicity: i64,
pformat: *const super::Multimedia::WAVEFORMATEX,
audiosessionguid: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnumbufferframes: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
phnslatency: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnumpaddingframes: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sharemode: AUDCLNT_SHAREMODE,
pformat: *const super::Multimedia::WAVEFORMATEX,
ppclosestmatch: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppdeviceformat: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
phnsdefaultdeviceperiod: *mut i64,
phnsminimumdeviceperiod: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
eventhandle: super::SystemServices::HANDLE,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
riid: *const ::windows::Guid,
ppv: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
category: AUDIO_STREAM_CATEGORY,
pboffloadcapable: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pproperties: *const AudioClientProperties,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pformat: *const super::Multimedia::WAVEFORMATEX,
beventdriven: super::SystemServices::BOOL,
phnsminbufferduration: *mut i64,
phnsmaxbufferduration: *mut i64,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioClient3(::windows::IUnknown);
impl IAudioClient3 {}
unsafe impl ::windows::Interface for IAudioClient3 {
type Vtable = IAudioClient3_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2127883783,
36455,
19668,
[140, 26, 43, 122, 89, 135, 173, 66],
);
}
impl IAudioClient3 {
pub unsafe fn Initialize(
&self,
sharemode: AUDCLNT_SHAREMODE,
streamflags: u32,
hnsbufferduration: i64,
hnsperiodicity: i64,
pformat: *const super::Multimedia::WAVEFORMATEX,
audiosessionguid: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(sharemode),
::std::mem::transmute(streamflags),
::std::mem::transmute(hnsbufferduration),
::std::mem::transmute(hnsperiodicity),
::std::mem::transmute(pformat),
::std::mem::transmute(audiosessionguid),
)
}
pub unsafe fn GetBufferSize(
&self,
pnumbufferframes: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pnumbufferframes),
)
}
pub unsafe fn GetStreamLatency(&self, phnslatency: *mut i64) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(phnslatency),
)
}
pub unsafe fn GetCurrentPadding(
&self,
pnumpaddingframes: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pnumpaddingframes),
)
}
pub unsafe fn IsFormatSupported(
&self,
sharemode: AUDCLNT_SHAREMODE,
pformat: *const super::Multimedia::WAVEFORMATEX,
ppclosestmatch: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(sharemode),
::std::mem::transmute(pformat),
::std::mem::transmute(ppclosestmatch),
)
}
pub unsafe fn GetMixFormat(
&self,
ppdeviceformat: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(ppdeviceformat),
)
}
pub unsafe fn GetDevicePeriod(
&self,
phnsdefaultdeviceperiod: *mut i64,
phnsminimumdeviceperiod: *mut i64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(phnsdefaultdeviceperiod),
::std::mem::transmute(phnsminimumdeviceperiod),
)
}
pub unsafe fn Start(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(::windows::Abi::abi(self))
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(::windows::Abi::abi(self))
}
pub unsafe fn Reset(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(::windows::Abi::abi(self))
}
pub unsafe fn SetEventHandle<'a>(
&self,
eventhandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
eventhandle.into_param().abi(),
)
}
pub unsafe fn GetService(
&self,
riid: *const ::windows::Guid,
ppv: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(riid),
::std::mem::transmute(ppv),
)
}
pub unsafe fn IsOffloadCapable(
&self,
category: AUDIO_STREAM_CATEGORY,
pboffloadcapable: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(category),
::std::mem::transmute(pboffloadcapable),
)
}
pub unsafe fn SetClientProperties(
&self,
pproperties: *const AudioClientProperties,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(pproperties),
)
}
pub unsafe fn GetBufferSizeLimits<'a>(
&self,
pformat: *const super::Multimedia::WAVEFORMATEX,
beventdriven: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
phnsminbufferduration: *mut i64,
phnsmaxbufferduration: *mut i64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(
::windows::Abi::abi(self),
::std::mem::transmute(pformat),
beventdriven.into_param().abi(),
::std::mem::transmute(phnsminbufferduration),
::std::mem::transmute(phnsmaxbufferduration),
)
}
pub unsafe fn GetSharedModeEnginePeriod(
&self,
pformat: *const super::Multimedia::WAVEFORMATEX,
pdefaultperiodinframes: *mut u32,
pfundamentalperiodinframes: *mut u32,
pminperiodinframes: *mut u32,
pmaxperiodinframes: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).18)(
::windows::Abi::abi(self),
::std::mem::transmute(pformat),
::std::mem::transmute(pdefaultperiodinframes),
::std::mem::transmute(pfundamentalperiodinframes),
::std::mem::transmute(pminperiodinframes),
::std::mem::transmute(pmaxperiodinframes),
)
}
pub unsafe fn GetCurrentSharedModeEnginePeriod(
&self,
ppformat: *mut *mut super::Multimedia::WAVEFORMATEX,
pcurrentperiodinframes: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).19)(
::windows::Abi::abi(self),
::std::mem::transmute(ppformat),
::std::mem::transmute(pcurrentperiodinframes),
)
}
pub unsafe fn InitializeSharedAudioStream(
&self,
streamflags: u32,
periodinframes: u32,
pformat: *const super::Multimedia::WAVEFORMATEX,
audiosessionguid: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).20)(
::windows::Abi::abi(self),
::std::mem::transmute(streamflags),
::std::mem::transmute(periodinframes),
::std::mem::transmute(pformat),
::std::mem::transmute(audiosessionguid),
)
}
}
impl ::std::convert::From<IAudioClient3> for ::windows::IUnknown {
fn from(value: IAudioClient3) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioClient3> for ::windows::IUnknown {
fn from(value: &IAudioClient3) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioClient3 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioClient3 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioClient3> for IAudioClient2 {
fn from(value: IAudioClient3) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioClient3> for IAudioClient2 {
fn from(value: &IAudioClient3) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioClient2> for IAudioClient3 {
fn into_param(self) -> ::windows::Param<'a, IAudioClient2> {
::windows::Param::Owned(::std::convert::Into::<IAudioClient2>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioClient2> for &'a IAudioClient3 {
fn into_param(self) -> ::windows::Param<'a, IAudioClient2> {
::windows::Param::Owned(::std::convert::Into::<IAudioClient2>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioClient3> for IAudioClient {
fn from(value: IAudioClient3) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioClient3> for IAudioClient {
fn from(value: &IAudioClient3) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioClient> for IAudioClient3 {
fn into_param(self) -> ::windows::Param<'a, IAudioClient> {
::windows::Param::Owned(::std::convert::Into::<IAudioClient>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioClient> for &'a IAudioClient3 {
fn into_param(self) -> ::windows::Param<'a, IAudioClient> {
::windows::Param::Owned(::std::convert::Into::<IAudioClient>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioClient3_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sharemode: AUDCLNT_SHAREMODE,
streamflags: u32,
hnsbufferduration: i64,
hnsperiodicity: i64,
pformat: *const super::Multimedia::WAVEFORMATEX,
audiosessionguid: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnumbufferframes: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
phnslatency: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnumpaddingframes: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sharemode: AUDCLNT_SHAREMODE,
pformat: *const super::Multimedia::WAVEFORMATEX,
ppclosestmatch: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppdeviceformat: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
phnsdefaultdeviceperiod: *mut i64,
phnsminimumdeviceperiod: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
eventhandle: super::SystemServices::HANDLE,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
riid: *const ::windows::Guid,
ppv: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
category: AUDIO_STREAM_CATEGORY,
pboffloadcapable: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pproperties: *const AudioClientProperties,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pformat: *const super::Multimedia::WAVEFORMATEX,
beventdriven: super::SystemServices::BOOL,
phnsminbufferduration: *mut i64,
phnsmaxbufferduration: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pformat: *const super::Multimedia::WAVEFORMATEX,
pdefaultperiodinframes: *mut u32,
pfundamentalperiodinframes: *mut u32,
pminperiodinframes: *mut u32,
pmaxperiodinframes: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppformat: *mut *mut super::Multimedia::WAVEFORMATEX,
pcurrentperiodinframes: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
streamflags: u32,
periodinframes: u32,
pformat: *const super::Multimedia::WAVEFORMATEX,
audiosessionguid: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioClock(::windows::IUnknown);
impl IAudioClock {}
unsafe impl ::windows::Interface for IAudioClock {
type Vtable = IAudioClock_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3445829967,
16314,
18971,
[129, 44, 239, 150, 53, 135, 40, 231],
);
}
impl IAudioClock {
pub unsafe fn GetFrequency(&self, pu64frequency: *mut u64) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pu64frequency),
)
}
pub unsafe fn GetPosition(
&self,
pu64position: *mut u64,
pu64qpcposition: *mut u64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pu64position),
::std::mem::transmute(pu64qpcposition),
)
}
pub unsafe fn GetCharacteristics(
&self,
pdwcharacteristics: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwcharacteristics),
)
}
}
impl ::std::convert::From<IAudioClock> for ::windows::IUnknown {
fn from(value: IAudioClock) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioClock> for ::windows::IUnknown {
fn from(value: &IAudioClock) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioClock {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioClock {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioClock_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pu64frequency: *mut u64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pu64position: *mut u64,
pu64qpcposition: *mut u64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwcharacteristics: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioClock2(::windows::IUnknown);
impl IAudioClock2 {}
unsafe impl ::windows::Interface for IAudioClock2 {
type Vtable = IAudioClock2_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1867120499,
26407,
18860,
[160, 8, 217, 140, 245, 231, 0, 72],
);
}
impl IAudioClock2 {
pub unsafe fn GetDevicePosition(
&self,
deviceposition: *mut u64,
qpcposition: *mut u64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(deviceposition),
::std::mem::transmute(qpcposition),
)
}
}
impl ::std::convert::From<IAudioClock2> for ::windows::IUnknown {
fn from(value: IAudioClock2) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioClock2> for ::windows::IUnknown {
fn from(value: &IAudioClock2) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioClock2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioClock2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioClock2_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
deviceposition: *mut u64,
qpcposition: *mut u64,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioClockAdjustment(::windows::IUnknown);
impl IAudioClockAdjustment {}
unsafe impl ::windows::Interface for IAudioClockAdjustment {
type Vtable = IAudioClockAdjustment_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
4142186656,
18137,
20408,
[190, 33, 87, 163, 239, 43, 98, 108],
);
}
impl IAudioClockAdjustment {
pub unsafe fn SetSampleRate(&self, flsamplerate: f32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(flsamplerate),
)
}
}
impl ::std::convert::From<IAudioClockAdjustment> for ::windows::IUnknown {
fn from(value: IAudioClockAdjustment) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioClockAdjustment> for ::windows::IUnknown {
fn from(value: &IAudioClockAdjustment) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioClockAdjustment {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioClockAdjustment {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioClockAdjustment_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
flsamplerate: f32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioEndpointFormatControl(::windows::IUnknown);
impl IAudioEndpointFormatControl {}
unsafe impl ::windows::Interface for IAudioEndpointFormatControl {
type Vtable = IAudioEndpointFormatControl_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2018311488,
40841,
17774,
[161, 166, 135, 59, 0, 106, 102, 78],
);
}
impl IAudioEndpointFormatControl {
pub unsafe fn ResetToDefault(&self, resetflags: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(resetflags),
)
}
}
impl ::std::convert::From<IAudioEndpointFormatControl> for ::windows::IUnknown {
fn from(value: IAudioEndpointFormatControl) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioEndpointFormatControl> for ::windows::IUnknown {
fn from(value: &IAudioEndpointFormatControl) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioEndpointFormatControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioEndpointFormatControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioEndpointFormatControl_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
resetflags: u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioEndpointLastBufferControl(::windows::IUnknown);
impl IAudioEndpointLastBufferControl {}
unsafe impl ::windows::Interface for IAudioEndpointLastBufferControl {
type Vtable = IAudioEndpointLastBufferControl_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
4166127059,
36765,
17463,
[152, 97, 98, 245, 132, 195, 61, 214],
);
}
impl IAudioEndpointLastBufferControl {
pub unsafe fn IsLastBufferControlSupported(&self) -> super::SystemServices::BOOL {
(::windows::Interface::vtable(self).3)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<IAudioEndpointLastBufferControl> for ::windows::IUnknown {
fn from(value: IAudioEndpointLastBufferControl) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioEndpointLastBufferControl> for ::windows::IUnknown {
fn from(value: &IAudioEndpointLastBufferControl) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioEndpointLastBufferControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioEndpointLastBufferControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioEndpointLastBufferControl_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
) -> super::SystemServices::BOOL,
pub unsafe extern "system" fn(),
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioEndpointOffloadStreamMeter(::windows::IUnknown);
impl IAudioEndpointOffloadStreamMeter {}
unsafe impl ::windows::Interface for IAudioEndpointOffloadStreamMeter {
type Vtable = IAudioEndpointOffloadStreamMeter_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3780406734,
40401,
16779,
[154, 178, 52, 140, 237, 22, 28, 134],
);
}
impl IAudioEndpointOffloadStreamMeter {
pub unsafe fn GetMeterChannelCount(
&self,
pu32channelcount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pu32channelcount),
)
}
pub unsafe fn GetMeteringData(
&self,
u32channelcount: u32,
pf32peakvalues: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(u32channelcount),
::std::mem::transmute(pf32peakvalues),
)
}
}
impl ::std::convert::From<IAudioEndpointOffloadStreamMeter> for ::windows::IUnknown {
fn from(value: IAudioEndpointOffloadStreamMeter) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioEndpointOffloadStreamMeter> for ::windows::IUnknown {
fn from(value: &IAudioEndpointOffloadStreamMeter) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioEndpointOffloadStreamMeter {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioEndpointOffloadStreamMeter {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioEndpointOffloadStreamMeter_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pu32channelcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
u32channelcount: u32,
pf32peakvalues: *mut f32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioEndpointOffloadStreamMute(::windows::IUnknown);
impl IAudioEndpointOffloadStreamMute {}
unsafe impl ::windows::Interface for IAudioEndpointOffloadStreamMute {
type Vtable = IAudioEndpointOffloadStreamMute_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3756135253,
24258,
16608,
[141, 107, 113, 10, 195, 192, 2, 73],
);
}
impl IAudioEndpointOffloadStreamMute {
pub unsafe fn SetMute(&self, bmuted: u8) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(bmuted),
)
}
pub unsafe fn GetMute(&self, pbmuted: *mut u8) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pbmuted),
)
}
}
impl ::std::convert::From<IAudioEndpointOffloadStreamMute> for ::windows::IUnknown {
fn from(value: IAudioEndpointOffloadStreamMute) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioEndpointOffloadStreamMute> for ::windows::IUnknown {
fn from(value: &IAudioEndpointOffloadStreamMute) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioEndpointOffloadStreamMute {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioEndpointOffloadStreamMute {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioEndpointOffloadStreamMute_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
bmuted: u8,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbmuted: *mut u8,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioEndpointOffloadStreamVolume(::windows::IUnknown);
impl IAudioEndpointOffloadStreamVolume {}
unsafe impl ::windows::Interface for IAudioEndpointOffloadStreamVolume {
type Vtable = IAudioEndpointOffloadStreamVolume_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1693572425,
29130,
17025,
[134, 114, 58, 158, 221, 209, 208, 182],
);
}
impl IAudioEndpointOffloadStreamVolume {
pub unsafe fn GetVolumeChannelCount(
&self,
pu32channelcount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pu32channelcount),
)
}
pub unsafe fn SetChannelVolumes(
&self,
u32channelcount: u32,
pf32volumes: *mut f32,
u32curvetype: AUDIO_CURVE_TYPE,
pcurveduration: *mut i64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(u32channelcount),
::std::mem::transmute(pf32volumes),
::std::mem::transmute(u32curvetype),
::std::mem::transmute(pcurveduration),
)
}
pub unsafe fn GetChannelVolumes(
&self,
u32channelcount: u32,
pf32volumes: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(u32channelcount),
::std::mem::transmute(pf32volumes),
)
}
}
impl ::std::convert::From<IAudioEndpointOffloadStreamVolume> for ::windows::IUnknown {
fn from(value: IAudioEndpointOffloadStreamVolume) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioEndpointOffloadStreamVolume> for ::windows::IUnknown {
fn from(value: &IAudioEndpointOffloadStreamVolume) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioEndpointOffloadStreamVolume {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioEndpointOffloadStreamVolume {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioEndpointOffloadStreamVolume_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pu32channelcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
u32channelcount: u32,
pf32volumes: *mut f32,
u32curvetype: AUDIO_CURVE_TYPE,
pcurveduration: *mut i64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
u32channelcount: u32,
pf32volumes: *mut f32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioEndpointVolume(::windows::IUnknown);
impl IAudioEndpointVolume {}
unsafe impl ::windows::Interface for IAudioEndpointVolume {
type Vtable = IAudioEndpointVolume_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1558129794,
33822,
17734,
[151, 34, 12, 247, 64, 120, 34, 154],
);
}
impl IAudioEndpointVolume {
pub unsafe fn RegisterControlChangeNotify<'a>(
&self,
pnotify: impl ::windows::IntoParam<'a, IAudioEndpointVolumeCallback>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
pnotify.into_param().abi(),
)
}
pub unsafe fn UnregisterControlChangeNotify<'a>(
&self,
pnotify: impl ::windows::IntoParam<'a, IAudioEndpointVolumeCallback>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
pnotify.into_param().abi(),
)
}
pub unsafe fn GetChannelCount(
&self,
pnchannelcount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pnchannelcount),
)
}
pub unsafe fn SetMasterVolumeLevel(
&self,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetMasterVolumeLevelScalar(
&self,
flevel: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(flevel),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn GetMasterVolumeLevel(
&self,
pfleveldb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pfleveldb),
)
}
pub unsafe fn GetMasterVolumeLevelScalar(
&self,
pflevel: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(pflevel),
)
}
pub unsafe fn SetChannelVolumeLevel(
&self,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetChannelVolumeLevelScalar(
&self,
nchannel: u32,
flevel: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(flevel),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn GetChannelVolumeLevel(
&self,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfleveldb),
)
}
pub unsafe fn GetChannelVolumeLevelScalar(
&self,
nchannel: u32,
pflevel: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pflevel),
)
}
pub unsafe fn SetMute<'a>(
&self,
bmute: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
bmute.into_param().abi(),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn GetMute(
&self,
pbmute: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(pbmute),
)
}
pub unsafe fn GetVolumeStepInfo(
&self,
pnstep: *mut u32,
pnstepcount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(pnstep),
::std::mem::transmute(pnstepcount),
)
}
pub unsafe fn VolumeStepUp(
&self,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(
::windows::Abi::abi(self),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn VolumeStepDown(
&self,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).18)(
::windows::Abi::abi(self),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn QueryHardwareSupport(
&self,
pdwhardwaresupportmask: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).19)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwhardwaresupportmask),
)
}
pub unsafe fn GetVolumeRange(
&self,
pflvolumemindb: *mut f32,
pflvolumemaxdb: *mut f32,
pflvolumeincrementdb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).20)(
::windows::Abi::abi(self),
::std::mem::transmute(pflvolumemindb),
::std::mem::transmute(pflvolumemaxdb),
::std::mem::transmute(pflvolumeincrementdb),
)
}
}
impl ::std::convert::From<IAudioEndpointVolume> for ::windows::IUnknown {
fn from(value: IAudioEndpointVolume) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioEndpointVolume> for ::windows::IUnknown {
fn from(value: &IAudioEndpointVolume) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioEndpointVolume {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioEndpointVolume {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioEndpointVolume_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnotify: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnotify: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnchannelcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
flevel: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pfleveldb: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pflevel: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
flevel: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pflevel: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
bmute: super::SystemServices::BOOL,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbmute: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnstep: *mut u32,
pnstepcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwhardwaresupportmask: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pflvolumemindb: *mut f32,
pflvolumemaxdb: *mut f32,
pflvolumeincrementdb: *mut f32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioEndpointVolumeCallback(::windows::IUnknown);
impl IAudioEndpointVolumeCallback {}
unsafe impl ::windows::Interface for IAudioEndpointVolumeCallback {
type Vtable = IAudioEndpointVolumeCallback_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1702364410,
54957,
17558,
[138, 96, 53, 39, 82, 175, 79, 137],
);
}
impl IAudioEndpointVolumeCallback {
pub unsafe fn OnNotify(
&self,
pnotify: *mut AUDIO_VOLUME_NOTIFICATION_DATA,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pnotify),
)
}
}
impl ::std::convert::From<IAudioEndpointVolumeCallback> for ::windows::IUnknown {
fn from(value: IAudioEndpointVolumeCallback) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioEndpointVolumeCallback> for ::windows::IUnknown {
fn from(value: &IAudioEndpointVolumeCallback) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioEndpointVolumeCallback {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioEndpointVolumeCallback {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioEndpointVolumeCallback_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnotify: *mut AUDIO_VOLUME_NOTIFICATION_DATA,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioEndpointVolumeEx(::windows::IUnknown);
impl IAudioEndpointVolumeEx {}
unsafe impl ::windows::Interface for IAudioEndpointVolumeEx {
type Vtable = IAudioEndpointVolumeEx_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1726027652,
63125,
20264,
[165, 5, 167, 8, 0, 129, 167, 143],
);
}
impl IAudioEndpointVolumeEx {
pub unsafe fn RegisterControlChangeNotify<'a>(
&self,
pnotify: impl ::windows::IntoParam<'a, IAudioEndpointVolumeCallback>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
pnotify.into_param().abi(),
)
}
pub unsafe fn UnregisterControlChangeNotify<'a>(
&self,
pnotify: impl ::windows::IntoParam<'a, IAudioEndpointVolumeCallback>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
pnotify.into_param().abi(),
)
}
pub unsafe fn GetChannelCount(
&self,
pnchannelcount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pnchannelcount),
)
}
pub unsafe fn SetMasterVolumeLevel(
&self,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetMasterVolumeLevelScalar(
&self,
flevel: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(flevel),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn GetMasterVolumeLevel(
&self,
pfleveldb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pfleveldb),
)
}
pub unsafe fn GetMasterVolumeLevelScalar(
&self,
pflevel: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(pflevel),
)
}
pub unsafe fn SetChannelVolumeLevel(
&self,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetChannelVolumeLevelScalar(
&self,
nchannel: u32,
flevel: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(flevel),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn GetChannelVolumeLevel(
&self,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfleveldb),
)
}
pub unsafe fn GetChannelVolumeLevelScalar(
&self,
nchannel: u32,
pflevel: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pflevel),
)
}
pub unsafe fn SetMute<'a>(
&self,
bmute: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
bmute.into_param().abi(),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn GetMute(
&self,
pbmute: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(pbmute),
)
}
pub unsafe fn GetVolumeStepInfo(
&self,
pnstep: *mut u32,
pnstepcount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(pnstep),
::std::mem::transmute(pnstepcount),
)
}
pub unsafe fn VolumeStepUp(
&self,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).17)(
::windows::Abi::abi(self),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn VolumeStepDown(
&self,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).18)(
::windows::Abi::abi(self),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn QueryHardwareSupport(
&self,
pdwhardwaresupportmask: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).19)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwhardwaresupportmask),
)
}
pub unsafe fn GetVolumeRange(
&self,
pflvolumemindb: *mut f32,
pflvolumemaxdb: *mut f32,
pflvolumeincrementdb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).20)(
::windows::Abi::abi(self),
::std::mem::transmute(pflvolumemindb),
::std::mem::transmute(pflvolumemaxdb),
::std::mem::transmute(pflvolumeincrementdb),
)
}
pub unsafe fn GetVolumeRangeChannel(
&self,
ichannel: u32,
pflvolumemindb: *mut f32,
pflvolumemaxdb: *mut f32,
pflvolumeincrementdb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).21)(
::windows::Abi::abi(self),
::std::mem::transmute(ichannel),
::std::mem::transmute(pflvolumemindb),
::std::mem::transmute(pflvolumemaxdb),
::std::mem::transmute(pflvolumeincrementdb),
)
}
}
impl ::std::convert::From<IAudioEndpointVolumeEx> for ::windows::IUnknown {
fn from(value: IAudioEndpointVolumeEx) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioEndpointVolumeEx> for ::windows::IUnknown {
fn from(value: &IAudioEndpointVolumeEx) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioEndpointVolumeEx {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioEndpointVolumeEx {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioEndpointVolumeEx> for IAudioEndpointVolume {
fn from(value: IAudioEndpointVolumeEx) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioEndpointVolumeEx> for IAudioEndpointVolume {
fn from(value: &IAudioEndpointVolumeEx) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioEndpointVolume> for IAudioEndpointVolumeEx {
fn into_param(self) -> ::windows::Param<'a, IAudioEndpointVolume> {
::windows::Param::Owned(::std::convert::Into::<IAudioEndpointVolume>::into(
self,
))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioEndpointVolume> for &'a IAudioEndpointVolumeEx {
fn into_param(self) -> ::windows::Param<'a, IAudioEndpointVolume> {
::windows::Param::Owned(::std::convert::Into::<IAudioEndpointVolume>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioEndpointVolumeEx_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnotify: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnotify: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnchannelcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
flevel: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pfleveldb: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pflevel: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
flevel: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pflevel: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
bmute: super::SystemServices::BOOL,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbmute: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnstep: *mut u32,
pnstepcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwhardwaresupportmask: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pflvolumemindb: *mut f32,
pflvolumemaxdb: *mut f32,
pflvolumeincrementdb: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ichannel: u32,
pflvolumemindb: *mut f32,
pflvolumemaxdb: *mut f32,
pflvolumeincrementdb: *mut f32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioFormatEnumerator(::windows::IUnknown);
impl IAudioFormatEnumerator {}
unsafe impl ::windows::Interface for IAudioFormatEnumerator {
type Vtable = IAudioFormatEnumerator_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3705317464,
35162,
18978,
[165, 235, 103, 189, 165, 6, 9, 109],
);
}
impl IAudioFormatEnumerator {
pub unsafe fn GetCount(&self, count: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(count),
)
}
pub unsafe fn GetFormat(
&self,
index: u32,
format: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(index),
::std::mem::transmute(format),
)
}
}
impl ::std::convert::From<IAudioFormatEnumerator> for ::windows::IUnknown {
fn from(value: IAudioFormatEnumerator) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioFormatEnumerator> for ::windows::IUnknown {
fn from(value: &IAudioFormatEnumerator) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioFormatEnumerator {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioFormatEnumerator {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioFormatEnumerator_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
count: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
index: u32,
format: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioInputSelector(::windows::IUnknown);
impl IAudioInputSelector {}
unsafe impl ::windows::Interface for IAudioInputSelector {
type Vtable = IAudioInputSelector_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1325652994,
24174,
18003,
[143, 114, 160, 48, 193, 35, 213, 152],
);
}
impl IAudioInputSelector {
pub unsafe fn GetSelection(&self, pnidselected: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pnidselected),
)
}
pub unsafe fn SetSelection(
&self,
nidselect: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nidselect),
::std::mem::transmute(pguideventcontext),
)
}
}
impl ::std::convert::From<IAudioInputSelector> for ::windows::IUnknown {
fn from(value: IAudioInputSelector) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioInputSelector> for ::windows::IUnknown {
fn from(value: &IAudioInputSelector) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioInputSelector {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioInputSelector {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioInputSelector_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnidselected: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nidselect: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioLfxControl(::windows::IUnknown);
impl IAudioLfxControl {}
unsafe impl ::windows::Interface for IAudioLfxControl {
type Vtable = IAudioLfxControl_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
124414242,
55298,
20355,
[186, 246, 64, 157, 156, 161, 27, 254],
);
}
impl IAudioLfxControl {
pub unsafe fn SetLocalEffectsState<'a>(
&self,
benabled: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
benabled.into_param().abi(),
)
}
pub unsafe fn GetLocalEffectsState(
&self,
pbenabled: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pbenabled),
)
}
}
impl ::std::convert::From<IAudioLfxControl> for ::windows::IUnknown {
fn from(value: IAudioLfxControl) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioLfxControl> for ::windows::IUnknown {
fn from(value: &IAudioLfxControl) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioLfxControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioLfxControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioLfxControl_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
benabled: super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbenabled: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioLoudness(::windows::IUnknown);
impl IAudioLoudness {}
unsafe impl ::windows::Interface for IAudioLoudness {
type Vtable = IAudioLoudness_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2106266679,
56659,
17232,
[156, 27, 30, 226, 137, 11, 217, 56],
);
}
impl IAudioLoudness {
pub unsafe fn GetEnabled(
&self,
pbenabled: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pbenabled),
)
}
pub unsafe fn SetEnabled<'a>(
&self,
benable: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
benable.into_param().abi(),
::std::mem::transmute(pguideventcontext),
)
}
}
impl ::std::convert::From<IAudioLoudness> for ::windows::IUnknown {
fn from(value: IAudioLoudness) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioLoudness> for ::windows::IUnknown {
fn from(value: &IAudioLoudness) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioLoudness {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioLoudness {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioLoudness_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbenabled: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
benable: super::SystemServices::BOOL,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioMeterInformation(::windows::IUnknown);
impl IAudioMeterInformation {}
unsafe impl ::windows::Interface for IAudioMeterInformation {
type Vtable = IAudioMeterInformation_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3223459574,
35943,
19291,
[157, 0, 208, 8, 231, 62, 0, 100],
);
}
impl IAudioMeterInformation {
pub unsafe fn GetPeakValue(&self, pfpeak: *mut f32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pfpeak),
)
}
pub unsafe fn GetMeteringChannelCount(
&self,
pnchannelcount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pnchannelcount),
)
}
pub unsafe fn GetChannelsPeakValues(
&self,
u32channelcount: u32,
afpeakvalues: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(u32channelcount),
::std::mem::transmute(afpeakvalues),
)
}
pub unsafe fn QueryHardwareSupport(
&self,
pdwhardwaresupportmask: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwhardwaresupportmask),
)
}
}
impl ::std::convert::From<IAudioMeterInformation> for ::windows::IUnknown {
fn from(value: IAudioMeterInformation) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioMeterInformation> for ::windows::IUnknown {
fn from(value: &IAudioMeterInformation) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioMeterInformation {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioMeterInformation {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioMeterInformation_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pfpeak: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnchannelcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
u32channelcount: u32,
afpeakvalues: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwhardwaresupportmask: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioMidrange(::windows::IUnknown);
impl IAudioMidrange {}
unsafe impl ::windows::Interface for IAudioMidrange {
type Vtable = IAudioMidrange_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1582610135,
46155,
16601,
[154, 158, 230, 145, 217, 206, 110, 223],
);
}
impl IAudioMidrange {
pub unsafe fn GetChannelCount(&self, pcchannels: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcchannels),
)
}
pub unsafe fn GetLevelRange(
&self,
nchannel: u32,
pfminleveldb: *mut f32,
pfmaxleveldb: *mut f32,
pfstepping: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfminleveldb),
::std::mem::transmute(pfmaxleveldb),
::std::mem::transmute(pfstepping),
)
}
pub unsafe fn GetLevel(
&self,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfleveldb),
)
}
pub unsafe fn SetLevel(
&self,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetLevelUniform(
&self,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetLevelAllChannels(
&self,
alevelsdb: *mut f32,
cchannels: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(alevelsdb),
::std::mem::transmute(cchannels),
::std::mem::transmute(pguideventcontext),
)
}
}
impl ::std::convert::From<IAudioMidrange> for ::windows::IUnknown {
fn from(value: IAudioMidrange) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioMidrange> for ::windows::IUnknown {
fn from(value: &IAudioMidrange) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioMidrange {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioMidrange {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioMidrange> for IPerChannelDbLevel {
fn from(value: IAudioMidrange) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioMidrange> for IPerChannelDbLevel {
fn from(value: &IAudioMidrange) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IPerChannelDbLevel> for IAudioMidrange {
fn into_param(self) -> ::windows::Param<'a, IPerChannelDbLevel> {
::windows::Param::Owned(::std::convert::Into::<IPerChannelDbLevel>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IPerChannelDbLevel> for &'a IAudioMidrange {
fn into_param(self) -> ::windows::Param<'a, IPerChannelDbLevel> {
::windows::Param::Owned(::std::convert::Into::<IPerChannelDbLevel>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioMidrange_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcchannels: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfminleveldb: *mut f32,
pfmaxleveldb: *mut f32,
pfstepping: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
alevelsdb: *mut f32,
cchannels: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioMute(::windows::IUnknown);
impl IAudioMute {}
unsafe impl ::windows::Interface for IAudioMute {
type Vtable = IAudioMute_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3745885930,
46922,
19307,
[175, 173, 35, 102, 182, 170, 1, 46],
);
}
impl IAudioMute {
pub unsafe fn SetMute<'a>(
&self,
bmuted: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
bmuted.into_param().abi(),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn GetMute(
&self,
pbmuted: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pbmuted),
)
}
}
impl ::std::convert::From<IAudioMute> for ::windows::IUnknown {
fn from(value: IAudioMute) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioMute> for ::windows::IUnknown {
fn from(value: &IAudioMute) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioMute {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioMute {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioMute_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
bmuted: super::SystemServices::BOOL,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbmuted: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioOutputSelector(::windows::IUnknown);
impl IAudioOutputSelector {}
unsafe impl ::windows::Interface for IAudioOutputSelector {
type Vtable = IAudioOutputSelector_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3142672233,
38055,
17054,
[139, 156, 39, 27, 63, 17, 163, 171],
);
}
impl IAudioOutputSelector {
pub unsafe fn GetSelection(&self, pnidselected: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pnidselected),
)
}
pub unsafe fn SetSelection(
&self,
nidselect: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nidselect),
::std::mem::transmute(pguideventcontext),
)
}
}
impl ::std::convert::From<IAudioOutputSelector> for ::windows::IUnknown {
fn from(value: IAudioOutputSelector) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioOutputSelector> for ::windows::IUnknown {
fn from(value: &IAudioOutputSelector) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioOutputSelector {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioOutputSelector {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioOutputSelector_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnidselected: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nidselect: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioPeakMeter(::windows::IUnknown);
impl IAudioPeakMeter {}
unsafe impl ::windows::Interface for IAudioPeakMeter {
type Vtable = IAudioPeakMeter_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3715732028,
1433,
17888,
[184, 182, 200, 223, 125, 182, 231, 150],
);
}
impl IAudioPeakMeter {
pub unsafe fn GetChannelCount(&self, pcchannels: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcchannels),
)
}
pub unsafe fn GetLevel(
&self,
nchannel: u32,
pflevel: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pflevel),
)
}
}
impl ::std::convert::From<IAudioPeakMeter> for ::windows::IUnknown {
fn from(value: IAudioPeakMeter) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioPeakMeter> for ::windows::IUnknown {
fn from(value: &IAudioPeakMeter) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioPeakMeter {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioPeakMeter {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioPeakMeter_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcchannels: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pflevel: *mut f32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioRenderClient(::windows::IUnknown);
impl IAudioRenderClient {}
unsafe impl ::windows::Interface for IAudioRenderClient {
type Vtable = IAudioRenderClient_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
4069829884,
12614,
17539,
[167, 191, 173, 220, 167, 194, 96, 226],
);
}
impl IAudioRenderClient {
pub unsafe fn GetBuffer(
&self,
numframesrequested: u32,
ppdata: *mut *mut u8,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(numframesrequested),
::std::mem::transmute(ppdata),
)
}
pub unsafe fn ReleaseBuffer(
&self,
numframeswritten: u32,
dwflags: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(numframeswritten),
::std::mem::transmute(dwflags),
)
}
}
impl ::std::convert::From<IAudioRenderClient> for ::windows::IUnknown {
fn from(value: IAudioRenderClient) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioRenderClient> for ::windows::IUnknown {
fn from(value: &IAudioRenderClient) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioRenderClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioRenderClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioRenderClient_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
numframesrequested: u32,
ppdata: *mut *mut u8,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
numframeswritten: u32,
dwflags: u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioSessionControl(::windows::IUnknown);
impl IAudioSessionControl {}
unsafe impl ::windows::Interface for IAudioSessionControl {
type Vtable = IAudioSessionControl_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
4105282969,
29286,
17177,
[168, 202, 231, 10, 203, 17, 232, 205],
);
}
impl IAudioSessionControl {
pub unsafe fn GetState(
&self,
pretval: *mut AudioSessionState,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn GetDisplayName(
&self,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn SetDisplayName<'a>(
&self,
value: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
value.into_param().abi(),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn GetIconPath(
&self,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn SetIconPath<'a>(
&self,
value: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
value.into_param().abi(),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn GetGroupingParam(
&self,
pretval: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn SetGroupingParam(
&self,
r#override: *mut ::windows::Guid,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(r#override),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn RegisterAudioSessionNotification<'a>(
&self,
newnotifications: impl ::windows::IntoParam<'a, IAudioSessionEvents>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
newnotifications.into_param().abi(),
)
}
pub unsafe fn UnregisterAudioSessionNotification<'a>(
&self,
newnotifications: impl ::windows::IntoParam<'a, IAudioSessionEvents>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
newnotifications.into_param().abi(),
)
}
}
impl ::std::convert::From<IAudioSessionControl> for ::windows::IUnknown {
fn from(value: IAudioSessionControl) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSessionControl> for ::windows::IUnknown {
fn from(value: &IAudioSessionControl) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioSessionControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioSessionControl {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioSessionControl_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut AudioSessionState,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
value: super::SystemServices::PWSTR,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
value: super::SystemServices::PWSTR,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
r#override: *mut ::windows::Guid,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
newnotifications: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
newnotifications: ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioSessionControl2(::windows::IUnknown);
impl IAudioSessionControl2 {}
unsafe impl ::windows::Interface for IAudioSessionControl2 {
type Vtable = IAudioSessionControl2_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3216506760,
29241,
20425,
[143, 162, 7, 201, 80, 190, 156, 109],
);
}
impl IAudioSessionControl2 {
pub unsafe fn GetState(
&self,
pretval: *mut AudioSessionState,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn GetDisplayName(
&self,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn SetDisplayName<'a>(
&self,
value: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
value.into_param().abi(),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn GetIconPath(
&self,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn SetIconPath<'a>(
&self,
value: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
value.into_param().abi(),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn GetGroupingParam(
&self,
pretval: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn SetGroupingParam(
&self,
r#override: *mut ::windows::Guid,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(r#override),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn RegisterAudioSessionNotification<'a>(
&self,
newnotifications: impl ::windows::IntoParam<'a, IAudioSessionEvents>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
newnotifications.into_param().abi(),
)
}
pub unsafe fn UnregisterAudioSessionNotification<'a>(
&self,
newnotifications: impl ::windows::IntoParam<'a, IAudioSessionEvents>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
newnotifications.into_param().abi(),
)
}
pub unsafe fn GetSessionIdentifier(
&self,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn GetSessionInstanceIdentifier(
&self,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn GetProcessId(&self, pretval: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(pretval),
)
}
pub unsafe fn IsSystemSoundsSession(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(::windows::Abi::abi(self))
}
pub unsafe fn SetDuckingPreference<'a>(
&self,
optout: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
optout.into_param().abi(),
)
}
}
impl ::std::convert::From<IAudioSessionControl2> for ::windows::IUnknown {
fn from(value: IAudioSessionControl2) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSessionControl2> for ::windows::IUnknown {
fn from(value: &IAudioSessionControl2) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioSessionControl2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioSessionControl2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioSessionControl2> for IAudioSessionControl {
fn from(value: IAudioSessionControl2) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSessionControl2> for IAudioSessionControl {
fn from(value: &IAudioSessionControl2) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioSessionControl> for IAudioSessionControl2 {
fn into_param(self) -> ::windows::Param<'a, IAudioSessionControl> {
::windows::Param::Owned(::std::convert::Into::<IAudioSessionControl>::into(
self,
))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioSessionControl> for &'a IAudioSessionControl2 {
fn into_param(self) -> ::windows::Param<'a, IAudioSessionControl> {
::windows::Param::Owned(::std::convert::Into::<IAudioSessionControl>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioSessionControl2_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut AudioSessionState,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
value: super::SystemServices::PWSTR,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
value: super::SystemServices::PWSTR,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
r#override: *mut ::windows::Guid,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
newnotifications: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
newnotifications: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pretval: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
optout: super::SystemServices::BOOL,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioSessionEnumerator(::windows::IUnknown);
impl IAudioSessionEnumerator {}
unsafe impl ::windows::Interface for IAudioSessionEnumerator {
type Vtable = IAudioSessionEnumerator_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3807755025,
1392,
16586,
[172, 221, 58, 160, 18, 119, 222, 232],
);
}
impl IAudioSessionEnumerator {
pub unsafe fn GetCount(&self, sessioncount: *mut i32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(sessioncount),
)
}
pub unsafe fn GetSession(
&self,
sessioncount: i32,
session: *mut ::std::option::Option<IAudioSessionControl>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(sessioncount),
::std::mem::transmute(session),
)
}
}
impl ::std::convert::From<IAudioSessionEnumerator> for ::windows::IUnknown {
fn from(value: IAudioSessionEnumerator) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSessionEnumerator> for ::windows::IUnknown {
fn from(value: &IAudioSessionEnumerator) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioSessionEnumerator {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioSessionEnumerator {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioSessionEnumerator_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sessioncount: *mut i32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sessioncount: i32,
session: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioSessionEvents(::windows::IUnknown);
impl IAudioSessionEvents {}
unsafe impl ::windows::Interface for IAudioSessionEvents {
type Vtable = IAudioSessionEvents_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
613518028,
25779,
14273,
[140, 169, 116, 166, 110, 153, 87, 168],
);
}
impl IAudioSessionEvents {
pub unsafe fn OnDisplayNameChanged<'a>(
&self,
newdisplayname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
newdisplayname.into_param().abi(),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn OnIconPathChanged<'a>(
&self,
newiconpath: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
newiconpath.into_param().abi(),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn OnSimpleVolumeChanged<'a>(
&self,
newvolume: f32,
newmute: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(newvolume),
newmute.into_param().abi(),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn OnChannelVolumeChanged(
&self,
channelcount: u32,
newchannelvolumearray: *mut f32,
changedchannel: u32,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(channelcount),
::std::mem::transmute(newchannelvolumearray),
::std::mem::transmute(changedchannel),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn OnGroupingParamChanged(
&self,
newgroupingparam: *mut ::windows::Guid,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(newgroupingparam),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn OnStateChanged(
&self,
newstate: AudioSessionState,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(newstate),
)
}
pub unsafe fn OnSessionDisconnected(
&self,
disconnectreason: AudioSessionDisconnectReason,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(disconnectreason),
)
}
}
impl ::std::convert::From<IAudioSessionEvents> for ::windows::IUnknown {
fn from(value: IAudioSessionEvents) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSessionEvents> for ::windows::IUnknown {
fn from(value: &IAudioSessionEvents) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioSessionEvents {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioSessionEvents {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioSessionEvents_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
newdisplayname: super::SystemServices::PWSTR,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
newiconpath: super::SystemServices::PWSTR,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
newvolume: f32,
newmute: super::SystemServices::BOOL,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
channelcount: u32,
newchannelvolumearray: *mut f32,
changedchannel: u32,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
newgroupingparam: *mut ::windows::Guid,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
newstate: AudioSessionState,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
disconnectreason: AudioSessionDisconnectReason,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioSessionManager(::windows::IUnknown);
impl IAudioSessionManager {}
unsafe impl ::windows::Interface for IAudioSessionManager {
type Vtable = IAudioSessionManager_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3215553009,
19806,
16571,
[147, 94, 150, 112, 57, 191, 190, 228],
);
}
impl IAudioSessionManager {
pub unsafe fn GetAudioSessionControl(
&self,
audiosessionguid: *mut ::windows::Guid,
streamflags: u32,
sessioncontrol: *mut ::std::option::Option<IAudioSessionControl>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(audiosessionguid),
::std::mem::transmute(streamflags),
::std::mem::transmute(sessioncontrol),
)
}
pub unsafe fn GetSimpleAudioVolume(
&self,
audiosessionguid: *mut ::windows::Guid,
streamflags: u32,
audiovolume: *mut ::std::option::Option<ISimpleAudioVolume>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(audiosessionguid),
::std::mem::transmute(streamflags),
::std::mem::transmute(audiovolume),
)
}
}
impl ::std::convert::From<IAudioSessionManager> for ::windows::IUnknown {
fn from(value: IAudioSessionManager) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSessionManager> for ::windows::IUnknown {
fn from(value: &IAudioSessionManager) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioSessionManager {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioSessionManager {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioSessionManager_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
audiosessionguid: *mut ::windows::Guid,
streamflags: u32,
sessioncontrol: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
audiosessionguid: *mut ::windows::Guid,
streamflags: u32,
audiovolume: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioSessionManager2(::windows::IUnknown);
impl IAudioSessionManager2 {}
unsafe impl ::windows::Interface for IAudioSessionManager2 {
type Vtable = IAudioSessionManager2_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2007669152,
7126,
18511,
[139, 199, 44, 101, 76, 154, 155, 111],
);
}
impl IAudioSessionManager2 {
pub unsafe fn GetAudioSessionControl(
&self,
audiosessionguid: *mut ::windows::Guid,
streamflags: u32,
sessioncontrol: *mut ::std::option::Option<IAudioSessionControl>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(audiosessionguid),
::std::mem::transmute(streamflags),
::std::mem::transmute(sessioncontrol),
)
}
pub unsafe fn GetSimpleAudioVolume(
&self,
audiosessionguid: *mut ::windows::Guid,
streamflags: u32,
audiovolume: *mut ::std::option::Option<ISimpleAudioVolume>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(audiosessionguid),
::std::mem::transmute(streamflags),
::std::mem::transmute(audiovolume),
)
}
pub unsafe fn GetSessionEnumerator(
&self,
sessionenum: *mut ::std::option::Option<IAudioSessionEnumerator>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(sessionenum),
)
}
pub unsafe fn RegisterSessionNotification<'a>(
&self,
sessionnotification: impl ::windows::IntoParam<'a, IAudioSessionNotification>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
sessionnotification.into_param().abi(),
)
}
pub unsafe fn UnregisterSessionNotification<'a>(
&self,
sessionnotification: impl ::windows::IntoParam<'a, IAudioSessionNotification>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
sessionnotification.into_param().abi(),
)
}
pub unsafe fn RegisterDuckNotification<'a>(
&self,
sessionid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
ducknotification: impl ::windows::IntoParam<'a, IAudioVolumeDuckNotification>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
sessionid.into_param().abi(),
ducknotification.into_param().abi(),
)
}
pub unsafe fn UnregisterDuckNotification<'a>(
&self,
ducknotification: impl ::windows::IntoParam<'a, IAudioVolumeDuckNotification>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
ducknotification.into_param().abi(),
)
}
}
impl ::std::convert::From<IAudioSessionManager2> for ::windows::IUnknown {
fn from(value: IAudioSessionManager2) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSessionManager2> for ::windows::IUnknown {
fn from(value: &IAudioSessionManager2) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioSessionManager2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioSessionManager2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioSessionManager2> for IAudioSessionManager {
fn from(value: IAudioSessionManager2) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSessionManager2> for IAudioSessionManager {
fn from(value: &IAudioSessionManager2) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioSessionManager> for IAudioSessionManager2 {
fn into_param(self) -> ::windows::Param<'a, IAudioSessionManager> {
::windows::Param::Owned(::std::convert::Into::<IAudioSessionManager>::into(
self,
))
}
}
impl<'a> ::windows::IntoParam<'a, IAudioSessionManager> for &'a IAudioSessionManager2 {
fn into_param(self) -> ::windows::Param<'a, IAudioSessionManager> {
::windows::Param::Owned(::std::convert::Into::<IAudioSessionManager>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioSessionManager2_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
audiosessionguid: *mut ::windows::Guid,
streamflags: u32,
sessioncontrol: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
audiosessionguid: *mut ::windows::Guid,
streamflags: u32,
audiovolume: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sessionenum: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sessionnotification: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sessionnotification: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sessionid: super::SystemServices::PWSTR,
ducknotification: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ducknotification: ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioSessionNotification(::windows::IUnknown);
impl IAudioSessionNotification {}
unsafe impl ::windows::Interface for IAudioSessionNotification {
type Vtable = IAudioSessionNotification_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1679675915,
19777,
18892,
[171, 163, 23, 75, 148, 119, 187, 8],
);
}
impl IAudioSessionNotification {
pub unsafe fn OnSessionCreated<'a>(
&self,
newsession: impl ::windows::IntoParam<'a, IAudioSessionControl>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
newsession.into_param().abi(),
)
}
}
impl ::std::convert::From<IAudioSessionNotification> for ::windows::IUnknown {
fn from(value: IAudioSessionNotification) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioSessionNotification> for ::windows::IUnknown {
fn from(value: &IAudioSessionNotification) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioSessionNotification {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioSessionNotification {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioSessionNotification_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
newsession: ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioStreamVolume(::windows::IUnknown);
impl IAudioStreamVolume {}
unsafe impl ::windows::Interface for IAudioStreamVolume {
type Vtable = IAudioStreamVolume_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2466334855,
9261,
16488,
[138, 21, 207, 94, 147, 185, 15, 227],
);
}
impl IAudioStreamVolume {
pub unsafe fn GetChannelCount(&self, pdwcount: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwcount),
)
}
pub unsafe fn SetChannelVolume(
&self,
dwindex: u32,
flevel: f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(dwindex),
::std::mem::transmute(flevel),
)
}
pub unsafe fn GetChannelVolume(
&self,
dwindex: u32,
pflevel: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(dwindex),
::std::mem::transmute(pflevel),
)
}
pub unsafe fn SetAllVolumes(
&self,
dwcount: u32,
pfvolumes: *const f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(dwcount),
::std::mem::transmute(pfvolumes),
)
}
pub unsafe fn GetAllVolumes(
&self,
dwcount: u32,
pfvolumes: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(dwcount),
::std::mem::transmute(pfvolumes),
)
}
}
impl ::std::convert::From<IAudioStreamVolume> for ::windows::IUnknown {
fn from(value: IAudioStreamVolume) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioStreamVolume> for ::windows::IUnknown {
fn from(value: &IAudioStreamVolume) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioStreamVolume {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioStreamVolume {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioStreamVolume_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwindex: u32,
flevel: f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwindex: u32,
pflevel: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwcount: u32,
pfvolumes: *const f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwcount: u32,
pfvolumes: *mut f32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioTreble(::windows::IUnknown);
impl IAudioTreble {}
unsafe impl ::windows::Interface for IAudioTreble {
type Vtable = IAudioTreble_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
175208466,
26958,
18695,
[183, 75, 186, 250, 92, 253, 202, 123],
);
}
impl IAudioTreble {
pub unsafe fn GetChannelCount(&self, pcchannels: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcchannels),
)
}
pub unsafe fn GetLevelRange(
&self,
nchannel: u32,
pfminleveldb: *mut f32,
pfmaxleveldb: *mut f32,
pfstepping: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfminleveldb),
::std::mem::transmute(pfmaxleveldb),
::std::mem::transmute(pfstepping),
)
}
pub unsafe fn GetLevel(
&self,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfleveldb),
)
}
pub unsafe fn SetLevel(
&self,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetLevelUniform(
&self,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetLevelAllChannels(
&self,
alevelsdb: *mut f32,
cchannels: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(alevelsdb),
::std::mem::transmute(cchannels),
::std::mem::transmute(pguideventcontext),
)
}
}
impl ::std::convert::From<IAudioTreble> for ::windows::IUnknown {
fn from(value: IAudioTreble) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioTreble> for ::windows::IUnknown {
fn from(value: &IAudioTreble) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioTreble {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioTreble {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioTreble> for IPerChannelDbLevel {
fn from(value: IAudioTreble) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioTreble> for IPerChannelDbLevel {
fn from(value: &IAudioTreble) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IPerChannelDbLevel> for IAudioTreble {
fn into_param(self) -> ::windows::Param<'a, IPerChannelDbLevel> {
::windows::Param::Owned(::std::convert::Into::<IPerChannelDbLevel>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IPerChannelDbLevel> for &'a IAudioTreble {
fn into_param(self) -> ::windows::Param<'a, IPerChannelDbLevel> {
::windows::Param::Owned(::std::convert::Into::<IPerChannelDbLevel>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioTreble_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcchannels: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfminleveldb: *mut f32,
pfmaxleveldb: *mut f32,
pfstepping: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
alevelsdb: *mut f32,
cchannels: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioVolumeDuckNotification(::windows::IUnknown);
impl IAudioVolumeDuckNotification {}
unsafe impl ::windows::Interface for IAudioVolumeDuckNotification {
type Vtable = IAudioVolumeDuckNotification_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3283256532,
27961,
17241,
[179, 207, 181, 109, 219, 59, 179, 156],
);
}
impl IAudioVolumeDuckNotification {
pub unsafe fn OnVolumeDuckNotification<'a>(
&self,
sessionid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
countcommunicationsessions: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
sessionid.into_param().abi(),
::std::mem::transmute(countcommunicationsessions),
)
}
pub unsafe fn OnVolumeUnduckNotification<'a>(
&self,
sessionid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
sessionid.into_param().abi(),
)
}
}
impl ::std::convert::From<IAudioVolumeDuckNotification> for ::windows::IUnknown {
fn from(value: IAudioVolumeDuckNotification) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioVolumeDuckNotification> for ::windows::IUnknown {
fn from(value: &IAudioVolumeDuckNotification) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioVolumeDuckNotification {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioVolumeDuckNotification {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioVolumeDuckNotification_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sessionid: super::SystemServices::PWSTR,
countcommunicationsessions: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sessionid: super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IAudioVolumeLevel(::windows::IUnknown);
impl IAudioVolumeLevel {}
unsafe impl ::windows::Interface for IAudioVolumeLevel {
type Vtable = IAudioVolumeLevel_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2142745743,
21277,
17570,
[188, 179, 90, 213, 161, 52, 179, 220],
);
}
impl IAudioVolumeLevel {
pub unsafe fn GetChannelCount(&self, pcchannels: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcchannels),
)
}
pub unsafe fn GetLevelRange(
&self,
nchannel: u32,
pfminleveldb: *mut f32,
pfmaxleveldb: *mut f32,
pfstepping: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfminleveldb),
::std::mem::transmute(pfmaxleveldb),
::std::mem::transmute(pfstepping),
)
}
pub unsafe fn GetLevel(
&self,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(pfleveldb),
)
}
pub unsafe fn SetLevel(
&self,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(nchannel),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetLevelUniform(
&self,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(fleveldb),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn SetLevelAllChannels(
&self,
alevelsdb: *mut f32,
cchannels: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(alevelsdb),
::std::mem::transmute(cchannels),
::std::mem::transmute(pguideventcontext),
)
}
}
impl ::std::convert::From<IAudioVolumeLevel> for ::windows::IUnknown {
fn from(value: IAudioVolumeLevel) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioVolumeLevel> for ::windows::IUnknown {
fn from(value: &IAudioVolumeLevel) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IAudioVolumeLevel {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IAudioVolumeLevel {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IAudioVolumeLevel> for IPerChannelDbLevel {
fn from(value: IAudioVolumeLevel) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IAudioVolumeLevel> for IPerChannelDbLevel {
fn from(value: &IAudioVolumeLevel) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, IPerChannelDbLevel> for IAudioVolumeLevel {
fn into_param(self) -> ::windows::Param<'a, IPerChannelDbLevel> {
::windows::Param::Owned(::std::convert::Into::<IPerChannelDbLevel>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, IPerChannelDbLevel> for &'a IAudioVolumeLevel {
fn into_param(self) -> ::windows::Param<'a, IPerChannelDbLevel> {
::windows::Param::Owned(::std::convert::Into::<IPerChannelDbLevel>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IAudioVolumeLevel_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcchannels: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfminleveldb: *mut f32,
pfmaxleveldb: *mut f32,
pfstepping: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
pfleveldb: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nchannel: u32,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
fleveldb: f32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
alevelsdb: *mut f32,
cchannels: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IChannelAudioVolume(::windows::IUnknown);
impl IChannelAudioVolume {}
unsafe impl ::windows::Interface for IChannelAudioVolume {
type Vtable = IChannelAudioVolume_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
471173217,
46387,
19248,
[177, 207, 232, 83, 229, 28, 89, 184],
);
}
impl IChannelAudioVolume {
pub unsafe fn GetChannelCount(&self, pdwcount: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pdwcount),
)
}
pub unsafe fn SetChannelVolume(
&self,
dwindex: u32,
flevel: f32,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(dwindex),
::std::mem::transmute(flevel),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn GetChannelVolume(
&self,
dwindex: u32,
pflevel: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(dwindex),
::std::mem::transmute(pflevel),
)
}
pub unsafe fn SetAllVolumes(
&self,
dwcount: u32,
pfvolumes: *const f32,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(dwcount),
::std::mem::transmute(pfvolumes),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn GetAllVolumes(
&self,
dwcount: u32,
pfvolumes: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(dwcount),
::std::mem::transmute(pfvolumes),
)
}
}
impl ::std::convert::From<IChannelAudioVolume> for ::windows::IUnknown {
fn from(value: IChannelAudioVolume) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IChannelAudioVolume> for ::windows::IUnknown {
fn from(value: &IChannelAudioVolume) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IChannelAudioVolume {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IChannelAudioVolume {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IChannelAudioVolume_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdwcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwindex: u32,
flevel: f32,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwindex: u32,
pflevel: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwcount: u32,
pfvolumes: *const f32,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwcount: u32,
pfvolumes: *mut f32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IConnector(::windows::IUnknown);
impl IConnector {}
unsafe impl ::windows::Interface for IConnector {
type Vtable = IConnector_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2620145752,
9205,
16862,
[135, 122, 223, 58, 242, 54, 160, 158],
);
}
impl IConnector {
pub unsafe fn GetType(&self, ptype: *mut ConnectorType) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(ptype),
)
}
pub unsafe fn GetDataFlow(&self, pflow: *mut DataFlow) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pflow),
)
}
pub unsafe fn ConnectTo<'a>(
&self,
pconnectto: impl ::windows::IntoParam<'a, IConnector>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
pconnectto.into_param().abi(),
)
}
pub unsafe fn Disconnect(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(::windows::Abi::abi(self))
}
pub unsafe fn IsConnected(
&self,
pbconnected: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(pbconnected),
)
}
pub unsafe fn GetConnectedTo(
&self,
ppconto: *mut ::std::option::Option<IConnector>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(ppconto),
)
}
pub unsafe fn GetConnectorIdConnectedTo(
&self,
ppwstrconnectorid: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(ppwstrconnectorid),
)
}
pub unsafe fn GetDeviceIdConnectedTo(
&self,
ppwstrdeviceid: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(ppwstrdeviceid),
)
}
}
impl ::std::convert::From<IConnector> for ::windows::IUnknown {
fn from(value: IConnector) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IConnector> for ::windows::IUnknown {
fn from(value: &IConnector) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IConnector {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IConnector {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IConnector_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ptype: *mut ConnectorType,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pflow: *mut DataFlow,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pconnectto: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbconnected: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppconto: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppwstrconnectorid: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppwstrdeviceid: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IControlChangeNotify(::windows::IUnknown);
impl IControlChangeNotify {}
unsafe impl ::windows::Interface for IControlChangeNotify {
type Vtable = IControlChangeNotify_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2694124525,
50953,
19745,
[189, 123, 95, 52, 196, 127, 57, 71],
);
}
impl IControlChangeNotify {
pub unsafe fn OnNotify(
&self,
dwsenderprocessid: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(dwsenderprocessid),
::std::mem::transmute(pguideventcontext),
)
}
}
impl ::std::convert::From<IControlChangeNotify> for ::windows::IUnknown {
fn from(value: IControlChangeNotify) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IControlChangeNotify> for ::windows::IUnknown {
fn from(value: &IControlChangeNotify) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IControlChangeNotify {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IControlChangeNotify {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlChangeNotify_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwsenderprocessid: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IControlInterface(::windows::IUnknown);
impl IControlInterface {}
unsafe impl ::windows::Interface for IControlInterface {
type Vtable = IControlInterface_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1171487807,
20800,
17482,
[174, 36, 64, 7, 137, 243, 203, 243],
);
}
impl IControlInterface {
pub unsafe fn GetName(
&self,
ppwstrname: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(ppwstrname),
)
}
pub unsafe fn GetIID(&self, piid: *mut ::windows::Guid) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(piid),
)
}
}
impl ::std::convert::From<IControlInterface> for ::windows::IUnknown {
fn from(value: IControlInterface) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IControlInterface> for ::windows::IUnknown {
fn from(value: &IControlInterface) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IControlInterface {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IControlInterface {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IControlInterface_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppwstrname: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
piid: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDeviceSpecificProperty(::windows::IUnknown);
impl IDeviceSpecificProperty {}
unsafe impl ::windows::Interface for IDeviceSpecificProperty {
type Vtable = IDeviceSpecificProperty_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
992132287,
9606,
19184,
[133, 131, 32, 93, 57, 27, 128, 124],
);
}
impl IDeviceSpecificProperty {
pub unsafe fn GetType(&self, pvtype: *mut u16) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pvtype),
)
}
pub unsafe fn GetValue(
&self,
pvvalue: *mut ::std::ffi::c_void,
pcbvalue: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pvvalue),
::std::mem::transmute(pcbvalue),
)
}
pub unsafe fn SetValue(
&self,
pvvalue: *mut ::std::ffi::c_void,
cbvalue: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pvvalue),
::std::mem::transmute(cbvalue),
::std::mem::transmute(pguideventcontext),
)
}
pub unsafe fn Get4BRange(
&self,
plmin: *mut i32,
plmax: *mut i32,
plstepping: *mut i32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(plmin),
::std::mem::transmute(plmax),
::std::mem::transmute(plstepping),
)
}
}
impl ::std::convert::From<IDeviceSpecificProperty> for ::windows::IUnknown {
fn from(value: IDeviceSpecificProperty) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDeviceSpecificProperty> for ::windows::IUnknown {
fn from(value: &IDeviceSpecificProperty) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDeviceSpecificProperty {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDeviceSpecificProperty {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDeviceSpecificProperty_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvtype: *mut u16,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvvalue: *mut ::std::ffi::c_void,
pcbvalue: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pvvalue: *mut ::std::ffi::c_void,
cbvalue: u32,
pguideventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
plmin: *mut i32,
plmax: *mut i32,
plstepping: *mut i32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IDeviceTopology(::windows::IUnknown);
impl IDeviceTopology {}
unsafe impl ::windows::Interface for IDeviceTopology {
type Vtable = IDeviceTopology_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
705118334,
25751,
18968,
[151, 135, 50, 247, 155, 208, 217, 143],
);
}
impl IDeviceTopology {
pub unsafe fn GetConnectorCount(&self, pcount: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcount),
)
}
pub unsafe fn GetConnector(
&self,
nindex: u32,
ppconnector: *mut ::std::option::Option<IConnector>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nindex),
::std::mem::transmute(ppconnector),
)
}
pub unsafe fn GetSubunitCount(&self, pcount: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(pcount),
)
}
pub unsafe fn GetSubunit(
&self,
nindex: u32,
ppsubunit: *mut ::std::option::Option<ISubunit>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(nindex),
::std::mem::transmute(ppsubunit),
)
}
pub unsafe fn GetPartById(
&self,
nid: u32,
pppart: *mut ::std::option::Option<IPart>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(nid),
::std::mem::transmute(pppart),
)
}
pub unsafe fn GetDeviceId(
&self,
ppwstrdeviceid: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(ppwstrdeviceid),
)
}
pub unsafe fn GetSignalPath<'a>(
&self,
pipartfrom: impl ::windows::IntoParam<'a, IPart>,
pipartto: impl ::windows::IntoParam<'a, IPart>,
brejectmixedpaths: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
ppparts: *mut ::std::option::Option<IPartsList>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
pipartfrom.into_param().abi(),
pipartto.into_param().abi(),
brejectmixedpaths.into_param().abi(),
::std::mem::transmute(ppparts),
)
}
}
impl ::std::convert::From<IDeviceTopology> for ::windows::IUnknown {
fn from(value: IDeviceTopology) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IDeviceTopology> for ::windows::IUnknown {
fn from(value: &IDeviceTopology) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IDeviceTopology {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IDeviceTopology {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IDeviceTopology_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nindex: u32,
ppconnector: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nindex: u32,
ppsubunit: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nid: u32,
pppart: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppwstrdeviceid: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pipartfrom: ::windows::RawPtr,
pipartto: ::windows::RawPtr,
brejectmixedpaths: super::SystemServices::BOOL,
ppparts: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IHardwareAudioEngineBase(::windows::IUnknown);
impl IHardwareAudioEngineBase {}
unsafe impl ::windows::Interface for IHardwareAudioEngineBase {
type Vtable = IHardwareAudioEngineBase_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3990676452,
62401,
17722,
[180, 97, 34, 53, 99, 203, 216, 134],
);
}
impl IHardwareAudioEngineBase {
pub unsafe fn GetAvailableOffloadConnectorCount<'a>(
&self,
_pwstrdeviceid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
_uconnectorid: u32,
_pavailableconnectorinstancecount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
_pwstrdeviceid.into_param().abi(),
::std::mem::transmute(_uconnectorid),
::std::mem::transmute(_pavailableconnectorinstancecount),
)
}
pub unsafe fn GetEngineFormat<'a>(
&self,
pdevice: impl ::windows::IntoParam<'a, IMMDevice>,
_brequestdeviceformat: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
_ppwfxformat: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
pdevice.into_param().abi(),
_brequestdeviceformat.into_param().abi(),
::std::mem::transmute(_ppwfxformat),
)
}
pub unsafe fn SetEngineDeviceFormat<'a>(
&self,
pdevice: impl ::windows::IntoParam<'a, IMMDevice>,
_pwfxformat: *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
pdevice.into_param().abi(),
::std::mem::transmute(_pwfxformat),
)
}
pub unsafe fn SetGfxState<'a>(
&self,
pdevice: impl ::windows::IntoParam<'a, IMMDevice>,
_benable: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
pdevice.into_param().abi(),
_benable.into_param().abi(),
)
}
pub unsafe fn GetGfxState<'a>(
&self,
pdevice: impl ::windows::IntoParam<'a, IMMDevice>,
_pbenable: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
pdevice.into_param().abi(),
::std::mem::transmute(_pbenable),
)
}
}
impl ::std::convert::From<IHardwareAudioEngineBase> for ::windows::IUnknown {
fn from(value: IHardwareAudioEngineBase) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IHardwareAudioEngineBase> for ::windows::IUnknown {
fn from(value: &IHardwareAudioEngineBase) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IHardwareAudioEngineBase {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IHardwareAudioEngineBase {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IHardwareAudioEngineBase_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
_pwstrdeviceid: super::SystemServices::PWSTR,
_uconnectorid: u32,
_pavailableconnectorinstancecount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdevice: ::windows::RawPtr,
_brequestdeviceformat: super::SystemServices::BOOL,
_ppwfxformat: *mut *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdevice: ::windows::RawPtr,
_pwfxformat: *mut super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdevice: ::windows::RawPtr,
_benable: super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdevice: ::windows::RawPtr,
_pbenable: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IKsFormatSupport(::windows::IUnknown);
impl IKsFormatSupport {}
unsafe impl ::windows::Interface for IKsFormatSupport {
type Vtable = IKsFormatSupport_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1018472093,
47983,
19755,
[149, 183, 69, 45, 44, 21, 93, 181],
);
}
impl IKsFormatSupport {
pub unsafe fn IsFormatSupported(
&self,
pksformat: *mut KSDATAFORMAT,
cbformat: u32,
pbsupported: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pksformat),
::std::mem::transmute(cbformat),
::std::mem::transmute(pbsupported),
)
}
pub unsafe fn GetDevicePreferredFormat(
&self,
ppksformat: *mut *mut KSDATAFORMAT,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(ppksformat),
)
}
}
impl ::std::convert::From<IKsFormatSupport> for ::windows::IUnknown {
fn from(value: IKsFormatSupport) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IKsFormatSupport> for ::windows::IUnknown {
fn from(value: &IKsFormatSupport) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IKsFormatSupport {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IKsFormatSupport {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IKsFormatSupport_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pksformat: *mut KSDATAFORMAT,
cbformat: u32,
pbsupported: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppksformat: *mut *mut KSDATAFORMAT,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IKsJackContainerId(::windows::IUnknown);
impl IKsJackContainerId {}
unsafe impl ::windows::Interface for IKsJackContainerId {
type Vtable = IKsJackContainerId_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3382375523,
54825,
20164,
[140, 0, 229, 77, 104, 21, 66, 72],
);
}
impl IKsJackContainerId {
pub unsafe fn GetJackContainerId(
&self,
pjackcontainerid: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pjackcontainerid),
)
}
}
impl ::std::convert::From<IKsJackContainerId> for ::windows::IUnknown {
fn from(value: IKsJackContainerId) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IKsJackContainerId> for ::windows::IUnknown {
fn from(value: &IKsJackContainerId) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IKsJackContainerId {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IKsJackContainerId {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IKsJackContainerId_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pjackcontainerid: *mut ::windows::Guid,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IKsJackDescription(::windows::IUnknown);
impl IKsJackDescription {}
unsafe impl ::windows::Interface for IKsJackDescription {
type Vtable = IKsJackDescription_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1158281047,
11590,
17975,
[142, 98, 206, 125, 185, 68, 245, 123],
);
}
impl IKsJackDescription {
pub unsafe fn GetJackCount(&self, pcjacks: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcjacks),
)
}
pub unsafe fn GetJackDescription(
&self,
njack: u32,
pdescription: *mut KSJACK_DESCRIPTION,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(njack),
::std::mem::transmute(pdescription),
)
}
}
impl ::std::convert::From<IKsJackDescription> for ::windows::IUnknown {
fn from(value: IKsJackDescription) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IKsJackDescription> for ::windows::IUnknown {
fn from(value: &IKsJackDescription) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IKsJackDescription {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IKsJackDescription {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IKsJackDescription_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcjacks: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
njack: u32,
pdescription: *mut KSJACK_DESCRIPTION,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IKsJackDescription2(::windows::IUnknown);
impl IKsJackDescription2 {}
unsafe impl ::windows::Interface for IKsJackDescription2 {
type Vtable = IKsJackDescription2_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1200568987,
57545,
18471,
[146, 40, 111, 85, 5, 255, 231, 106],
);
}
impl IKsJackDescription2 {
pub unsafe fn GetJackCount(&self, pcjacks: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcjacks),
)
}
pub unsafe fn GetJackDescription2(
&self,
njack: u32,
pdescription2: *mut KSJACK_DESCRIPTION2,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(njack),
::std::mem::transmute(pdescription2),
)
}
}
impl ::std::convert::From<IKsJackDescription2> for ::windows::IUnknown {
fn from(value: IKsJackDescription2) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IKsJackDescription2> for ::windows::IUnknown {
fn from(value: &IKsJackDescription2) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IKsJackDescription2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IKsJackDescription2 {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IKsJackDescription2_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcjacks: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
njack: u32,
pdescription2: *mut KSJACK_DESCRIPTION2,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IKsJackSinkInformation(::windows::IUnknown);
impl IKsJackSinkInformation {}
unsafe impl ::windows::Interface for IKsJackSinkInformation {
type Vtable = IKsJackSinkInformation_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3653071597,
10511,
17793,
[159, 243, 97, 2, 122, 143, 229, 50],
);
}
impl IKsJackSinkInformation {
pub unsafe fn GetJackSinkInformation(
&self,
pjacksinkinformation: *mut KSJACK_SINK_INFORMATION,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pjacksinkinformation),
)
}
}
impl ::std::convert::From<IKsJackSinkInformation> for ::windows::IUnknown {
fn from(value: IKsJackSinkInformation) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IKsJackSinkInformation> for ::windows::IUnknown {
fn from(value: &IKsJackSinkInformation) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IKsJackSinkInformation {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IKsJackSinkInformation {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IKsJackSinkInformation_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pjacksinkinformation: *mut KSJACK_SINK_INFORMATION,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IMMDeviceActivator(::windows::IUnknown);
impl IMMDeviceActivator {}
unsafe impl ::windows::Interface for IMMDeviceActivator {
type Vtable = IMMDeviceActivator_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
990711460,
53417,
19214,
[147, 91, 9, 81, 103, 70, 250, 192],
);
}
impl IMMDeviceActivator {
pub unsafe fn Activate<'a>(
&self,
iid: *const ::windows::Guid,
pdevice: impl ::windows::IntoParam<'a, IMMDevice>,
pactivationparams: *mut super::StructuredStorage::PROPVARIANT,
ppinterface: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(iid),
pdevice.into_param().abi(),
::std::mem::transmute(pactivationparams),
::std::mem::transmute(ppinterface),
)
}
}
impl ::std::convert::From<IMMDeviceActivator> for ::windows::IUnknown {
fn from(value: IMMDeviceActivator) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IMMDeviceActivator> for ::windows::IUnknown {
fn from(value: &IMMDeviceActivator) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IMMDeviceActivator {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IMMDeviceActivator {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMMDeviceActivator_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: *const ::windows::Guid,
pdevice: ::windows::RawPtr,
pactivationparams: *mut super::StructuredStorage::PROPVARIANT_abi,
ppinterface: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IMMDeviceEnumerator(::windows::IUnknown);
impl IMMDeviceEnumerator {}
unsafe impl ::windows::Interface for IMMDeviceEnumerator {
type Vtable = IMMDeviceEnumerator_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2841011410,
38420,
20277,
[167, 70, 222, 141, 182, 54, 23, 230],
);
}
impl IMMDeviceEnumerator {
pub unsafe fn EnumAudioEndpoints(
&self,
dataflow: EDataFlow,
dwstatemask: u32,
ppdevices: *mut ::std::option::Option<IMMDeviceCollection>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(dataflow),
::std::mem::transmute(dwstatemask),
::std::mem::transmute(ppdevices),
)
}
pub unsafe fn GetDefaultAudioEndpoint(
&self,
dataflow: EDataFlow,
role: ERole,
ppendpoint: *mut ::std::option::Option<IMMDevice>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(dataflow),
::std::mem::transmute(role),
::std::mem::transmute(ppendpoint),
)
}
pub unsafe fn GetDevice<'a>(
&self,
pwstrid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
ppdevice: *mut ::std::option::Option<IMMDevice>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
pwstrid.into_param().abi(),
::std::mem::transmute(ppdevice),
)
}
pub unsafe fn RegisterEndpointNotificationCallback<'a>(
&self,
pclient: impl ::windows::IntoParam<'a, IMMNotificationClient>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
pclient.into_param().abi(),
)
}
pub unsafe fn UnregisterEndpointNotificationCallback<'a>(
&self,
pclient: impl ::windows::IntoParam<'a, IMMNotificationClient>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
pclient.into_param().abi(),
)
}
}
impl ::std::convert::From<IMMDeviceEnumerator> for ::windows::IUnknown {
fn from(value: IMMDeviceEnumerator) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IMMDeviceEnumerator> for ::windows::IUnknown {
fn from(value: &IMMDeviceEnumerator) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IMMDeviceEnumerator {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IMMDeviceEnumerator {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMMDeviceEnumerator_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dataflow: EDataFlow,
dwstatemask: u32,
ppdevices: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dataflow: EDataFlow,
role: ERole,
ppendpoint: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwstrid: super::SystemServices::PWSTR,
ppdevice: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pclient: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pclient: ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IMMEndpoint(::windows::IUnknown);
impl IMMEndpoint {}
unsafe impl ::windows::Interface for IMMEndpoint {
type Vtable = IMMEndpoint_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
467703688,
26772,
16521,
[133, 134, 154, 42, 108, 38, 90, 197],
);
}
impl IMMEndpoint {
pub unsafe fn GetDataFlow(&self, pdataflow: *mut EDataFlow) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pdataflow),
)
}
}
impl ::std::convert::From<IMMEndpoint> for ::windows::IUnknown {
fn from(value: IMMEndpoint) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IMMEndpoint> for ::windows::IUnknown {
fn from(value: &IMMEndpoint) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IMMEndpoint {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IMMEndpoint {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMMEndpoint_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pdataflow: *mut EDataFlow,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IMMNotificationClient(::windows::IUnknown);
impl IMMNotificationClient {}
unsafe impl ::windows::Interface for IMMNotificationClient {
type Vtable = IMMNotificationClient_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2039606985,
32393,
19845,
[131, 144, 108, 112, 60, 236, 96, 192],
);
}
impl IMMNotificationClient {
pub unsafe fn OnDeviceStateChanged<'a>(
&self,
pwstrdeviceid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
dwnewstate: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
pwstrdeviceid.into_param().abi(),
::std::mem::transmute(dwnewstate),
)
}
pub unsafe fn OnDeviceAdded<'a>(
&self,
pwstrdeviceid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
pwstrdeviceid.into_param().abi(),
)
}
pub unsafe fn OnDeviceRemoved<'a>(
&self,
pwstrdeviceid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
pwstrdeviceid.into_param().abi(),
)
}
pub unsafe fn OnDefaultDeviceChanged<'a>(
&self,
flow: EDataFlow,
role: ERole,
pwstrdefaultdeviceid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(flow),
::std::mem::transmute(role),
pwstrdefaultdeviceid.into_param().abi(),
)
}
pub unsafe fn OnPropertyValueChanged<'a>(
&self,
pwstrdeviceid: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
key: impl ::windows::IntoParam<'a, super::WindowsPropertiesSystem::PROPERTYKEY>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
pwstrdeviceid.into_param().abi(),
key.into_param().abi(),
)
}
}
impl ::std::convert::From<IMMNotificationClient> for ::windows::IUnknown {
fn from(value: IMMNotificationClient) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IMMNotificationClient> for ::windows::IUnknown {
fn from(value: &IMMNotificationClient) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IMMNotificationClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IMMNotificationClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IMMNotificationClient_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwstrdeviceid: super::SystemServices::PWSTR,
dwnewstate: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwstrdeviceid: super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwstrdeviceid: super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
flow: EDataFlow,
role: ERole,
pwstrdefaultdeviceid: super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwstrdeviceid: super::SystemServices::PWSTR,
key: super::WindowsPropertiesSystem::PROPERTYKEY,
) -> ::windows::HRESULT,
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct INTERLEAVED_AUDIO_FORMAT_INFORMATION {
pub Size: u32,
pub PrimaryChannelCount: u32,
pub PrimaryChannelStartPosition: u32,
pub PrimaryChannelMask: u32,
pub InterleavedChannelCount: u32,
pub InterleavedChannelStartPosition: u32,
pub InterleavedChannelMask: u32,
}
impl INTERLEAVED_AUDIO_FORMAT_INFORMATION {}
impl ::std::default::Default for INTERLEAVED_AUDIO_FORMAT_INFORMATION {
fn default() -> Self {
Self {
Size: 0,
PrimaryChannelCount: 0,
PrimaryChannelStartPosition: 0,
PrimaryChannelMask: 0,
InterleavedChannelCount: 0,
InterleavedChannelStartPosition: 0,
InterleavedChannelMask: 0,
}
}
}
impl ::std::fmt::Debug for INTERLEAVED_AUDIO_FORMAT_INFORMATION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("INTERLEAVED_AUDIO_FORMAT_INFORMATION")
.field("Size", &format_args!("{:?}", self.Size))
.field(
"PrimaryChannelCount",
&format_args!("{:?}", self.PrimaryChannelCount),
)
.field(
"PrimaryChannelStartPosition",
&format_args!("{:?}", self.PrimaryChannelStartPosition),
)
.field(
"PrimaryChannelMask",
&format_args!("{:?}", self.PrimaryChannelMask),
)
.field(
"InterleavedChannelCount",
&format_args!("{:?}", self.InterleavedChannelCount),
)
.field(
"InterleavedChannelStartPosition",
&format_args!("{:?}", self.InterleavedChannelStartPosition),
)
.field(
"InterleavedChannelMask",
&format_args!("{:?}", self.InterleavedChannelMask),
)
.finish()
}
}
impl ::std::cmp::PartialEq for INTERLEAVED_AUDIO_FORMAT_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.PrimaryChannelCount == other.PrimaryChannelCount
&& self.PrimaryChannelStartPosition == other.PrimaryChannelStartPosition
&& self.PrimaryChannelMask == other.PrimaryChannelMask
&& self.InterleavedChannelCount == other.InterleavedChannelCount
&& self.InterleavedChannelStartPosition
== other.InterleavedChannelStartPosition
&& self.InterleavedChannelMask == other.InterleavedChannelMask
}
}
impl ::std::cmp::Eq for INTERLEAVED_AUDIO_FORMAT_INFORMATION {}
unsafe impl ::windows::Abi for INTERLEAVED_AUDIO_FORMAT_INFORMATION {
type Abi = Self;
}
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IPart(::windows::IUnknown);
impl IPart {}
unsafe impl ::windows::Interface for IPart {
type Vtable = IPart_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2922242276,
23498,
20269,
[170, 70, 93, 19, 248, 253, 179, 169],
);
}
impl IPart {
pub unsafe fn GetName(
&self,
ppwstrname: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(ppwstrname),
)
}
pub unsafe fn GetLocalId(&self, pnid: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pnid),
)
}
pub unsafe fn GetGlobalId(
&self,
ppwstrglobalid: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(ppwstrglobalid),
)
}
pub unsafe fn GetPartType(&self, pparttype: *mut PartType) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pparttype),
)
}
pub unsafe fn GetSubType(
&self,
psubtype: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(psubtype),
)
}
pub unsafe fn GetControlInterfaceCount(
&self,
pcount: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(pcount),
)
}
pub unsafe fn GetControlInterface(
&self,
nindex: u32,
ppinterfacedesc: *mut ::std::option::Option<IControlInterface>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(nindex),
::std::mem::transmute(ppinterfacedesc),
)
}
pub unsafe fn EnumPartsIncoming(
&self,
ppparts: *mut ::std::option::Option<IPartsList>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(ppparts),
)
}
pub unsafe fn EnumPartsOutgoing(
&self,
ppparts: *mut ::std::option::Option<IPartsList>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(ppparts),
)
}
pub unsafe fn GetTopologyObject(
&self,
pptopology: *mut ::std::option::Option<IDeviceTopology>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(pptopology),
)
}
pub unsafe fn Activate(
&self,
dwclscontext: u32,
refiid: *const ::windows::Guid,
ppvobject: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(dwclscontext),
::std::mem::transmute(refiid),
::std::mem::transmute(ppvobject),
)
}
pub unsafe fn RegisterControlChangeCallback<'a>(
&self,
riid: *const ::windows::Guid,
pnotify: impl ::windows::IntoParam<'a, IControlChangeNotify>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
::std::mem::transmute(riid),
pnotify.into_param().abi(),
)
}
pub unsafe fn UnregisterControlChangeCallback<'a>(
&self,
pnotify: impl ::windows::IntoParam<'a, IControlChangeNotify>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
pnotify.into_param().abi(),
)
}
}
impl ::std::convert::From<IPart> for ::windows::IUnknown {
fn from(value: IPart) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IPart> for ::windows::IUnknown {
fn from(value: &IPart) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IPart {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IPart {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPart_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppwstrname: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnid: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppwstrglobalid: *mut super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pparttype: *mut PartType,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
psubtype: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nindex: u32,
ppinterfacedesc: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppparts: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppparts: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pptopology: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
dwclscontext: u32,
refiid: *const ::windows::Guid,
ppvobject: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
riid: *const ::windows::Guid,
pnotify: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pnotify: ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IPartsList(::windows::IUnknown);
impl IPartsList {}
unsafe impl ::windows::Interface for IPartsList {
type Vtable = IPartsList_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1839891596,
24240,
17868,
[174, 165, 153, 138, 44, 218, 31, 251],
);
}
impl IPartsList {
pub unsafe fn GetCount(&self, pcount: *mut u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pcount),
)
}
pub unsafe fn GetPart(
&self,
nindex: u32,
pppart: *mut ::std::option::Option<IPart>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(nindex),
::std::mem::transmute(pppart),
)
}
}
impl ::std::convert::From<IPartsList> for ::windows::IUnknown {
fn from(value: IPartsList) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IPartsList> for ::windows::IUnknown {
fn from(value: &IPartsList) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IPartsList {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IPartsList {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IPartsList_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pcount: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
nindex: u32,
pppart: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISimpleAudioVolume(::windows::IUnknown);
impl ISimpleAudioVolume {}
unsafe impl ::windows::Interface for ISimpleAudioVolume {
type Vtable = ISimpleAudioVolume_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2278446232,
26838,
17637,
[146, 21, 109, 164, 126, 248, 131, 216],
);
}
impl ISimpleAudioVolume {
pub unsafe fn SetMasterVolume(
&self,
flevel: f32,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(flevel),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn GetMasterVolume(&self, pflevel: *mut f32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pflevel),
)
}
pub unsafe fn SetMute<'a>(
&self,
bmute: impl ::windows::IntoParam<'a, super::SystemServices::BOOL>,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
bmute.into_param().abi(),
::std::mem::transmute(eventcontext),
)
}
pub unsafe fn GetMute(
&self,
pbmute: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(pbmute),
)
}
}
impl ::std::convert::From<ISimpleAudioVolume> for ::windows::IUnknown {
fn from(value: ISimpleAudioVolume) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISimpleAudioVolume> for ::windows::IUnknown {
fn from(value: &ISimpleAudioVolume) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISimpleAudioVolume {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISimpleAudioVolume {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISimpleAudioVolume_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
flevel: f32,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pflevel: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
bmute: super::SystemServices::BOOL,
eventcontext: *mut ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pbmute: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioClient(::windows::IUnknown);
impl ISpatialAudioClient {}
unsafe impl ::windows::Interface for ISpatialAudioClient {
type Vtable = ISpatialAudioClient_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3153649766,
43690,
18878,
[154, 77, 253, 42, 133, 142, 162, 127],
);
}
impl ISpatialAudioClient {
pub unsafe fn GetStaticObjectPosition(
&self,
r#type: AudioObjectType,
x: *mut f32,
y: *mut f32,
z: *mut f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(r#type),
::std::mem::transmute(x),
::std::mem::transmute(y),
::std::mem::transmute(z),
)
}
pub unsafe fn GetNativeStaticObjectTypeMask(
&self,
mask: *mut AudioObjectType,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(mask),
)
}
pub unsafe fn GetMaxDynamicObjectCount(
&self,
value: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(value),
)
}
pub unsafe fn GetSupportedAudioObjectFormatEnumerator(
&self,
enumerator: *mut ::std::option::Option<IAudioFormatEnumerator>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(enumerator),
)
}
pub unsafe fn GetMaxFrameCount(
&self,
objectformat: *const super::Multimedia::WAVEFORMATEX,
framecountperbuffer: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(objectformat),
::std::mem::transmute(framecountperbuffer),
)
}
pub unsafe fn IsAudioObjectFormatSupported(
&self,
objectformat: *const super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(objectformat),
)
}
pub unsafe fn IsSpatialAudioStreamAvailable(
&self,
streamuuid: *const ::windows::Guid,
auxiliaryinfo: *const super::StructuredStorage::PROPVARIANT,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(streamuuid),
::std::mem::transmute(auxiliaryinfo),
)
}
pub unsafe fn ActivateSpatialAudioStream(
&self,
activationparams: *const super::StructuredStorage::PROPVARIANT,
riid: *const ::windows::Guid,
stream: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(activationparams),
::std::mem::transmute(riid),
::std::mem::transmute(stream),
)
}
}
impl ::std::convert::From<ISpatialAudioClient> for ::windows::IUnknown {
fn from(value: ISpatialAudioClient) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioClient> for ::windows::IUnknown {
fn from(value: &ISpatialAudioClient) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioClient_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
r#type: AudioObjectType,
x: *mut f32,
y: *mut f32,
z: *mut f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
mask: *mut AudioObjectType,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
value: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
enumerator: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
objectformat: *const super::Multimedia::WAVEFORMATEX,
framecountperbuffer: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
objectformat: *const super::Multimedia::WAVEFORMATEX,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
streamuuid: *const ::windows::Guid,
auxiliaryinfo: *const super::StructuredStorage::PROPVARIANT_abi,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
activationparams: *const super::StructuredStorage::PROPVARIANT_abi,
riid: *const ::windows::Guid,
stream: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioMetadataClient(::windows::IUnknown);
impl ISpatialAudioMetadataClient {}
unsafe impl ::windows::Interface for ISpatialAudioMetadataClient {
type Vtable = ISpatialAudioMetadataClient_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2004699707,
63231,
18982,
[133, 220, 104, 215, 205, 237, 161, 212],
);
}
impl ISpatialAudioMetadataClient {
pub unsafe fn ActivateSpatialAudioMetadataItems(
&self,
maxitemcount: u16,
framecount: u16,
metadataitemsbuffer: *mut ::std::option::Option<
ISpatialAudioMetadataItemsBuffer,
>,
metadataitems: *mut ::std::option::Option<ISpatialAudioMetadataItems>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(maxitemcount),
::std::mem::transmute(framecount),
::std::mem::transmute(metadataitemsbuffer),
::std::mem::transmute(metadataitems),
)
}
pub unsafe fn GetSpatialAudioMetadataItemsBufferLength(
&self,
maxitemcount: u16,
bufferlength: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(maxitemcount),
::std::mem::transmute(bufferlength),
)
}
pub unsafe fn ActivateSpatialAudioMetadataWriter(
&self,
overflowmode: SpatialAudioMetadataWriterOverflowMode,
metadatawriter: *mut ::std::option::Option<ISpatialAudioMetadataWriter>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(overflowmode),
::std::mem::transmute(metadatawriter),
)
}
pub unsafe fn ActivateSpatialAudioMetadataCopier(
&self,
metadatacopier: *mut ::std::option::Option<ISpatialAudioMetadataCopier>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(metadatacopier),
)
}
pub unsafe fn ActivateSpatialAudioMetadataReader(
&self,
metadatareader: *mut ::std::option::Option<ISpatialAudioMetadataReader>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(metadatareader),
)
}
}
impl ::std::convert::From<ISpatialAudioMetadataClient> for ::windows::IUnknown {
fn from(value: ISpatialAudioMetadataClient) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioMetadataClient> for ::windows::IUnknown {
fn from(value: &ISpatialAudioMetadataClient) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioMetadataClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioMetadataClient {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioMetadataClient_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
maxitemcount: u16,
framecount: u16,
metadataitemsbuffer: *mut ::windows::RawPtr,
metadataitems: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
maxitemcount: u16,
bufferlength: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
overflowmode: SpatialAudioMetadataWriterOverflowMode,
metadatawriter: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
metadatacopier: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
metadatareader: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioMetadataCopier(::windows::IUnknown);
impl ISpatialAudioMetadataCopier {}
unsafe impl ::windows::Interface for ISpatialAudioMetadataCopier {
type Vtable = ISpatialAudioMetadataCopier_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3525620275,
57937,
20432,
[156, 162, 213, 236, 249, 166, 132, 4],
);
}
impl ISpatialAudioMetadataCopier {
pub unsafe fn Open<'a>(
&self,
metadataitems: impl ::windows::IntoParam<'a, ISpatialAudioMetadataItems>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
metadataitems.into_param().abi(),
)
}
pub unsafe fn CopyMetadataForFrames<'a>(
&self,
copyframecount: u16,
copymode: SpatialAudioMetadataCopyMode,
dstmetadataitems: impl ::windows::IntoParam<'a, ISpatialAudioMetadataItems>,
itemscopied: *mut u16,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(copyframecount),
::std::mem::transmute(copymode),
dstmetadataitems.into_param().abi(),
::std::mem::transmute(itemscopied),
)
}
pub unsafe fn Close(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<ISpatialAudioMetadataCopier> for ::windows::IUnknown {
fn from(value: ISpatialAudioMetadataCopier) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioMetadataCopier> for ::windows::IUnknown {
fn from(value: &ISpatialAudioMetadataCopier) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioMetadataCopier {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioMetadataCopier {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioMetadataCopier_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
metadataitems: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
copyframecount: u16,
copymode: SpatialAudioMetadataCopyMode,
dstmetadataitems: ::windows::RawPtr,
itemscopied: *mut u16,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioMetadataItems(::windows::IUnknown);
impl ISpatialAudioMetadataItems {}
unsafe impl ::windows::Interface for ISpatialAudioMetadataItems {
type Vtable = ISpatialAudioMetadataItems_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3168257935,
12440,
20258,
[181, 71, 162, 242, 90, 56, 18, 105],
);
}
impl ISpatialAudioMetadataItems {
pub unsafe fn GetFrameCount(&self, framecount: *mut u16) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(framecount),
)
}
pub unsafe fn GetItemCount(&self, itemcount: *mut u16) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(itemcount),
)
}
pub unsafe fn GetMaxItemCount(&self, maxitemcount: *mut u16) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(maxitemcount),
)
}
pub unsafe fn GetMaxValueBufferLength(
&self,
maxvaluebufferlength: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(maxvaluebufferlength),
)
}
pub unsafe fn GetInfo(
&self,
info: *mut SpatialAudioMetadataItemsInfo,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(info),
)
}
}
impl ::std::convert::From<ISpatialAudioMetadataItems> for ::windows::IUnknown {
fn from(value: ISpatialAudioMetadataItems) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioMetadataItems> for ::windows::IUnknown {
fn from(value: &ISpatialAudioMetadataItems) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioMetadataItems {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioMetadataItems {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioMetadataItems_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
framecount: *mut u16,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
itemcount: *mut u16,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
maxitemcount: *mut u16,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
maxvaluebufferlength: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
info: *mut SpatialAudioMetadataItemsInfo,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioMetadataItemsBuffer(::windows::IUnknown);
impl ISpatialAudioMetadataItemsBuffer {}
unsafe impl ::windows::Interface for ISpatialAudioMetadataItemsBuffer {
type Vtable = ISpatialAudioMetadataItemsBuffer_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
1113852438,
57789,
17113,
[159, 246, 3, 26, 183, 26, 45, 186],
);
}
impl ISpatialAudioMetadataItemsBuffer {
pub unsafe fn AttachToBuffer(
&self,
buffer: *mut u8,
bufferlength: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(buffer),
::std::mem::transmute(bufferlength),
)
}
pub unsafe fn AttachToPopulatedBuffer(
&self,
buffer: *mut u8,
bufferlength: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(buffer),
::std::mem::transmute(bufferlength),
)
}
pub unsafe fn DetachBuffer(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<ISpatialAudioMetadataItemsBuffer> for ::windows::IUnknown {
fn from(value: ISpatialAudioMetadataItemsBuffer) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioMetadataItemsBuffer> for ::windows::IUnknown {
fn from(value: &ISpatialAudioMetadataItemsBuffer) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioMetadataItemsBuffer {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioMetadataItemsBuffer {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioMetadataItemsBuffer_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
buffer: *mut u8,
bufferlength: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
buffer: *mut u8,
bufferlength: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioMetadataReader(::windows::IUnknown);
impl ISpatialAudioMetadataReader {}
unsafe impl ::windows::Interface for ISpatialAudioMetadataReader {
type Vtable = ISpatialAudioMetadataReader_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3079571106,
12761,
19506,
[148, 210, 125, 244, 15, 199, 235, 236],
);
}
impl ISpatialAudioMetadataReader {
pub unsafe fn Open<'a>(
&self,
metadataitems: impl ::windows::IntoParam<'a, ISpatialAudioMetadataItems>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
metadataitems.into_param().abi(),
)
}
pub unsafe fn ReadNextItem(
&self,
commandcount: *mut u8,
frameoffset: *mut u16,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(commandcount),
::std::mem::transmute(frameoffset),
)
}
pub unsafe fn ReadNextItemCommand(
&self,
commandid: *mut u8,
valuebuffer: *mut ::std::ffi::c_void,
maxvaluebufferlength: u32,
valuebufferlength: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(commandid),
::std::mem::transmute(valuebuffer),
::std::mem::transmute(maxvaluebufferlength),
::std::mem::transmute(valuebufferlength),
)
}
pub unsafe fn Close(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<ISpatialAudioMetadataReader> for ::windows::IUnknown {
fn from(value: ISpatialAudioMetadataReader) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioMetadataReader> for ::windows::IUnknown {
fn from(value: &ISpatialAudioMetadataReader) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioMetadataReader {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioMetadataReader {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioMetadataReader_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
metadataitems: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
commandcount: *mut u8,
frameoffset: *mut u16,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
commandid: *mut u8,
valuebuffer: *mut ::std::ffi::c_void,
maxvaluebufferlength: u32,
valuebufferlength: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioMetadataWriter(::windows::IUnknown);
impl ISpatialAudioMetadataWriter {}
unsafe impl ::windows::Interface for ISpatialAudioMetadataWriter {
type Vtable = ISpatialAudioMetadataWriter_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
454543873,
10581,
17485,
[164, 48, 83, 125, 197, 137, 168, 68],
);
}
impl ISpatialAudioMetadataWriter {
pub unsafe fn Open<'a>(
&self,
metadataitems: impl ::windows::IntoParam<'a, ISpatialAudioMetadataItems>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
metadataitems.into_param().abi(),
)
}
pub unsafe fn WriteNextItem(&self, frameoffset: u16) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(frameoffset),
)
}
pub unsafe fn WriteNextItemCommand(
&self,
commandid: u8,
valuebuffer: *const ::std::ffi::c_void,
valuebufferlength: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(commandid),
::std::mem::transmute(valuebuffer),
::std::mem::transmute(valuebufferlength),
)
}
pub unsafe fn Close(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<ISpatialAudioMetadataWriter> for ::windows::IUnknown {
fn from(value: ISpatialAudioMetadataWriter) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioMetadataWriter> for ::windows::IUnknown {
fn from(value: &ISpatialAudioMetadataWriter) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioMetadataWriter {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioMetadataWriter {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioMetadataWriter_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
metadataitems: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
frameoffset: u16,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
commandid: u8,
valuebuffer: *const ::std::ffi::c_void,
valuebufferlength: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioObjectBase(::windows::IUnknown);
impl ISpatialAudioObjectBase {}
unsafe impl ::windows::Interface for ISpatialAudioObjectBase {
type Vtable = ISpatialAudioObjectBase_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3437279474,
36173,
20219,
[168, 207, 61, 110, 207, 28, 48, 224],
);
}
impl ISpatialAudioObjectBase {
pub unsafe fn GetBuffer(
&self,
buffer: *mut *mut u8,
bufferlength: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(buffer),
::std::mem::transmute(bufferlength),
)
}
pub unsafe fn SetEndOfStream(&self, framecount: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(framecount),
)
}
pub unsafe fn IsActive(
&self,
isactive: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(isactive),
)
}
pub unsafe fn GetAudioObjectType(
&self,
audioobjecttype: *mut AudioObjectType,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(audioobjecttype),
)
}
}
impl ::std::convert::From<ISpatialAudioObjectBase> for ::windows::IUnknown {
fn from(value: ISpatialAudioObjectBase) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectBase> for ::windows::IUnknown {
fn from(value: &ISpatialAudioObjectBase) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioObjectBase {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioObjectBase {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioObjectBase_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
buffer: *mut *mut u8,
bufferlength: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
framecount: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
isactive: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
audioobjecttype: *mut AudioObjectType,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioObject(::windows::IUnknown);
impl ISpatialAudioObject {}
unsafe impl ::windows::Interface for ISpatialAudioObject {
type Vtable = ISpatialAudioObject_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3722611047,
21019,
18149,
[143, 0, 189, 111, 43, 200, 171, 29],
);
}
impl ISpatialAudioObject {
pub unsafe fn GetBuffer(
&self,
buffer: *mut *mut u8,
bufferlength: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(buffer),
::std::mem::transmute(bufferlength),
)
}
pub unsafe fn SetEndOfStream(&self, framecount: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(framecount),
)
}
pub unsafe fn IsActive(
&self,
isactive: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(isactive),
)
}
pub unsafe fn GetAudioObjectType(
&self,
audioobjecttype: *mut AudioObjectType,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(audioobjecttype),
)
}
pub unsafe fn SetPosition(&self, x: f32, y: f32, z: f32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(x),
::std::mem::transmute(y),
::std::mem::transmute(z),
)
}
pub unsafe fn SetVolume(&self, volume: f32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(volume),
)
}
}
impl ::std::convert::From<ISpatialAudioObject> for ::windows::IUnknown {
fn from(value: ISpatialAudioObject) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObject> for ::windows::IUnknown {
fn from(value: &ISpatialAudioObject) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioObject {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioObject {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<ISpatialAudioObject> for ISpatialAudioObjectBase {
fn from(value: ISpatialAudioObject) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObject> for ISpatialAudioObjectBase {
fn from(value: &ISpatialAudioObject) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectBase> for ISpatialAudioObject {
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectBase> {
::windows::Param::Owned(::std::convert::Into::<ISpatialAudioObjectBase>::into(
self,
))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectBase> for &'a ISpatialAudioObject {
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectBase> {
::windows::Param::Owned(::std::convert::Into::<ISpatialAudioObjectBase>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioObject_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
buffer: *mut *mut u8,
bufferlength: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
framecount: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
isactive: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
audioobjecttype: *mut AudioObjectType,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
x: f32,
y: f32,
z: f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
volume: f32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioObjectForHrtf(::windows::IUnknown);
impl ISpatialAudioObjectForHrtf {}
unsafe impl ::windows::Interface for ISpatialAudioObjectForHrtf {
type Vtable = ISpatialAudioObjectForHrtf_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3611519710,
6520,
19988,
[171, 160, 85, 91, 216, 235, 131, 180],
);
}
impl ISpatialAudioObjectForHrtf {
pub unsafe fn GetBuffer(
&self,
buffer: *mut *mut u8,
bufferlength: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(buffer),
::std::mem::transmute(bufferlength),
)
}
pub unsafe fn SetEndOfStream(&self, framecount: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(framecount),
)
}
pub unsafe fn IsActive(
&self,
isactive: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(isactive),
)
}
pub unsafe fn GetAudioObjectType(
&self,
audioobjecttype: *mut AudioObjectType,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(audioobjecttype),
)
}
pub unsafe fn SetPosition(&self, x: f32, y: f32, z: f32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(x),
::std::mem::transmute(y),
::std::mem::transmute(z),
)
}
pub unsafe fn SetGain(&self, gain: f32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(gain),
)
}
pub unsafe fn SetOrientation(
&self,
orientation: *const *const f32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(orientation),
)
}
pub unsafe fn SetEnvironment(
&self,
environment: SpatialAudioHrtfEnvironmentType,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(environment),
)
}
pub unsafe fn SetDistanceDecay(
&self,
distancedecay: *mut SpatialAudioHrtfDistanceDecay,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(distancedecay),
)
}
pub unsafe fn SetDirectivity(
&self,
directivity: *mut SpatialAudioHrtfDirectivityUnion,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
::std::mem::transmute(directivity),
)
}
}
impl ::std::convert::From<ISpatialAudioObjectForHrtf> for ::windows::IUnknown {
fn from(value: ISpatialAudioObjectForHrtf) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectForHrtf> for ::windows::IUnknown {
fn from(value: &ISpatialAudioObjectForHrtf) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioObjectForHrtf {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioObjectForHrtf {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<ISpatialAudioObjectForHrtf> for ISpatialAudioObjectBase {
fn from(value: ISpatialAudioObjectForHrtf) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectForHrtf> for ISpatialAudioObjectBase {
fn from(value: &ISpatialAudioObjectForHrtf) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectBase> for ISpatialAudioObjectForHrtf {
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectBase> {
::windows::Param::Owned(::std::convert::Into::<ISpatialAudioObjectBase>::into(
self,
))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectBase> for &'a ISpatialAudioObjectForHrtf {
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectBase> {
::windows::Param::Owned(::std::convert::Into::<ISpatialAudioObjectBase>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioObjectForHrtf_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
buffer: *mut *mut u8,
bufferlength: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
framecount: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
isactive: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
audioobjecttype: *mut AudioObjectType,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
x: f32,
y: f32,
z: f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
gain: f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
orientation: *const *const f32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
environment: SpatialAudioHrtfEnvironmentType,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
distancedecay: *mut SpatialAudioHrtfDistanceDecay,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
directivity: *mut SpatialAudioHrtfDirectivityUnion,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioObjectForMetadataCommands(::windows::IUnknown);
impl ISpatialAudioObjectForMetadataCommands {}
unsafe impl ::windows::Interface for ISpatialAudioObjectForMetadataCommands {
type Vtable = ISpatialAudioObjectForMetadataCommands_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
234015051,
62969,
18221,
[175, 107, 196, 110, 10, 201, 205, 5],
);
}
impl ISpatialAudioObjectForMetadataCommands {
pub unsafe fn GetBuffer(
&self,
buffer: *mut *mut u8,
bufferlength: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(buffer),
::std::mem::transmute(bufferlength),
)
}
pub unsafe fn SetEndOfStream(&self, framecount: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(framecount),
)
}
pub unsafe fn IsActive(
&self,
isactive: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(isactive),
)
}
pub unsafe fn GetAudioObjectType(
&self,
audioobjecttype: *mut AudioObjectType,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(audioobjecttype),
)
}
pub unsafe fn WriteNextMetadataCommand(
&self,
commandid: u8,
valuebuffer: *mut ::std::ffi::c_void,
valuebufferlength: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(commandid),
::std::mem::transmute(valuebuffer),
::std::mem::transmute(valuebufferlength),
)
}
}
impl ::std::convert::From<ISpatialAudioObjectForMetadataCommands> for ::windows::IUnknown {
fn from(value: ISpatialAudioObjectForMetadataCommands) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectForMetadataCommands> for ::windows::IUnknown {
fn from(value: &ISpatialAudioObjectForMetadataCommands) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioObjectForMetadataCommands {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown>
for &'a ISpatialAudioObjectForMetadataCommands
{
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<ISpatialAudioObjectForMetadataCommands> for ISpatialAudioObjectBase {
fn from(value: ISpatialAudioObjectForMetadataCommands) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectForMetadataCommands> for ISpatialAudioObjectBase {
fn from(value: &ISpatialAudioObjectForMetadataCommands) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectBase>
for ISpatialAudioObjectForMetadataCommands
{
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectBase> {
::windows::Param::Owned(::std::convert::Into::<ISpatialAudioObjectBase>::into(
self,
))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectBase>
for &'a ISpatialAudioObjectForMetadataCommands
{
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectBase> {
::windows::Param::Owned(::std::convert::Into::<ISpatialAudioObjectBase>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioObjectForMetadataCommands_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
buffer: *mut *mut u8,
bufferlength: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
framecount: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
isactive: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
audioobjecttype: *mut AudioObjectType,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
commandid: u8,
valuebuffer: *mut ::std::ffi::c_void,
valuebufferlength: u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioObjectForMetadataItems(::windows::IUnknown);
impl ISpatialAudioObjectForMetadataItems {}
unsafe impl ::windows::Interface for ISpatialAudioObjectForMetadataItems {
type Vtable = ISpatialAudioObjectForMetadataItems_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3723119103,
15296,
17271,
[138, 173, 159, 188, 253, 128, 133, 102],
);
}
impl ISpatialAudioObjectForMetadataItems {
pub unsafe fn GetBuffer(
&self,
buffer: *mut *mut u8,
bufferlength: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(buffer),
::std::mem::transmute(bufferlength),
)
}
pub unsafe fn SetEndOfStream(&self, framecount: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(framecount),
)
}
pub unsafe fn IsActive(
&self,
isactive: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
::std::mem::transmute(isactive),
)
}
pub unsafe fn GetAudioObjectType(
&self,
audioobjecttype: *mut AudioObjectType,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(audioobjecttype),
)
}
pub unsafe fn GetSpatialAudioMetadataItems(
&self,
metadataitems: *mut ::std::option::Option<ISpatialAudioMetadataItems>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(metadataitems),
)
}
}
impl ::std::convert::From<ISpatialAudioObjectForMetadataItems> for ::windows::IUnknown {
fn from(value: ISpatialAudioObjectForMetadataItems) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectForMetadataItems> for ::windows::IUnknown {
fn from(value: &ISpatialAudioObjectForMetadataItems) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioObjectForMetadataItems {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioObjectForMetadataItems {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<ISpatialAudioObjectForMetadataItems> for ISpatialAudioObjectBase {
fn from(value: ISpatialAudioObjectForMetadataItems) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectForMetadataItems> for ISpatialAudioObjectBase {
fn from(value: &ISpatialAudioObjectForMetadataItems) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectBase> for ISpatialAudioObjectForMetadataItems {
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectBase> {
::windows::Param::Owned(::std::convert::Into::<ISpatialAudioObjectBase>::into(
self,
))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectBase>
for &'a ISpatialAudioObjectForMetadataItems
{
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectBase> {
::windows::Param::Owned(::std::convert::Into::<ISpatialAudioObjectBase>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioObjectForMetadataItems_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
buffer: *mut *mut u8,
bufferlength: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
framecount: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
isactive: *mut super::SystemServices::BOOL,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
audioobjecttype: *mut AudioObjectType,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
metadataitems: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioObjectRenderStreamBase(::windows::IUnknown);
impl ISpatialAudioObjectRenderStreamBase {}
unsafe impl ::windows::Interface for ISpatialAudioObjectRenderStreamBase {
type Vtable = ISpatialAudioObjectRenderStreamBase_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
4272616451,
49624,
17677,
[170, 5, 224, 204, 238, 117, 2, 168],
);
}
impl ISpatialAudioObjectRenderStreamBase {
pub unsafe fn GetAvailableDynamicObjectCount(
&self,
value: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(value),
)
}
pub unsafe fn GetService(
&self,
riid: *const ::windows::Guid,
service: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(riid),
::std::mem::transmute(service),
)
}
pub unsafe fn Start(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(::windows::Abi::abi(self))
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(::windows::Abi::abi(self))
}
pub unsafe fn Reset(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(::windows::Abi::abi(self))
}
pub unsafe fn BeginUpdatingAudioObjects(
&self,
availabledynamicobjectcount: *mut u32,
framecountperbuffer: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(availabledynamicobjectcount),
::std::mem::transmute(framecountperbuffer),
)
}
pub unsafe fn EndUpdatingAudioObjects(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(::windows::Abi::abi(self))
}
}
impl ::std::convert::From<ISpatialAudioObjectRenderStreamBase> for ::windows::IUnknown {
fn from(value: ISpatialAudioObjectRenderStreamBase) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectRenderStreamBase> for ::windows::IUnknown {
fn from(value: &ISpatialAudioObjectRenderStreamBase) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioObjectRenderStreamBase {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioObjectRenderStreamBase {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioObjectRenderStreamBase_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
value: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
riid: *const ::windows::Guid,
service: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
availabledynamicobjectcount: *mut u32,
framecountperbuffer: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioObjectRenderStream(::windows::IUnknown);
impl ISpatialAudioObjectRenderStream {}
unsafe impl ::windows::Interface for ISpatialAudioObjectRenderStream {
type Vtable = ISpatialAudioObjectRenderStream_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3132486771,
46115,
18299,
[133, 245, 181, 163, 50, 160, 65, 83],
);
}
impl ISpatialAudioObjectRenderStream {
pub unsafe fn GetAvailableDynamicObjectCount(
&self,
value: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(value),
)
}
pub unsafe fn GetService(
&self,
riid: *const ::windows::Guid,
service: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(riid),
::std::mem::transmute(service),
)
}
pub unsafe fn Start(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(::windows::Abi::abi(self))
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(::windows::Abi::abi(self))
}
pub unsafe fn Reset(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(::windows::Abi::abi(self))
}
pub unsafe fn BeginUpdatingAudioObjects(
&self,
availabledynamicobjectcount: *mut u32,
framecountperbuffer: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(availabledynamicobjectcount),
::std::mem::transmute(framecountperbuffer),
)
}
pub unsafe fn EndUpdatingAudioObjects(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(::windows::Abi::abi(self))
}
pub unsafe fn ActivateSpatialAudioObject(
&self,
r#type: AudioObjectType,
audioobject: *mut ::std::option::Option<ISpatialAudioObject>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(r#type),
::std::mem::transmute(audioobject),
)
}
}
impl ::std::convert::From<ISpatialAudioObjectRenderStream> for ::windows::IUnknown {
fn from(value: ISpatialAudioObjectRenderStream) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectRenderStream> for ::windows::IUnknown {
fn from(value: &ISpatialAudioObjectRenderStream) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioObjectRenderStream {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISpatialAudioObjectRenderStream {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<ISpatialAudioObjectRenderStream> for ISpatialAudioObjectRenderStreamBase {
fn from(value: ISpatialAudioObjectRenderStream) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectRenderStream>
for ISpatialAudioObjectRenderStreamBase
{
fn from(value: &ISpatialAudioObjectRenderStream) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectRenderStreamBase>
for ISpatialAudioObjectRenderStream
{
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectRenderStreamBase> {
::windows::Param::Owned(::std::convert::Into::<
ISpatialAudioObjectRenderStreamBase,
>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectRenderStreamBase>
for &'a ISpatialAudioObjectRenderStream
{
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectRenderStreamBase> {
::windows::Param::Owned(::std::convert::Into::<
ISpatialAudioObjectRenderStreamBase,
>::into(::std::clone::Clone::clone(
self,
)))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioObjectRenderStream_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
value: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
riid: *const ::windows::Guid,
service: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
availabledynamicobjectcount: *mut u32,
framecountperbuffer: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
r#type: AudioObjectType,
audioobject: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioObjectRenderStreamForHrtf(::windows::IUnknown);
impl ISpatialAudioObjectRenderStreamForHrtf {}
unsafe impl ::windows::Interface for ISpatialAudioObjectRenderStreamForHrtf {
type Vtable = ISpatialAudioObjectRenderStreamForHrtf_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3767398137,
21347,
16494,
[159, 220, 8, 14, 226, 71, 187, 224],
);
}
impl ISpatialAudioObjectRenderStreamForHrtf {
pub unsafe fn GetAvailableDynamicObjectCount(
&self,
value: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(value),
)
}
pub unsafe fn GetService(
&self,
riid: *const ::windows::Guid,
service: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(riid),
::std::mem::transmute(service),
)
}
pub unsafe fn Start(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(::windows::Abi::abi(self))
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(::windows::Abi::abi(self))
}
pub unsafe fn Reset(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(::windows::Abi::abi(self))
}
pub unsafe fn BeginUpdatingAudioObjects(
&self,
availabledynamicobjectcount: *mut u32,
framecountperbuffer: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(availabledynamicobjectcount),
::std::mem::transmute(framecountperbuffer),
)
}
pub unsafe fn EndUpdatingAudioObjects(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(::windows::Abi::abi(self))
}
pub unsafe fn ActivateSpatialAudioObjectForHrtf(
&self,
r#type: AudioObjectType,
audioobject: *mut ::std::option::Option<ISpatialAudioObjectForHrtf>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(r#type),
::std::mem::transmute(audioobject),
)
}
}
impl ::std::convert::From<ISpatialAudioObjectRenderStreamForHrtf> for ::windows::IUnknown {
fn from(value: ISpatialAudioObjectRenderStreamForHrtf) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectRenderStreamForHrtf> for ::windows::IUnknown {
fn from(value: &ISpatialAudioObjectRenderStreamForHrtf) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioObjectRenderStreamForHrtf {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown>
for &'a ISpatialAudioObjectRenderStreamForHrtf
{
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<ISpatialAudioObjectRenderStreamForHrtf>
for ISpatialAudioObjectRenderStreamBase
{
fn from(value: ISpatialAudioObjectRenderStreamForHrtf) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectRenderStreamForHrtf>
for ISpatialAudioObjectRenderStreamBase
{
fn from(value: &ISpatialAudioObjectRenderStreamForHrtf) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectRenderStreamBase>
for ISpatialAudioObjectRenderStreamForHrtf
{
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectRenderStreamBase> {
::windows::Param::Owned(::std::convert::Into::<
ISpatialAudioObjectRenderStreamBase,
>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectRenderStreamBase>
for &'a ISpatialAudioObjectRenderStreamForHrtf
{
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectRenderStreamBase> {
::windows::Param::Owned(::std::convert::Into::<
ISpatialAudioObjectRenderStreamBase,
>::into(::std::clone::Clone::clone(
self,
)))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioObjectRenderStreamForHrtf_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
value: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
riid: *const ::windows::Guid,
service: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
availabledynamicobjectcount: *mut u32,
framecountperbuffer: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
r#type: AudioObjectType,
audioobject: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioObjectRenderStreamForMetadata(::windows::IUnknown);
impl ISpatialAudioObjectRenderStreamForMetadata {}
unsafe impl ::windows::Interface for ISpatialAudioObjectRenderStreamForMetadata {
type Vtable = ISpatialAudioObjectRenderStreamForMetadata_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3150563591,
18645,
18990,
[160, 199, 247, 240, 214, 124, 31, 177],
);
}
impl ISpatialAudioObjectRenderStreamForMetadata {
pub unsafe fn GetAvailableDynamicObjectCount(
&self,
value: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(value),
)
}
pub unsafe fn GetService(
&self,
riid: *const ::windows::Guid,
service: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(riid),
::std::mem::transmute(service),
)
}
pub unsafe fn Start(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(::windows::Abi::abi(self))
}
pub unsafe fn Stop(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(::windows::Abi::abi(self))
}
pub unsafe fn Reset(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(::windows::Abi::abi(self))
}
pub unsafe fn BeginUpdatingAudioObjects(
&self,
availabledynamicobjectcount: *mut u32,
framecountperbuffer: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(availabledynamicobjectcount),
::std::mem::transmute(framecountperbuffer),
)
}
pub unsafe fn EndUpdatingAudioObjects(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(::windows::Abi::abi(self))
}
pub unsafe fn ActivateSpatialAudioObjectForMetadataCommands(
&self,
r#type: AudioObjectType,
audioobject: *mut ::std::option::Option<ISpatialAudioObjectForMetadataCommands>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(r#type),
::std::mem::transmute(audioobject),
)
}
pub unsafe fn ActivateSpatialAudioObjectForMetadataItems(
&self,
r#type: AudioObjectType,
audioobject: *mut ::std::option::Option<ISpatialAudioObjectForMetadataItems>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(r#type),
::std::mem::transmute(audioobject),
)
}
}
impl ::std::convert::From<ISpatialAudioObjectRenderStreamForMetadata> for ::windows::IUnknown {
fn from(value: ISpatialAudioObjectRenderStreamForMetadata) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectRenderStreamForMetadata> for ::windows::IUnknown {
fn from(value: &ISpatialAudioObjectRenderStreamForMetadata) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown>
for ISpatialAudioObjectRenderStreamForMetadata
{
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown>
for &'a ISpatialAudioObjectRenderStreamForMetadata
{
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<ISpatialAudioObjectRenderStreamForMetadata>
for ISpatialAudioObjectRenderStreamBase
{
fn from(value: ISpatialAudioObjectRenderStreamForMetadata) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectRenderStreamForMetadata>
for ISpatialAudioObjectRenderStreamBase
{
fn from(value: &ISpatialAudioObjectRenderStreamForMetadata) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectRenderStreamBase>
for ISpatialAudioObjectRenderStreamForMetadata
{
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectRenderStreamBase> {
::windows::Param::Owned(::std::convert::Into::<
ISpatialAudioObjectRenderStreamBase,
>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ISpatialAudioObjectRenderStreamBase>
for &'a ISpatialAudioObjectRenderStreamForMetadata
{
fn into_param(self) -> ::windows::Param<'a, ISpatialAudioObjectRenderStreamBase> {
::windows::Param::Owned(::std::convert::Into::<
ISpatialAudioObjectRenderStreamBase,
>::into(::std::clone::Clone::clone(
self,
)))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioObjectRenderStreamForMetadata_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
value: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
riid: *const ::windows::Guid,
service: *mut *mut ::std::ffi::c_void,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
availabledynamicobjectcount: *mut u32,
framecountperbuffer: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
r#type: AudioObjectType,
audioobject: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
r#type: AudioObjectType,
audioobject: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISpatialAudioObjectRenderStreamNotify(::windows::IUnknown);
impl ISpatialAudioObjectRenderStreamNotify {}
unsafe impl ::windows::Interface for ISpatialAudioObjectRenderStreamNotify {
type Vtable = ISpatialAudioObjectRenderStreamNotify_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
3722413030,
26839,
19568,
[136, 63, 161, 131, 106, 251, 74, 80],
);
}
impl ISpatialAudioObjectRenderStreamNotify {
pub unsafe fn OnAvailableDynamicObjectCountChange<'a>(
&self,
sender: impl ::windows::IntoParam<'a, ISpatialAudioObjectRenderStreamBase>,
hnscompliancedeadlinetime: i64,
availabledynamicobjectcountchange: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
sender.into_param().abi(),
::std::mem::transmute(hnscompliancedeadlinetime),
::std::mem::transmute(availabledynamicobjectcountchange),
)
}
}
impl ::std::convert::From<ISpatialAudioObjectRenderStreamNotify> for ::windows::IUnknown {
fn from(value: ISpatialAudioObjectRenderStreamNotify) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISpatialAudioObjectRenderStreamNotify> for ::windows::IUnknown {
fn from(value: &ISpatialAudioObjectRenderStreamNotify) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISpatialAudioObjectRenderStreamNotify {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown>
for &'a ISpatialAudioObjectRenderStreamNotify
{
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISpatialAudioObjectRenderStreamNotify_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
sender: ::windows::RawPtr,
hnscompliancedeadlinetime: i64,
availabledynamicobjectcountchange: u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISubunit(::windows::IUnknown);
impl ISubunit {}
unsafe impl ::windows::Interface for ISubunit {
type Vtable = ISubunit_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
2182388357,
56230,
17543,
[134, 187, 234, 143, 127, 239, 204, 113],
);
}
impl ISubunit {}
impl ::std::convert::From<ISubunit> for ::windows::IUnknown {
fn from(value: ISubunit) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISubunit> for ::windows::IUnknown {
fn from(value: &ISubunit) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISubunit {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISubunit {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISubunit_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
);
pub const JACKDESC2_DYNAMIC_FORMAT_CHANGE_CAPABILITY: u32 = 2u32;
pub const JACKDESC2_PRESENCE_DETECT_CAPABILITY: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAC3_ALTERNATE_AUDIO {
pub fStereo: super::SystemServices::BOOL,
pub DualMode: u32,
}
impl KSAC3_ALTERNATE_AUDIO {}
impl ::std::default::Default for KSAC3_ALTERNATE_AUDIO {
fn default() -> Self {
Self {
fStereo: ::std::default::Default::default(),
DualMode: 0,
}
}
}
impl ::std::fmt::Debug for KSAC3_ALTERNATE_AUDIO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAC3_ALTERNATE_AUDIO")
.field("fStereo", &format_args!("{:?}", self.fStereo))
.field("DualMode", &format_args!("{:?}", self.DualMode))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAC3_ALTERNATE_AUDIO {
fn eq(&self, other: &Self) -> bool {
self.fStereo == other.fStereo && self.DualMode == other.DualMode
}
}
impl ::std::cmp::Eq for KSAC3_ALTERNATE_AUDIO {}
unsafe impl ::windows::Abi for KSAC3_ALTERNATE_AUDIO {
type Abi = Self;
}
pub const KSAC3_ALTERNATE_AUDIO_1: u32 = 1u32;
pub const KSAC3_ALTERNATE_AUDIO_2: u32 = 2u32;
pub const KSAC3_ALTERNATE_AUDIO_BOTH: u32 = 3u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAC3_BIT_STREAM_MODE {
pub BitStreamMode: i32,
}
impl KSAC3_BIT_STREAM_MODE {}
impl ::std::default::Default for KSAC3_BIT_STREAM_MODE {
fn default() -> Self {
Self { BitStreamMode: 0 }
}
}
impl ::std::fmt::Debug for KSAC3_BIT_STREAM_MODE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAC3_BIT_STREAM_MODE")
.field("BitStreamMode", &format_args!("{:?}", self.BitStreamMode))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAC3_BIT_STREAM_MODE {
fn eq(&self, other: &Self) -> bool {
self.BitStreamMode == other.BitStreamMode
}
}
impl ::std::cmp::Eq for KSAC3_BIT_STREAM_MODE {}
unsafe impl ::windows::Abi for KSAC3_BIT_STREAM_MODE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAC3_DIALOGUE_LEVEL {
pub DialogueLevel: u32,
}
impl KSAC3_DIALOGUE_LEVEL {}
impl ::std::default::Default for KSAC3_DIALOGUE_LEVEL {
fn default() -> Self {
Self { DialogueLevel: 0 }
}
}
impl ::std::fmt::Debug for KSAC3_DIALOGUE_LEVEL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAC3_DIALOGUE_LEVEL")
.field("DialogueLevel", &format_args!("{:?}", self.DialogueLevel))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAC3_DIALOGUE_LEVEL {
fn eq(&self, other: &Self) -> bool {
self.DialogueLevel == other.DialogueLevel
}
}
impl ::std::cmp::Eq for KSAC3_DIALOGUE_LEVEL {}
unsafe impl ::windows::Abi for KSAC3_DIALOGUE_LEVEL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAC3_DOWNMIX {
pub fDownMix: super::SystemServices::BOOL,
pub fDolbySurround: super::SystemServices::BOOL,
}
impl KSAC3_DOWNMIX {}
impl ::std::default::Default for KSAC3_DOWNMIX {
fn default() -> Self {
Self {
fDownMix: ::std::default::Default::default(),
fDolbySurround: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSAC3_DOWNMIX {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAC3_DOWNMIX")
.field("fDownMix", &format_args!("{:?}", self.fDownMix))
.field("fDolbySurround", &format_args!("{:?}", self.fDolbySurround))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAC3_DOWNMIX {
fn eq(&self, other: &Self) -> bool {
self.fDownMix == other.fDownMix && self.fDolbySurround == other.fDolbySurround
}
}
impl ::std::cmp::Eq for KSAC3_DOWNMIX {}
unsafe impl ::windows::Abi for KSAC3_DOWNMIX {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAC3_ERROR_CONCEALMENT {
pub fRepeatPreviousBlock: super::SystemServices::BOOL,
pub fErrorInCurrentBlock: super::SystemServices::BOOL,
}
impl KSAC3_ERROR_CONCEALMENT {}
impl ::std::default::Default for KSAC3_ERROR_CONCEALMENT {
fn default() -> Self {
Self {
fRepeatPreviousBlock: ::std::default::Default::default(),
fErrorInCurrentBlock: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSAC3_ERROR_CONCEALMENT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAC3_ERROR_CONCEALMENT")
.field(
"fRepeatPreviousBlock",
&format_args!("{:?}", self.fRepeatPreviousBlock),
)
.field(
"fErrorInCurrentBlock",
&format_args!("{:?}", self.fErrorInCurrentBlock),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSAC3_ERROR_CONCEALMENT {
fn eq(&self, other: &Self) -> bool {
self.fRepeatPreviousBlock == other.fRepeatPreviousBlock
&& self.fErrorInCurrentBlock == other.fErrorInCurrentBlock
}
}
impl ::std::cmp::Eq for KSAC3_ERROR_CONCEALMENT {}
unsafe impl ::windows::Abi for KSAC3_ERROR_CONCEALMENT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAC3_ROOM_TYPE {
pub fLargeRoom: super::SystemServices::BOOL,
}
impl KSAC3_ROOM_TYPE {}
impl ::std::default::Default for KSAC3_ROOM_TYPE {
fn default() -> Self {
Self {
fLargeRoom: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSAC3_ROOM_TYPE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAC3_ROOM_TYPE")
.field("fLargeRoom", &format_args!("{:?}", self.fLargeRoom))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAC3_ROOM_TYPE {
fn eq(&self, other: &Self) -> bool {
self.fLargeRoom == other.fLargeRoom
}
}
impl ::std::cmp::Eq for KSAC3_ROOM_TYPE {}
unsafe impl ::windows::Abi for KSAC3_ROOM_TYPE {
type Abi = Self;
}
pub const KSAC3_SERVICE_COMMENTARY: u32 = 5u32;
pub const KSAC3_SERVICE_DIALOG_ONLY: u32 = 4u32;
pub const KSAC3_SERVICE_EMERGENCY_FLASH: u32 = 6u32;
pub const KSAC3_SERVICE_HEARING_IMPAIRED: u32 = 3u32;
pub const KSAC3_SERVICE_MAIN_AUDIO: u32 = 0u32;
pub const KSAC3_SERVICE_NO_DIALOG: u32 = 1u32;
pub const KSAC3_SERVICE_VISUALLY_IMPAIRED: u32 = 2u32;
pub const KSAC3_SERVICE_VOICE_OVER: u32 = 7u32;
pub const KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL: ::windows::Guid =
::windows::Guid::from_values(
472040813,
39033,
20315,
[163, 137, 39, 153, 109, 220, 40, 16],
);
pub const KSALGORITHMINSTANCE_SYSTEM_AGC: ::windows::Guid =
::windows::Guid::from_values(
2500744633,
34684,
19559,
[190, 8, 228, 123, 86, 17, 19, 10],
);
pub const KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR: ::windows::Guid =
::windows::Guid::from_values(
3069550752,
40545,
20364,
[145, 227, 118, 207, 15, 60, 71, 31],
);
pub const KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS: ::windows::Guid =
::windows::Guid::from_values(
1521518638,
29300,
17686,
[135, 125, 78, 238, 153, 186, 79, 208],
);
pub const KSALLOCATOR_FLAG_2D_BUFFER_REQUIRED: u32 = 32768u32;
pub const KSALLOCATOR_FLAG_ALLOCATOR_EXISTS: u32 = 2048u32;
pub const KSALLOCATOR_FLAG_ATTENTION_STEPPING: u32 = 8192u32;
pub const KSALLOCATOR_FLAG_CAN_ALLOCATE: u32 = 64u32;
pub const KSALLOCATOR_FLAG_CYCLE: u32 = 1024u32;
pub const KSALLOCATOR_FLAG_DEVICE_SPECIFIC: u32 = 32u32;
pub const KSALLOCATOR_FLAG_ENABLE_CACHED_MDL: u32 = 16384u32;
pub const KSALLOCATOR_FLAG_INDEPENDENT_RANGES: u32 = 4096u32;
pub const KSALLOCATOR_FLAG_INSIST_ON_FRAMESIZE_RATIO: u32 = 128u32;
pub const KSALLOCATOR_FLAG_MULTIPLE_OUTPUT: u32 = 512u32;
pub const KSALLOCATOR_FLAG_NO_FRAME_INTEGRITY: u32 = 256u32;
pub const KSALLOCATOR_FLAG_PARTIAL_READ_SUPPORT: u32 = 16u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSALLOCATOR_FRAMING {
pub Anonymous1: KSALLOCATOR_FRAMING_0,
pub PoolType: u32,
pub Frames: u32,
pub FrameSize: u32,
pub Anonymous2: KSALLOCATOR_FRAMING_1,
pub Reserved: u32,
}
impl KSALLOCATOR_FRAMING {}
unsafe impl ::windows::Abi for KSALLOCATOR_FRAMING {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSALLOCATOR_FRAMING_0 {
pub OptionsFlags: u32,
pub RequirementsFlags: u32,
}
impl KSALLOCATOR_FRAMING_0 {}
unsafe impl ::windows::Abi for KSALLOCATOR_FRAMING_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSALLOCATOR_FRAMING_1 {
pub FileAlignment: u32,
pub FramePitch: i32,
}
impl KSALLOCATOR_FRAMING_1 {}
unsafe impl ::windows::Abi for KSALLOCATOR_FRAMING_1 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_COMPRESSION {
pub RatioNumerator: u32,
pub RatioDenominator: u32,
pub RatioConstantMargin: u32,
}
impl KS_COMPRESSION {}
impl ::std::default::Default for KS_COMPRESSION {
fn default() -> Self {
Self {
RatioNumerator: 0,
RatioDenominator: 0,
RatioConstantMargin: 0,
}
}
}
impl ::std::fmt::Debug for KS_COMPRESSION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_COMPRESSION")
.field("RatioNumerator", &format_args!("{:?}", self.RatioNumerator))
.field(
"RatioDenominator",
&format_args!("{:?}", self.RatioDenominator),
)
.field(
"RatioConstantMargin",
&format_args!("{:?}", self.RatioConstantMargin),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KS_COMPRESSION {
fn eq(&self, other: &Self) -> bool {
self.RatioNumerator == other.RatioNumerator
&& self.RatioDenominator == other.RatioDenominator
&& self.RatioConstantMargin == other.RatioConstantMargin
}
}
impl ::std::cmp::Eq for KS_COMPRESSION {}
unsafe impl ::windows::Abi for KS_COMPRESSION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_FRAMING_RANGE {
pub MinFrameSize: u32,
pub MaxFrameSize: u32,
pub Stepping: u32,
}
impl KS_FRAMING_RANGE {}
impl ::std::default::Default for KS_FRAMING_RANGE {
fn default() -> Self {
Self {
MinFrameSize: 0,
MaxFrameSize: 0,
Stepping: 0,
}
}
}
impl ::std::fmt::Debug for KS_FRAMING_RANGE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_FRAMING_RANGE")
.field("MinFrameSize", &format_args!("{:?}", self.MinFrameSize))
.field("MaxFrameSize", &format_args!("{:?}", self.MaxFrameSize))
.field("Stepping", &format_args!("{:?}", self.Stepping))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_FRAMING_RANGE {
fn eq(&self, other: &Self) -> bool {
self.MinFrameSize == other.MinFrameSize
&& self.MaxFrameSize == other.MaxFrameSize
&& self.Stepping == other.Stepping
}
}
impl ::std::cmp::Eq for KS_FRAMING_RANGE {}
unsafe impl ::windows::Abi for KS_FRAMING_RANGE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_FRAMING_RANGE_WEIGHTED {
pub Range: KS_FRAMING_RANGE,
pub InPlaceWeight: u32,
pub NotInPlaceWeight: u32,
}
impl KS_FRAMING_RANGE_WEIGHTED {}
impl ::std::default::Default for KS_FRAMING_RANGE_WEIGHTED {
fn default() -> Self {
Self {
Range: ::std::default::Default::default(),
InPlaceWeight: 0,
NotInPlaceWeight: 0,
}
}
}
impl ::std::fmt::Debug for KS_FRAMING_RANGE_WEIGHTED {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_FRAMING_RANGE_WEIGHTED")
.field("Range", &format_args!("{:?}", self.Range))
.field("InPlaceWeight", &format_args!("{:?}", self.InPlaceWeight))
.field(
"NotInPlaceWeight",
&format_args!("{:?}", self.NotInPlaceWeight),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KS_FRAMING_RANGE_WEIGHTED {
fn eq(&self, other: &Self) -> bool {
self.Range == other.Range
&& self.InPlaceWeight == other.InPlaceWeight
&& self.NotInPlaceWeight == other.NotInPlaceWeight
}
}
impl ::std::cmp::Eq for KS_FRAMING_RANGE_WEIGHTED {}
unsafe impl ::windows::Abi for KS_FRAMING_RANGE_WEIGHTED {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_FRAMING_ITEM {
pub MemoryType: ::windows::Guid,
pub BusType: ::windows::Guid,
pub MemoryFlags: u32,
pub BusFlags: u32,
pub Flags: u32,
pub Frames: u32,
pub Anonymous: KS_FRAMING_ITEM_0,
pub MemoryTypeWeight: u32,
pub PhysicalRange: KS_FRAMING_RANGE,
pub FramingRange: KS_FRAMING_RANGE_WEIGHTED,
}
impl KS_FRAMING_ITEM {}
unsafe impl ::windows::Abi for KS_FRAMING_ITEM {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KS_FRAMING_ITEM_0 {
pub FileAlignment: u32,
pub FramePitch: i32,
}
impl KS_FRAMING_ITEM_0 {}
unsafe impl ::windows::Abi for KS_FRAMING_ITEM_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSALLOCATOR_FRAMING_EX {
pub CountItems: u32,
pub PinFlags: u32,
pub OutputCompression: KS_COMPRESSION,
pub PinWeight: u32,
pub FramingItem: [KS_FRAMING_ITEM; 1],
}
impl KSALLOCATOR_FRAMING_EX {}
unsafe impl ::windows::Abi for KSALLOCATOR_FRAMING_EX {
type Abi = Self;
}
pub const KSALLOCATOR_OPTIONF_COMPATIBLE: u32 = 1u32;
pub const KSALLOCATOR_OPTIONF_SYSTEM_MEMORY: u32 = 2u32;
pub const KSALLOCATOR_OPTIONF_VALID: u32 = 3u32;
pub const KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY: u32 = 4u32;
pub const KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER: u32 = 1u32;
pub const KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE: u32 = 8u32;
pub const KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY: u32 = 2147483648u32;
pub const KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY: u32 = 2u32;
pub const KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY_CUSTOM_ALLOCATION: u32 = 16u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSATTRIBUTE {
pub Size: u32,
pub Flags: u32,
pub Attribute: ::windows::Guid,
}
impl KSATTRIBUTE {}
impl ::std::default::Default for KSATTRIBUTE {
fn default() -> Self {
Self {
Size: 0,
Flags: 0,
Attribute: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSATTRIBUTE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSATTRIBUTE")
.field("Size", &format_args!("{:?}", self.Size))
.field("Flags", &format_args!("{:?}", self.Flags))
.field("Attribute", &format_args!("{:?}", self.Attribute))
.finish()
}
}
impl ::std::cmp::PartialEq for KSATTRIBUTE {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.Flags == other.Flags
&& self.Attribute == other.Attribute
}
}
impl ::std::cmp::Eq for KSATTRIBUTE {}
unsafe impl ::windows::Abi for KSATTRIBUTE {
type Abi = Self;
}
pub const KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE: ::windows::Guid =
::windows::Guid::from_values(
3791167157,
24390,
16795,
[150, 123, 255, 103, 112, 185, 132, 1],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE {
pub AttributeHeader: KSATTRIBUTE,
pub SignalProcessingMode: ::windows::Guid,
}
impl KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE {}
impl ::std::default::Default for KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE {
fn default() -> Self {
Self {
AttributeHeader: ::std::default::Default::default(),
SignalProcessingMode: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE")
.field(
"AttributeHeader",
&format_args!("{:?}", self.AttributeHeader),
)
.field(
"SignalProcessingMode",
&format_args!("{:?}", self.SignalProcessingMode),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE {
fn eq(&self, other: &Self) -> bool {
self.AttributeHeader == other.AttributeHeader
&& self.SignalProcessingMode == other.SignalProcessingMode
}
}
impl ::std::cmp::Eq for KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE {}
unsafe impl ::windows::Abi for KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE {
type Abi = Self;
}
pub const KSATTRIBUTE_REQUIRED: u32 = 1u32;
pub const KSAUDDECOUTMODE_PCM_51: u32 = 2u32;
pub const KSAUDDECOUTMODE_SPDIFF: u32 = 4u32;
pub const KSAUDDECOUTMODE_STEREO_ANALOG: u32 = 1u32;
pub const KSAUDFNAME_3D_CENTER: ::windows::Guid = ::windows::Guid::from_values(
2667999412,
39199,
4562,
[172, 77, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_3D_DEPTH: ::windows::Guid = ::windows::Guid::from_values(
1677678407,
39199,
4562,
[172, 77, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_3D_STEREO: ::windows::Guid = ::windows::Guid::from_values(
408940002,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_ALTERNATE_MICROPHONE: ::windows::Guid =
::windows::Guid::from_values(
734207339,
38627,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_AUX: ::windows::Guid = ::windows::Guid::from_values(
408940030,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_AUX_MUTE: ::windows::Guid = ::windows::Guid::from_values(
408940029,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_AUX_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940028,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_BASS: ::windows::Guid = ::windows::Guid::from_values(
408940000,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_CD_AUDIO: ::windows::Guid = ::windows::Guid::from_values(
408940027,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_CD_IN_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940019,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_CD_MUTE: ::windows::Guid = ::windows::Guid::from_values(
408940010,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_CD_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940009,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_LINE_IN: ::windows::Guid = ::windows::Guid::from_values(
408940025,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_LINE_IN_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940020,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_LINE_MUTE: ::windows::Guid = ::windows::Guid::from_values(
408940012,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_LINE_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940011,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_MASTER_MUTE: ::windows::Guid = ::windows::Guid::from_values(
408940004,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_MASTER_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940003,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_MICROPHONE_BOOST: ::windows::Guid = ::windows::Guid::from_values(
734207338,
38627,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_MIC_IN_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940021,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_MIC_MUTE: ::windows::Guid = ::windows::Guid::from_values(
408940014,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_MIC_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940013,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_MIDI: ::windows::Guid = ::windows::Guid::from_values(
408940024,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_MIDI_IN_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940018,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_MIDI_MUTE: ::windows::Guid = ::windows::Guid::from_values(
408940008,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_MIDI_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940007,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_MIDRANGE: ::windows::Guid = ::windows::Guid::from_values(
2731271288,
44676,
18849,
[139, 114, 74, 208, 155, 120, 237, 52],
);
pub const KSAUDFNAME_MONO_MIX: ::windows::Guid = ::windows::Guid::from_values(
14676088,
38627,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_MONO_MIX_MUTE: ::windows::Guid = ::windows::Guid::from_values(
734207337,
38627,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_MONO_MIX_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
582019838,
38627,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_MONO_OUT: ::windows::Guid = ::windows::Guid::from_values(
4189330883,
38626,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_MONO_OUT_MUTE: ::windows::Guid = ::windows::Guid::from_values(
449988588,
38627,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_MONO_OUT_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
449988587,
38627,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_PC_SPEAKER: ::windows::Guid = ::windows::Guid::from_values(
408940031,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_PC_SPEAKER_MUTE: ::windows::Guid = ::windows::Guid::from_values(
408940017,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_PC_SPEAKER_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940016,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_PEAKMETER: ::windows::Guid = ::windows::Guid::from_values(
1474446144,
64603,
17938,
[165, 98, 114, 177, 26, 41, 223, 174],
);
pub const KSAUDFNAME_RECORDING_CONTROL: ::windows::Guid = ::windows::Guid::from_values(
408940026,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_RECORDING_SOURCE: ::windows::Guid = ::windows::Guid::from_values(
408940015,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_STEREO_MIX: ::windows::Guid = ::windows::Guid::from_values(
14676087,
38627,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_STEREO_MIX_MUTE: ::windows::Guid = ::windows::Guid::from_values(
582019837,
38627,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_STEREO_MIX_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
449988589,
38627,
4562,
[172, 76, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_TREBLE: ::windows::Guid = ::windows::Guid::from_values(
408940001,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_VIDEO: ::windows::Guid = ::windows::Guid::from_values(
2438835908,
42036,
4562,
[172, 82, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_VIDEO_MUTE: ::windows::Guid = ::windows::Guid::from_values(
2605115145,
39210,
4562,
[172, 77, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_VIDEO_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
2605115144,
39210,
4562,
[172, 77, 0, 192, 79, 142, 251, 104],
);
pub const KSAUDFNAME_VOLUME_CONTROL: ::windows::Guid = ::windows::Guid::from_values(
408940023,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_WAVE_IN_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940022,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_WAVE_MUTE: ::windows::Guid = ::windows::Guid::from_values(
408940006,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_WAVE_OUT_MIX: ::windows::Guid = ::windows::Guid::from_values(
408940032,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
pub const KSAUDFNAME_WAVE_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
408940005,
39173,
4561,
[149, 169, 0, 192, 79, 185, 37, 211],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIOENGINE_BUFFER_SIZE_RANGE {
pub MinBufferBytes: u32,
pub MaxBufferBytes: u32,
}
impl KSAUDIOENGINE_BUFFER_SIZE_RANGE {}
impl ::std::default::Default for KSAUDIOENGINE_BUFFER_SIZE_RANGE {
fn default() -> Self {
Self {
MinBufferBytes: 0,
MaxBufferBytes: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIOENGINE_BUFFER_SIZE_RANGE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIOENGINE_BUFFER_SIZE_RANGE")
.field("MinBufferBytes", &format_args!("{:?}", self.MinBufferBytes))
.field("MaxBufferBytes", &format_args!("{:?}", self.MaxBufferBytes))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIOENGINE_BUFFER_SIZE_RANGE {
fn eq(&self, other: &Self) -> bool {
self.MinBufferBytes == other.MinBufferBytes
&& self.MaxBufferBytes == other.MaxBufferBytes
}
}
impl ::std::cmp::Eq for KSAUDIOENGINE_BUFFER_SIZE_RANGE {}
unsafe impl ::windows::Abi for KSAUDIOENGINE_BUFFER_SIZE_RANGE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIOENGINE_DESCRIPTOR {
pub nHostPinId: u32,
pub nOffloadPinId: u32,
pub nLoopbackPinId: u32,
}
impl KSAUDIOENGINE_DESCRIPTOR {}
impl ::std::default::Default for KSAUDIOENGINE_DESCRIPTOR {
fn default() -> Self {
Self {
nHostPinId: 0,
nOffloadPinId: 0,
nLoopbackPinId: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIOENGINE_DESCRIPTOR {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIOENGINE_DESCRIPTOR")
.field("nHostPinId", &format_args!("{:?}", self.nHostPinId))
.field("nOffloadPinId", &format_args!("{:?}", self.nOffloadPinId))
.field("nLoopbackPinId", &format_args!("{:?}", self.nLoopbackPinId))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIOENGINE_DESCRIPTOR {
fn eq(&self, other: &Self) -> bool {
self.nHostPinId == other.nHostPinId
&& self.nOffloadPinId == other.nOffloadPinId
&& self.nLoopbackPinId == other.nLoopbackPinId
}
}
impl ::std::cmp::Eq for KSAUDIOENGINE_DESCRIPTOR {}
unsafe impl ::windows::Abi for KSAUDIOENGINE_DESCRIPTOR {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIOENGINE_VOLUMELEVEL {
pub TargetVolume: i32,
pub CurveType: AUDIO_CURVE_TYPE,
pub CurveDuration: u64,
}
impl KSAUDIOENGINE_VOLUMELEVEL {}
impl ::std::default::Default for KSAUDIOENGINE_VOLUMELEVEL {
fn default() -> Self {
Self {
TargetVolume: 0,
CurveType: ::std::default::Default::default(),
CurveDuration: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIOENGINE_VOLUMELEVEL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIOENGINE_VOLUMELEVEL")
.field("TargetVolume", &format_args!("{:?}", self.TargetVolume))
.field("CurveType", &format_args!("{:?}", self.CurveType))
.field("CurveDuration", &format_args!("{:?}", self.CurveDuration))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIOENGINE_VOLUMELEVEL {
fn eq(&self, other: &Self) -> bool {
self.TargetVolume == other.TargetVolume
&& self.CurveType == other.CurveType
&& self.CurveDuration == other.CurveDuration
}
}
impl ::std::cmp::Eq for KSAUDIOENGINE_VOLUMELEVEL {}
unsafe impl ::windows::Abi for KSAUDIOENGINE_VOLUMELEVEL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIOMODULE_DESCRIPTOR {
pub ClassId: ::windows::Guid,
pub InstanceId: u32,
pub VersionMajor: u32,
pub VersionMinor: u32,
pub Name: [u16; 128],
}
impl KSAUDIOMODULE_DESCRIPTOR {}
impl ::std::default::Default for KSAUDIOMODULE_DESCRIPTOR {
fn default() -> Self {
Self {
ClassId: ::std::default::Default::default(),
InstanceId: 0,
VersionMajor: 0,
VersionMinor: 0,
Name: [0; 128],
}
}
}
impl ::std::fmt::Debug for KSAUDIOMODULE_DESCRIPTOR {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIOMODULE_DESCRIPTOR")
.field("ClassId", &format_args!("{:?}", self.ClassId))
.field("InstanceId", &format_args!("{:?}", self.InstanceId))
.field("VersionMajor", &format_args!("{:?}", self.VersionMajor))
.field("VersionMinor", &format_args!("{:?}", self.VersionMinor))
.field("Name", &format_args!("{:?}", self.Name))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIOMODULE_DESCRIPTOR {
fn eq(&self, other: &Self) -> bool {
self.ClassId == other.ClassId
&& self.InstanceId == other.InstanceId
&& self.VersionMajor == other.VersionMajor
&& self.VersionMinor == other.VersionMinor
&& self.Name == other.Name
}
}
impl ::std::cmp::Eq for KSAUDIOMODULE_DESCRIPTOR {}
unsafe impl ::windows::Abi for KSAUDIOMODULE_DESCRIPTOR {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIOMODULE_NOTIFICATION {
pub Anonymous: KSAUDIOMODULE_NOTIFICATION_0,
}
impl KSAUDIOMODULE_NOTIFICATION {}
unsafe impl ::windows::Abi for KSAUDIOMODULE_NOTIFICATION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSAUDIOMODULE_NOTIFICATION_0 {
pub ProviderId: KSAUDIOMODULE_NOTIFICATION_0_0,
pub Alignment: i64,
}
impl KSAUDIOMODULE_NOTIFICATION_0 {}
unsafe impl ::windows::Abi for KSAUDIOMODULE_NOTIFICATION_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIOMODULE_NOTIFICATION_0_0 {
pub DeviceId: ::windows::Guid,
pub ClassId: ::windows::Guid,
pub InstanceId: u32,
pub Reserved: u32,
}
impl KSAUDIOMODULE_NOTIFICATION_0_0 {}
impl ::std::default::Default for KSAUDIOMODULE_NOTIFICATION_0_0 {
fn default() -> Self {
Self {
DeviceId: ::std::default::Default::default(),
ClassId: ::std::default::Default::default(),
InstanceId: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIOMODULE_NOTIFICATION_0_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_ProviderId_e__Struct")
.field("DeviceId", &format_args!("{:?}", self.DeviceId))
.field("ClassId", &format_args!("{:?}", self.ClassId))
.field("InstanceId", &format_args!("{:?}", self.InstanceId))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIOMODULE_NOTIFICATION_0_0 {
fn eq(&self, other: &Self) -> bool {
self.DeviceId == other.DeviceId
&& self.ClassId == other.ClassId
&& self.InstanceId == other.InstanceId
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSAUDIOMODULE_NOTIFICATION_0_0 {}
unsafe impl ::windows::Abi for KSAUDIOMODULE_NOTIFICATION_0_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIOMODULE_PROPERTY {
pub Property: KSIDENTIFIER,
pub ClassId: ::windows::Guid,
pub InstanceId: u32,
}
impl KSAUDIOMODULE_PROPERTY {}
unsafe impl ::windows::Abi for KSAUDIOMODULE_PROPERTY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIOPOSTURE_DESCRIPTION {
pub CbSize: u32,
pub MembersListCount: u32,
}
impl KSAUDIOPOSTURE_DESCRIPTION {}
impl ::std::default::Default for KSAUDIOPOSTURE_DESCRIPTION {
fn default() -> Self {
Self {
CbSize: 0,
MembersListCount: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIOPOSTURE_DESCRIPTION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIOPOSTURE_DESCRIPTION")
.field("CbSize", &format_args!("{:?}", self.CbSize))
.field(
"MembersListCount",
&format_args!("{:?}", self.MembersListCount),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIOPOSTURE_DESCRIPTION {
fn eq(&self, other: &Self) -> bool {
self.CbSize == other.CbSize && self.MembersListCount == other.MembersListCount
}
}
impl ::std::cmp::Eq for KSAUDIOPOSTURE_DESCRIPTION {}
unsafe impl ::windows::Abi for KSAUDIOPOSTURE_DESCRIPTION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIOPOSTURE_PANEL_STATE {
pub Power: AUDIOPOSTURE_PANEL_POWER,
pub Orientation: AUDIOPOSTURE_PANEL_ORIENTATION,
}
impl KSAUDIOPOSTURE_PANEL_STATE {}
impl ::std::default::Default for KSAUDIOPOSTURE_PANEL_STATE {
fn default() -> Self {
Self {
Power: ::std::default::Default::default(),
Orientation: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSAUDIOPOSTURE_PANEL_STATE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIOPOSTURE_PANEL_STATE")
.field("Power", &format_args!("{:?}", self.Power))
.field("Orientation", &format_args!("{:?}", self.Orientation))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIOPOSTURE_PANEL_STATE {
fn eq(&self, other: &Self) -> bool {
self.Power == other.Power && self.Orientation == other.Orientation
}
}
impl ::std::cmp::Eq for KSAUDIOPOSTURE_PANEL_STATE {}
unsafe impl ::windows::Abi for KSAUDIOPOSTURE_PANEL_STATE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_CHANNEL_CONFIG {
pub ActiveSpeakerPositions: i32,
}
impl KSAUDIO_CHANNEL_CONFIG {}
impl ::std::default::Default for KSAUDIO_CHANNEL_CONFIG {
fn default() -> Self {
Self {
ActiveSpeakerPositions: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIO_CHANNEL_CONFIG {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_CHANNEL_CONFIG")
.field(
"ActiveSpeakerPositions",
&format_args!("{:?}", self.ActiveSpeakerPositions),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_CHANNEL_CONFIG {
fn eq(&self, other: &Self) -> bool {
self.ActiveSpeakerPositions == other.ActiveSpeakerPositions
}
}
impl ::std::cmp::Eq for KSAUDIO_CHANNEL_CONFIG {}
unsafe impl ::windows::Abi for KSAUDIO_CHANNEL_CONFIG {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_COPY_PROTECTION {
pub fCopyrighted: super::SystemServices::BOOL,
pub fOriginal: super::SystemServices::BOOL,
}
impl KSAUDIO_COPY_PROTECTION {}
impl ::std::default::Default for KSAUDIO_COPY_PROTECTION {
fn default() -> Self {
Self {
fCopyrighted: ::std::default::Default::default(),
fOriginal: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSAUDIO_COPY_PROTECTION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_COPY_PROTECTION")
.field("fCopyrighted", &format_args!("{:?}", self.fCopyrighted))
.field("fOriginal", &format_args!("{:?}", self.fOriginal))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_COPY_PROTECTION {
fn eq(&self, other: &Self) -> bool {
self.fCopyrighted == other.fCopyrighted && self.fOriginal == other.fOriginal
}
}
impl ::std::cmp::Eq for KSAUDIO_COPY_PROTECTION {}
unsafe impl ::windows::Abi for KSAUDIO_COPY_PROTECTION {
type Abi = Self;
}
pub const KSAUDIO_CPU_RESOURCES_HOST_CPU: u32 = 2147483647u32;
pub const KSAUDIO_CPU_RESOURCES_NOT_HOST_CPU: u32 = 0u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_DYNAMIC_RANGE {
pub QuietCompression: u32,
pub LoudCompression: u32,
}
impl KSAUDIO_DYNAMIC_RANGE {}
impl ::std::default::Default for KSAUDIO_DYNAMIC_RANGE {
fn default() -> Self {
Self {
QuietCompression: 0,
LoudCompression: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIO_DYNAMIC_RANGE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_DYNAMIC_RANGE")
.field(
"QuietCompression",
&format_args!("{:?}", self.QuietCompression),
)
.field(
"LoudCompression",
&format_args!("{:?}", self.LoudCompression),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_DYNAMIC_RANGE {
fn eq(&self, other: &Self) -> bool {
self.QuietCompression == other.QuietCompression
&& self.LoudCompression == other.LoudCompression
}
}
impl ::std::cmp::Eq for KSAUDIO_DYNAMIC_RANGE {}
unsafe impl ::windows::Abi for KSAUDIO_DYNAMIC_RANGE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_MICROPHONE_COORDINATES {
pub usType: u16,
pub wXCoord: i16,
pub wYCoord: i16,
pub wZCoord: i16,
pub wVerticalAngle: i16,
pub wHorizontalAngle: i16,
}
impl KSAUDIO_MICROPHONE_COORDINATES {}
impl ::std::default::Default for KSAUDIO_MICROPHONE_COORDINATES {
fn default() -> Self {
Self {
usType: 0,
wXCoord: 0,
wYCoord: 0,
wZCoord: 0,
wVerticalAngle: 0,
wHorizontalAngle: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIO_MICROPHONE_COORDINATES {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_MICROPHONE_COORDINATES")
.field("usType", &format_args!("{:?}", self.usType))
.field("wXCoord", &format_args!("{:?}", self.wXCoord))
.field("wYCoord", &format_args!("{:?}", self.wYCoord))
.field("wZCoord", &format_args!("{:?}", self.wZCoord))
.field("wVerticalAngle", &format_args!("{:?}", self.wVerticalAngle))
.field(
"wHorizontalAngle",
&format_args!("{:?}", self.wHorizontalAngle),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_MICROPHONE_COORDINATES {
fn eq(&self, other: &Self) -> bool {
self.usType == other.usType
&& self.wXCoord == other.wXCoord
&& self.wYCoord == other.wYCoord
&& self.wZCoord == other.wZCoord
&& self.wVerticalAngle == other.wVerticalAngle
&& self.wHorizontalAngle == other.wHorizontalAngle
}
}
impl ::std::cmp::Eq for KSAUDIO_MICROPHONE_COORDINATES {}
unsafe impl ::windows::Abi for KSAUDIO_MICROPHONE_COORDINATES {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_MIC_ARRAY_GEOMETRY {
pub usVersion: u16,
pub usMicArrayType: u16,
pub wVerticalAngleBegin: i16,
pub wVerticalAngleEnd: i16,
pub wHorizontalAngleBegin: i16,
pub wHorizontalAngleEnd: i16,
pub usFrequencyBandLo: u16,
pub usFrequencyBandHi: u16,
pub usNumberOfMicrophones: u16,
pub KsMicCoord: [KSAUDIO_MICROPHONE_COORDINATES; 1],
}
impl KSAUDIO_MIC_ARRAY_GEOMETRY {}
impl ::std::default::Default for KSAUDIO_MIC_ARRAY_GEOMETRY {
fn default() -> Self {
Self {
usVersion: 0,
usMicArrayType: 0,
wVerticalAngleBegin: 0,
wVerticalAngleEnd: 0,
wHorizontalAngleBegin: 0,
wHorizontalAngleEnd: 0,
usFrequencyBandLo: 0,
usFrequencyBandHi: 0,
usNumberOfMicrophones: 0,
KsMicCoord: [::std::default::Default::default(); 1],
}
}
}
impl ::std::fmt::Debug for KSAUDIO_MIC_ARRAY_GEOMETRY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_MIC_ARRAY_GEOMETRY")
.field("usVersion", &format_args!("{:?}", self.usVersion))
.field("usMicArrayType", &format_args!("{:?}", self.usMicArrayType))
.field(
"wVerticalAngleBegin",
&format_args!("{:?}", self.wVerticalAngleBegin),
)
.field(
"wVerticalAngleEnd",
&format_args!("{:?}", self.wVerticalAngleEnd),
)
.field(
"wHorizontalAngleBegin",
&format_args!("{:?}", self.wHorizontalAngleBegin),
)
.field(
"wHorizontalAngleEnd",
&format_args!("{:?}", self.wHorizontalAngleEnd),
)
.field(
"usFrequencyBandLo",
&format_args!("{:?}", self.usFrequencyBandLo),
)
.field(
"usFrequencyBandHi",
&format_args!("{:?}", self.usFrequencyBandHi),
)
.field(
"usNumberOfMicrophones",
&format_args!("{:?}", self.usNumberOfMicrophones),
)
.field("KsMicCoord", &format_args!("{:?}", self.KsMicCoord))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_MIC_ARRAY_GEOMETRY {
fn eq(&self, other: &Self) -> bool {
self.usVersion == other.usVersion
&& self.usMicArrayType == other.usMicArrayType
&& self.wVerticalAngleBegin == other.wVerticalAngleBegin
&& self.wVerticalAngleEnd == other.wVerticalAngleEnd
&& self.wHorizontalAngleBegin == other.wHorizontalAngleBegin
&& self.wHorizontalAngleEnd == other.wHorizontalAngleEnd
&& self.usFrequencyBandLo == other.usFrequencyBandLo
&& self.usFrequencyBandHi == other.usFrequencyBandHi
&& self.usNumberOfMicrophones == other.usNumberOfMicrophones
&& self.KsMicCoord == other.KsMicCoord
}
}
impl ::std::cmp::Eq for KSAUDIO_MIC_ARRAY_GEOMETRY {}
unsafe impl ::windows::Abi for KSAUDIO_MIC_ARRAY_GEOMETRY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_MIX_CAPS {
pub Mute: super::SystemServices::BOOL,
pub Minimum: i32,
pub Maximum: i32,
pub Anonymous: KSAUDIO_MIX_CAPS_0,
}
impl KSAUDIO_MIX_CAPS {}
unsafe impl ::windows::Abi for KSAUDIO_MIX_CAPS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSAUDIO_MIX_CAPS_0 {
pub Reset: i32,
pub Resolution: i32,
}
impl KSAUDIO_MIX_CAPS_0 {}
unsafe impl ::windows::Abi for KSAUDIO_MIX_CAPS_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_MIXCAP_TABLE {
pub InputChannels: u32,
pub OutputChannels: u32,
pub Capabilities: [KSAUDIO_MIX_CAPS; 1],
}
impl KSAUDIO_MIXCAP_TABLE {}
unsafe impl ::windows::Abi for KSAUDIO_MIXCAP_TABLE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_MIXLEVEL {
pub Mute: super::SystemServices::BOOL,
pub Level: i32,
}
impl KSAUDIO_MIXLEVEL {}
impl ::std::default::Default for KSAUDIO_MIXLEVEL {
fn default() -> Self {
Self {
Mute: ::std::default::Default::default(),
Level: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIO_MIXLEVEL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_MIXLEVEL")
.field("Mute", &format_args!("{:?}", self.Mute))
.field("Level", &format_args!("{:?}", self.Level))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_MIXLEVEL {
fn eq(&self, other: &Self) -> bool {
self.Mute == other.Mute && self.Level == other.Level
}
}
impl ::std::cmp::Eq for KSAUDIO_MIXLEVEL {}
unsafe impl ::windows::Abi for KSAUDIO_MIXLEVEL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct _KSAUDIO_PACKETSIZE_SIGNALPROCESSINGMODE_CONSTRAINT {
pub ProcessingMode: ::windows::Guid,
pub SamplesPerProcessingPacket: u32,
pub ProcessingPacketDurationInHns: u32,
}
impl _KSAUDIO_PACKETSIZE_SIGNALPROCESSINGMODE_CONSTRAINT {}
impl ::std::default::Default for _KSAUDIO_PACKETSIZE_SIGNALPROCESSINGMODE_CONSTRAINT {
fn default() -> Self {
Self {
ProcessingMode: ::std::default::Default::default(),
SamplesPerProcessingPacket: 0,
ProcessingPacketDurationInHns: 0,
}
}
}
impl ::std::fmt::Debug for _KSAUDIO_PACKETSIZE_SIGNALPROCESSINGMODE_CONSTRAINT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_KSAUDIO_PACKETSIZE_SIGNALPROCESSINGMODE_CONSTRAINT")
.field("ProcessingMode", &format_args!("{:?}", self.ProcessingMode))
.field(
"SamplesPerProcessingPacket",
&format_args!("{:?}", self.SamplesPerProcessingPacket),
)
.field(
"ProcessingPacketDurationInHns",
&format_args!("{:?}", self.ProcessingPacketDurationInHns),
)
.finish()
}
}
impl ::std::cmp::PartialEq for _KSAUDIO_PACKETSIZE_SIGNALPROCESSINGMODE_CONSTRAINT {
fn eq(&self, other: &Self) -> bool {
self.ProcessingMode == other.ProcessingMode
&& self.SamplesPerProcessingPacket == other.SamplesPerProcessingPacket
&& self.ProcessingPacketDurationInHns == other.ProcessingPacketDurationInHns
}
}
impl ::std::cmp::Eq for _KSAUDIO_PACKETSIZE_SIGNALPROCESSINGMODE_CONSTRAINT {}
unsafe impl ::windows::Abi for _KSAUDIO_PACKETSIZE_SIGNALPROCESSINGMODE_CONSTRAINT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_PACKETSIZE_CONSTRAINTS {
pub MinPacketPeriodInHns: u32,
pub PacketSizeFileAlignment: u32,
pub Reserved: u32,
pub NumProcessingModeConstraints: u32,
pub ProcessingModeConstraints:
[_KSAUDIO_PACKETSIZE_SIGNALPROCESSINGMODE_CONSTRAINT; 1],
}
impl KSAUDIO_PACKETSIZE_CONSTRAINTS {}
impl ::std::default::Default for KSAUDIO_PACKETSIZE_CONSTRAINTS {
fn default() -> Self {
Self {
MinPacketPeriodInHns: 0,
PacketSizeFileAlignment: 0,
Reserved: 0,
NumProcessingModeConstraints: 0,
ProcessingModeConstraints: [::std::default::Default::default(); 1],
}
}
}
impl ::std::fmt::Debug for KSAUDIO_PACKETSIZE_CONSTRAINTS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_PACKETSIZE_CONSTRAINTS")
.field(
"MinPacketPeriodInHns",
&format_args!("{:?}", self.MinPacketPeriodInHns),
)
.field(
"PacketSizeFileAlignment",
&format_args!("{:?}", self.PacketSizeFileAlignment),
)
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field(
"NumProcessingModeConstraints",
&format_args!("{:?}", self.NumProcessingModeConstraints),
)
.field(
"ProcessingModeConstraints",
&format_args!("{:?}", self.ProcessingModeConstraints),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_PACKETSIZE_CONSTRAINTS {
fn eq(&self, other: &Self) -> bool {
self.MinPacketPeriodInHns == other.MinPacketPeriodInHns
&& self.PacketSizeFileAlignment == other.PacketSizeFileAlignment
&& self.Reserved == other.Reserved
&& self.NumProcessingModeConstraints == other.NumProcessingModeConstraints
&& self.ProcessingModeConstraints == other.ProcessingModeConstraints
}
}
impl ::std::cmp::Eq for KSAUDIO_PACKETSIZE_CONSTRAINTS {}
unsafe impl ::windows::Abi for KSAUDIO_PACKETSIZE_CONSTRAINTS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_PACKETSIZE_CONSTRAINTS2 {
pub MinPacketPeriodInHns: u32,
pub PacketSizeFileAlignment: u32,
pub MaxPacketSizeInBytes: u32,
pub NumProcessingModeConstraints: u32,
pub ProcessingModeConstraints:
[_KSAUDIO_PACKETSIZE_SIGNALPROCESSINGMODE_CONSTRAINT; 1],
}
impl KSAUDIO_PACKETSIZE_CONSTRAINTS2 {}
impl ::std::default::Default for KSAUDIO_PACKETSIZE_CONSTRAINTS2 {
fn default() -> Self {
Self {
MinPacketPeriodInHns: 0,
PacketSizeFileAlignment: 0,
MaxPacketSizeInBytes: 0,
NumProcessingModeConstraints: 0,
ProcessingModeConstraints: [::std::default::Default::default(); 1],
}
}
}
impl ::std::fmt::Debug for KSAUDIO_PACKETSIZE_CONSTRAINTS2 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_PACKETSIZE_CONSTRAINTS2")
.field(
"MinPacketPeriodInHns",
&format_args!("{:?}", self.MinPacketPeriodInHns),
)
.field(
"PacketSizeFileAlignment",
&format_args!("{:?}", self.PacketSizeFileAlignment),
)
.field(
"MaxPacketSizeInBytes",
&format_args!("{:?}", self.MaxPacketSizeInBytes),
)
.field(
"NumProcessingModeConstraints",
&format_args!("{:?}", self.NumProcessingModeConstraints),
)
.field(
"ProcessingModeConstraints",
&format_args!("{:?}", self.ProcessingModeConstraints),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_PACKETSIZE_CONSTRAINTS2 {
fn eq(&self, other: &Self) -> bool {
self.MinPacketPeriodInHns == other.MinPacketPeriodInHns
&& self.PacketSizeFileAlignment == other.PacketSizeFileAlignment
&& self.MaxPacketSizeInBytes == other.MaxPacketSizeInBytes
&& self.NumProcessingModeConstraints == other.NumProcessingModeConstraints
&& self.ProcessingModeConstraints == other.ProcessingModeConstraints
}
}
impl ::std::cmp::Eq for KSAUDIO_PACKETSIZE_CONSTRAINTS2 {}
unsafe impl ::windows::Abi for KSAUDIO_PACKETSIZE_CONSTRAINTS2 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_POSITION {
pub PlayOffset: u64,
pub WriteOffset: u64,
}
impl KSAUDIO_POSITION {}
impl ::std::default::Default for KSAUDIO_POSITION {
fn default() -> Self {
Self {
PlayOffset: 0,
WriteOffset: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIO_POSITION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_POSITION")
.field("PlayOffset", &format_args!("{:?}", self.PlayOffset))
.field("WriteOffset", &format_args!("{:?}", self.WriteOffset))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_POSITION {
fn eq(&self, other: &Self) -> bool {
self.PlayOffset == other.PlayOffset && self.WriteOffset == other.WriteOffset
}
}
impl ::std::cmp::Eq for KSAUDIO_POSITION {}
unsafe impl ::windows::Abi for KSAUDIO_POSITION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_POSITIONEX {
pub TimerFrequency: i64,
pub TimeStamp1: i64,
pub Position: KSAUDIO_POSITION,
pub TimeStamp2: i64,
}
impl KSAUDIO_POSITIONEX {}
impl ::std::default::Default for KSAUDIO_POSITIONEX {
fn default() -> Self {
Self {
TimerFrequency: 0,
TimeStamp1: 0,
Position: ::std::default::Default::default(),
TimeStamp2: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIO_POSITIONEX {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_POSITIONEX")
.field("TimerFrequency", &format_args!("{:?}", self.TimerFrequency))
.field("TimeStamp1", &format_args!("{:?}", self.TimeStamp1))
.field("Position", &format_args!("{:?}", self.Position))
.field("TimeStamp2", &format_args!("{:?}", self.TimeStamp2))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_POSITIONEX {
fn eq(&self, other: &Self) -> bool {
self.TimerFrequency == other.TimerFrequency
&& self.TimeStamp1 == other.TimeStamp1
&& self.Position == other.Position
&& self.TimeStamp2 == other.TimeStamp2
}
}
impl ::std::cmp::Eq for KSAUDIO_POSITIONEX {}
unsafe impl ::windows::Abi for KSAUDIO_POSITIONEX {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSAUDIO_PRESENTATION_POSITION {
pub u64PositionInBlocks: u64,
pub u64QPCPosition: u64,
}
impl KSAUDIO_PRESENTATION_POSITION {}
impl ::std::default::Default for KSAUDIO_PRESENTATION_POSITION {
fn default() -> Self {
Self {
u64PositionInBlocks: 0,
u64QPCPosition: 0,
}
}
}
impl ::std::fmt::Debug for KSAUDIO_PRESENTATION_POSITION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSAUDIO_PRESENTATION_POSITION")
.field(
"u64PositionInBlocks",
&format_args!("{:?}", self.u64PositionInBlocks),
)
.field("u64QPCPosition", &format_args!("{:?}", self.u64QPCPosition))
.finish()
}
}
impl ::std::cmp::PartialEq for KSAUDIO_PRESENTATION_POSITION {
fn eq(&self, other: &Self) -> bool {
self.u64PositionInBlocks == other.u64PositionInBlocks
&& self.u64QPCPosition == other.u64QPCPosition
}
}
impl ::std::cmp::Eq for KSAUDIO_PRESENTATION_POSITION {}
unsafe impl ::windows::Abi for KSAUDIO_PRESENTATION_POSITION {
type Abi = Self;
}
pub const KSAUDIO_QUALITY_ADVANCED: u32 = 3u32;
pub const KSAUDIO_QUALITY_BASIC: u32 = 2u32;
pub const KSAUDIO_QUALITY_PC: u32 = 1u32;
pub const KSAUDIO_QUALITY_WORST: u32 = 0u32;
pub const KSAUDIO_SPEAKER_DIRECTOUT: u32 = 0u32;
pub const KSAUDIO_STEREO_SPEAKER_GEOMETRY_HEADPHONE: i32 = -1i32;
pub const KSAUDIO_STEREO_SPEAKER_GEOMETRY_MAX: u32 = 180u32;
pub const KSAUDIO_STEREO_SPEAKER_GEOMETRY_MIN: u32 = 5u32;
pub const KSAUDIO_STEREO_SPEAKER_GEOMETRY_NARROW: u32 = 10u32;
pub const KSAUDIO_STEREO_SPEAKER_GEOMETRY_WIDE: u32 = 20u32;
pub const KSCAMERAPROFILE_BalancedVideoAndPhoto: ::windows::Guid =
::windows::Guid::from_values(
1800581143,
17095,
18977,
[191, 227, 35, 240, 9, 20, 152, 135],
);
pub const KSCAMERAPROFILE_FLAGS_FACEDETECTION: u64 = 8u64;
pub const KSCAMERAPROFILE_FLAGS_PHOTOHDR: u64 = 4u64;
pub const KSCAMERAPROFILE_FLAGS_PREVIEW_RES_MUSTMATCH: u64 = 32u64;
pub const KSCAMERAPROFILE_FLAGS_VARIABLEPHOTOSEQUENCE: u64 = 16u64;
pub const KSCAMERAPROFILE_FLAGS_VIDEOHDR: u64 = 2u64;
pub const KSCAMERAPROFILE_FLAGS_VIDEOSTABLIZATION: u64 = 1u64;
pub const KSCAMERAPROFILE_FaceAuth_Mode: ::windows::Guid = ::windows::Guid::from_values(
2167806754,
28683,
17734,
[162, 212, 197, 46, 144, 123, 252, 39],
);
pub const KSCAMERAPROFILE_HDRWithWCGPhoto: ::windows::Guid =
::windows::Guid::from_values(
2616652287,
46421,
17957,
[179, 38, 164, 109, 239, 49, 143, 183],
);
pub const KSCAMERAPROFILE_HDRWithWCGVideo: ::windows::Guid =
::windows::Guid::from_values(
1260897078,
18724,
18825,
[185, 148, 253, 175, 29, 199, 205, 133],
);
pub const KSCAMERAPROFILE_HighFrameRate: ::windows::Guid = ::windows::Guid::from_values(
1450074387,
35893,
18663,
[184, 159, 210, 63, 220, 18, 25, 220],
);
pub const KSCAMERAPROFILE_HighQualityPhoto: ::windows::Guid =
::windows::Guid::from_values(
843319077,
38427,
19619,
[181, 178, 133, 78, 113, 157, 158, 27],
);
pub const KSCAMERAPROFILE_Legacy: ::windows::Guid = ::windows::Guid::from_values(
3028897153,
25271,
20204,
[135, 64, 128, 101, 140, 74, 157, 62],
);
pub const KSCAMERAPROFILE_PhotoSequence: ::windows::Guid = ::windows::Guid::from_values(
37330333,
20200,
18874,
[188, 7, 95, 241, 86, 83, 20, 19],
);
pub const KSCAMERAPROFILE_VariablePhotoSequence: ::windows::Guid =
::windows::Guid::from_values(
2683489110,
59226,
18865,
[169, 40, 153, 133, 213, 148, 111, 135],
);
pub const KSCAMERAPROFILE_VideoConferencing: ::windows::Guid =
::windows::Guid::from_values(
3309587080,
57791,
17815,
[178, 221, 158, 30, 173, 134, 75, 184],
);
pub const KSCAMERAPROFILE_VideoHDR8: ::windows::Guid = ::windows::Guid::from_values(
3572757740,
48639,
17172,
[177, 212, 0, 142, 40, 31, 116, 231],
);
pub const KSCAMERAPROFILE_VideoRecording: ::windows::Guid =
::windows::Guid::from_values(
2699368424,
36748,
20335,
[154, 87, 70, 252, 47, 100, 126, 192],
);
pub const KSCAMERA_EXTENDEDPROP_ADVANCEDPHOTO_AUTO: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_ADVANCEDPHOTO_FNF: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_ADVANCEDPHOTO_HDR: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_ADVANCEDPHOTO_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_ADVANCEDPHOTO_ULTRALOWLIGHT: u64 = 8u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_CAMERAOFFSET {
pub PitchAngle: i32,
pub YawAngle: i32,
pub Flag: u32,
pub Reserved: u32,
}
impl KSCAMERA_EXTENDEDPROP_CAMERAOFFSET {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_CAMERAOFFSET {
fn default() -> Self {
Self {
PitchAngle: 0,
YawAngle: 0,
Flag: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_CAMERAOFFSET {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_CAMERAOFFSET")
.field("PitchAngle", &format_args!("{:?}", self.PitchAngle))
.field("YawAngle", &format_args!("{:?}", self.YawAngle))
.field("Flag", &format_args!("{:?}", self.Flag))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_CAMERAOFFSET {
fn eq(&self, other: &Self) -> bool {
self.PitchAngle == other.PitchAngle
&& self.YawAngle == other.YawAngle
&& self.Flag == other.Flag
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_CAMERAOFFSET {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_CAMERAOFFSET {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_CAPS_ASYNCCONTROL: u64 = 9223372036854775808u64;
pub const KSCAMERA_EXTENDEDPROP_CAPS_CANCELLABLE: u64 = 4611686018427387904u64;
pub const KSCAMERA_EXTENDEDPROP_CAPS_MASK: u64 = 18374686479671623680u64;
pub const KSCAMERA_EXTENDEDPROP_CAPS_RESERVED: u64 = 18374686479671623680u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_EVCOMPENSATION {
pub Mode: u32,
pub Min: i32,
pub Max: i32,
pub Value: i32,
pub Reserved: u64,
}
impl KSCAMERA_EXTENDEDPROP_EVCOMPENSATION {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_EVCOMPENSATION {
fn default() -> Self {
Self {
Mode: 0,
Min: 0,
Max: 0,
Value: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_EVCOMPENSATION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_EVCOMPENSATION")
.field("Mode", &format_args!("{:?}", self.Mode))
.field("Min", &format_args!("{:?}", self.Min))
.field("Max", &format_args!("{:?}", self.Max))
.field("Value", &format_args!("{:?}", self.Value))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_EVCOMPENSATION {
fn eq(&self, other: &Self) -> bool {
self.Mode == other.Mode
&& self.Min == other.Min
&& self.Max == other.Max
&& self.Value == other.Value
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_EVCOMPENSATION {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_EVCOMPENSATION {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_EVCOMP_FULLSTEP: u64 = 16u64;
pub const KSCAMERA_EXTENDEDPROP_EVCOMP_HALFSTEP: u64 = 8u64;
pub const KSCAMERA_EXTENDEDPROP_EVCOMP_QUARTERSTEP: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_EVCOMP_THIRDSTEP: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_ALTERNATIVE_FRAME_ILLUMINATION: u64 =
2u64;
pub const KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_BACKGROUND_SUBTRACTION: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_DISABLED: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_BLINK: u64 = 8u64;
pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_ON: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_PHOTO: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_PREVIEW: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_SMILE: u64 = 16u64;
pub const KSCAMERA_EXTENDEDPROP_FACEDETECTION_VIDEO: u64 = 2u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_FIELDOFVIEW {
pub NormalizedFocalLengthX: u32,
pub NormalizedFocalLengthY: u32,
pub Flag: u32,
pub Reserved: u32,
}
impl KSCAMERA_EXTENDEDPROP_FIELDOFVIEW {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_FIELDOFVIEW {
fn default() -> Self {
Self {
NormalizedFocalLengthX: 0,
NormalizedFocalLengthY: 0,
Flag: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_FIELDOFVIEW {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_FIELDOFVIEW")
.field(
"NormalizedFocalLengthX",
&format_args!("{:?}", self.NormalizedFocalLengthX),
)
.field(
"NormalizedFocalLengthY",
&format_args!("{:?}", self.NormalizedFocalLengthY),
)
.field("Flag", &format_args!("{:?}", self.Flag))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_FIELDOFVIEW {
fn eq(&self, other: &Self) -> bool {
self.NormalizedFocalLengthX == other.NormalizedFocalLengthX
&& self.NormalizedFocalLengthY == other.NormalizedFocalLengthY
&& self.Flag == other.Flag
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_FIELDOFVIEW {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_FIELDOFVIEW {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_FILTERSCOPE: u32 = 4294967295u32;
pub const KSCAMERA_EXTENDEDPROP_FLAG_CANCELOPERATION: u64 = 9223372036854775808u64;
pub const KSCAMERA_EXTENDEDPROP_FLAG_MASK: u64 = 18374686479671623680u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_ASSISTANT_AUTO: u64 = 256u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_ASSISTANT_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_ASSISTANT_ON: u64 = 128u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_AUTO: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER: u64 = 8u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_MULTIFLASHSUPPORTED: u64 = 64u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_ON: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_REDEYEREDUCTION: u64 = 16u64;
pub const KSCAMERA_EXTENDEDPROP_FLASH_SINGLEFLASH: u64 = 32u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUSPRIORITY_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUSPRIORITY_ON: u64 = 1u64;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSCAMERA_EXTENDEDPROP_FOCUSSTATE(pub i32);
impl KSCAMERA_EXTENDEDPROP_FOCUSSTATE {
pub const KSCAMERA_EXTENDEDPROP_FOCUSSTATE_UNINITIALIZED: Self = Self(0i32);
pub const KSCAMERA_EXTENDEDPROP_FOCUSSTATE_LOST: Self = Self(1i32);
pub const KSCAMERA_EXTENDEDPROP_FOCUSSTATE_SEARCHING: Self = Self(2i32);
pub const KSCAMERA_EXTENDEDPROP_FOCUSSTATE_FOCUSED: Self = Self(3i32);
pub const KSCAMERA_EXTENDEDPROP_FOCUSSTATE_FAILED: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KSCAMERA_EXTENDEDPROP_FOCUSSTATE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_FOCUSSTATE {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_FOCUS_CONTINUOUS: u64 = 256u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_CONTINUOUSLOCK: u64 = 512u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_DISTANCE_HYPERFOCAL: u64 = 33554432u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_DISTANCE_INFINITY: u64 = 16777216u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_DISTANCE_NEAREST: u64 = 67108864u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_DRIVERFALLBACK_OFF: u64 = 2048u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_RANGE_FULLRANGE: u64 = 262144u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_RANGE_HYPERFOCAL: u64 = 1048576u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_RANGE_INFINITY: u64 = 524288u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_RANGE_MACRO: u64 = 65536u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_RANGE_NORMAL: u64 = 131072u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_REGIONBASED: u64 = 4096u64;
pub const KSCAMERA_EXTENDEDPROP_FOCUS_UNLOCK: u64 = 1024u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_HEADER {
pub Version: u32,
pub PinId: u32,
pub Size: u32,
pub Result: u32,
pub Flags: u64,
pub Capability: u64,
}
impl KSCAMERA_EXTENDEDPROP_HEADER {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_HEADER {
fn default() -> Self {
Self {
Version: 0,
PinId: 0,
Size: 0,
Result: 0,
Flags: 0,
Capability: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_HEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_HEADER")
.field("Version", &format_args!("{:?}", self.Version))
.field("PinId", &format_args!("{:?}", self.PinId))
.field("Size", &format_args!("{:?}", self.Size))
.field("Result", &format_args!("{:?}", self.Result))
.field("Flags", &format_args!("{:?}", self.Flags))
.field("Capability", &format_args!("{:?}", self.Capability))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_HEADER {
fn eq(&self, other: &Self) -> bool {
self.Version == other.Version
&& self.PinId == other.PinId
&& self.Size == other.Size
&& self.Result == other.Result
&& self.Flags == other.Flags
&& self.Capability == other.Capability
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_HEADER {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_HEADER {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_HISTOGRAM_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_HISTOGRAM_ON: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_IRTORCHMODE_ALTERNATING_FRAME_ILLUMINATION: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_IRTORCHMODE_ALWAYS_ON: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_IRTORCHMODE_OFF: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_100: u64 = 8u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_12800: u64 = 1024u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_1600: u64 = 128u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_200: u64 = 16u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_25600: u64 = 2048u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_3200: u64 = 256u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_400: u64 = 32u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_50: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_6400: u64 = 512u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_80: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_800: u64 = 64u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_AUTO: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_ISO_MANUAL: u64 = 36028797018963968u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_METADATAINFO {
pub BufferAlignment: i32,
pub MaxMetadataBufferSize: u32,
}
impl KSCAMERA_EXTENDEDPROP_METADATAINFO {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_METADATAINFO {
fn default() -> Self {
Self {
BufferAlignment: 0,
MaxMetadataBufferSize: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_METADATAINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_METADATAINFO")
.field(
"BufferAlignment",
&format_args!("{:?}", self.BufferAlignment),
)
.field(
"MaxMetadataBufferSize",
&format_args!("{:?}", self.MaxMetadataBufferSize),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_METADATAINFO {
fn eq(&self, other: &Self) -> bool {
self.BufferAlignment == other.BufferAlignment
&& self.MaxMetadataBufferSize == other.MaxMetadataBufferSize
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_METADATAINFO {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_METADATAINFO {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_METADATA_ALIGNMENTREQUIRED: u64 = 256u64;
pub const KSCAMERA_EXTENDEDPROP_METADATA_MEMORYTYPE_MASK: u64 = 255u64;
pub const KSCAMERA_EXTENDEDPROP_METADATA_SYSTEMMEMORY: u64 = 1u64;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSCAMERA_EXTENDEDPROP_MetadataAlignment(pub i32);
impl KSCAMERA_EXTENDEDPROP_MetadataAlignment {
pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_16: Self = Self(4i32);
pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_32: Self = Self(5i32);
pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_64: Self = Self(6i32);
pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_128: Self = Self(7i32);
pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_256: Self = Self(8i32);
pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_512: Self = Self(9i32);
pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_1024: Self = Self(10i32);
pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_2048: Self = Self(11i32);
pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_4096: Self = Self(12i32);
pub const KSCAMERA_EXTENDEDPROP_MetadataAlignment_8192: Self = Self(13i32);
}
impl ::std::convert::From<i32> for KSCAMERA_EXTENDEDPROP_MetadataAlignment {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_MetadataAlignment {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_OIS_AUTO: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_OIS_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_OIS_ON: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_DEFAULT: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_LATENCY: u64 = 8u64;
pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_PHOTO: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_POWER: u64 = 16u64;
pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_QUALITY: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_OPTIMIZATION_VIDEO: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_PHOTOCONFIRMATION_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_PHOTOCONFIRMATION_ON: u64 = 1u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_PHOTOMODE {
pub RequestedHistoryFrames: u32,
pub MaxHistoryFrames: u32,
pub SubMode: u32,
pub Reserved: u32,
}
impl KSCAMERA_EXTENDEDPROP_PHOTOMODE {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_PHOTOMODE {
fn default() -> Self {
Self {
RequestedHistoryFrames: 0,
MaxHistoryFrames: 0,
SubMode: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_PHOTOMODE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_PHOTOMODE")
.field(
"RequestedHistoryFrames",
&format_args!("{:?}", self.RequestedHistoryFrames),
)
.field(
"MaxHistoryFrames",
&format_args!("{:?}", self.MaxHistoryFrames),
)
.field("SubMode", &format_args!("{:?}", self.SubMode))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_PHOTOMODE {
fn eq(&self, other: &Self) -> bool {
self.RequestedHistoryFrames == other.RequestedHistoryFrames
&& self.MaxHistoryFrames == other.MaxHistoryFrames
&& self.SubMode == other.SubMode
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_PHOTOMODE {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_PHOTOMODE {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_PHOTOMODE_NORMAL: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_PHOTOMODE_SEQUENCE: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_PHOTOMODE_SEQUENCE_SUB_NONE: u32 = 0u32;
pub const KSCAMERA_EXTENDEDPROP_PHOTOMODE_SEQUENCE_SUB_VARIABLE: u32 = 1u32;
pub const KSCAMERA_EXTENDEDPROP_PHOTOTHUMBNAIL_16X: u64 = 8u64;
pub const KSCAMERA_EXTENDEDPROP_PHOTOTHUMBNAIL_2X: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_PHOTOTHUMBNAIL_4X: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_PHOTOTHUMBNAIL_8X: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_PHOTOTHUMBNAIL_DISABLE: u64 = 0u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_PROFILE {
pub ProfileId: ::windows::Guid,
pub Index: u32,
pub Reserved: u32,
}
impl KSCAMERA_EXTENDEDPROP_PROFILE {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_PROFILE {
fn default() -> Self {
Self {
ProfileId: ::std::default::Default::default(),
Index: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_PROFILE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_PROFILE")
.field("ProfileId", &format_args!("{:?}", self.ProfileId))
.field("Index", &format_args!("{:?}", self.Index))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_PROFILE {
fn eq(&self, other: &Self) -> bool {
self.ProfileId == other.ProfileId
&& self.Index == other.Index
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_PROFILE {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_PROFILE {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_DYNAMIC: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_ON: u64 = 1u64;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSCAMERA_EXTENDEDPROP_ROITYPE(pub i32);
impl KSCAMERA_EXTENDEDPROP_ROITYPE {
pub const KSCAMERA_EXTENDEDPROP_ROITYPE_UNKNOWN: Self = Self(0i32);
pub const KSCAMERA_EXTENDEDPROP_ROITYPE_FACE: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSCAMERA_EXTENDEDPROP_ROITYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_ROITYPE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS {
pub ControlId: u32,
pub MaxNumberOfROIs: u32,
pub Capability: u64,
}
impl KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS {
fn default() -> Self {
Self {
ControlId: 0,
MaxNumberOfROIs: 0,
Capability: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS")
.field("ControlId", &format_args!("{:?}", self.ControlId))
.field(
"MaxNumberOfROIs",
&format_args!("{:?}", self.MaxNumberOfROIs),
)
.field("Capability", &format_args!("{:?}", self.Capability))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS {
fn eq(&self, other: &Self) -> bool {
self.ControlId == other.ControlId
&& self.MaxNumberOfROIs == other.MaxNumberOfROIs
&& self.Capability == other.Capability
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER {
pub Size: u32,
pub ConfigCapCount: u32,
pub Reserved: u64,
}
impl KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER {
fn default() -> Self {
Self {
Size: 0,
ConfigCapCount: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER")
.field("Size", &format_args!("{:?}", self.Size))
.field("ConfigCapCount", &format_args!("{:?}", self.ConfigCapCount))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.ConfigCapCount == other.ConfigCapCount
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_ROI_CONFIGCAPSHEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_ROI_INFO {
pub Region: super::DisplayDevices::RECT,
pub Flags: u64,
pub Weight: i32,
pub RegionOfInterestType: i32,
}
impl KSCAMERA_EXTENDEDPROP_ROI_INFO {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_ROI_INFO {
fn default() -> Self {
Self {
Region: ::std::default::Default::default(),
Flags: 0,
Weight: 0,
RegionOfInterestType: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_ROI_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_ROI_INFO")
.field("Region", &format_args!("{:?}", self.Region))
.field("Flags", &format_args!("{:?}", self.Flags))
.field("Weight", &format_args!("{:?}", self.Weight))
.field(
"RegionOfInterestType",
&format_args!("{:?}", self.RegionOfInterestType),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_ROI_INFO {
fn eq(&self, other: &Self) -> bool {
self.Region == other.Region
&& self.Flags == other.Flags
&& self.Weight == other.Weight
&& self.RegionOfInterestType == other.RegionOfInterestType
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_ROI_INFO {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_ROI_INFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE {
pub ROIInfo: KSCAMERA_EXTENDEDPROP_ROI_INFO,
pub Reserved: u64,
}
impl KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE {
fn default() -> Self {
Self {
ROIInfo: ::std::default::Default::default(),
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE")
.field("ROIInfo", &format_args!("{:?}", self.ROIInfo))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE {
fn eq(&self, other: &Self) -> bool {
self.ROIInfo == other.ROIInfo && self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_ROI_EXPOSURE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_ROI_FOCUS {
pub ROIInfo: KSCAMERA_EXTENDEDPROP_ROI_INFO,
pub Reserved: u64,
}
impl KSCAMERA_EXTENDEDPROP_ROI_FOCUS {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_ROI_FOCUS {
fn default() -> Self {
Self {
ROIInfo: ::std::default::Default::default(),
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_ROI_FOCUS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_ROI_FOCUS")
.field("ROIInfo", &format_args!("{:?}", self.ROIInfo))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_ROI_FOCUS {
fn eq(&self, other: &Self) -> bool {
self.ROIInfo == other.ROIInfo && self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_ROI_FOCUS {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_ROI_FOCUS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL {
pub ControlId: u32,
pub ROICount: u32,
pub Result: u32,
pub Reserved: u32,
}
impl KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL {
fn default() -> Self {
Self {
ControlId: 0,
ROICount: 0,
Result: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL")
.field("ControlId", &format_args!("{:?}", self.ControlId))
.field("ROICount", &format_args!("{:?}", self.ROICount))
.field("Result", &format_args!("{:?}", self.Result))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL {
fn eq(&self, other: &Self) -> bool {
self.ControlId == other.ControlId
&& self.ROICount == other.ROICount
&& self.Result == other.Result
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER {
pub Size: u32,
pub ControlCount: u32,
pub Reserved: u64,
}
impl KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER {
fn default() -> Self {
Self {
Size: 0,
ControlCount: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER")
.field("Size", &format_args!("{:?}", self.Size))
.field("ControlCount", &format_args!("{:?}", self.ControlCount))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.ControlCount == other.ControlCount
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_ROI_ISPCONTROLHEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE {
pub ROIInfo: KSCAMERA_EXTENDEDPROP_ROI_INFO,
pub Reserved: u64,
}
impl KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE {}
impl ::std::default::Default for KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE {
fn default() -> Self {
Self {
ROIInfo: ::std::default::Default::default(),
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE")
.field("ROIInfo", &format_args!("{:?}", self.ROIInfo))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE {
fn eq(&self, other: &Self) -> bool {
self.ROIInfo == other.ROIInfo && self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_ROI_WHITEBALANCE {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_AUTO: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_BACKLIT: u64 = 1024u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_BEACH: u64 = 32u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_CANDLELIGHT: u64 = 128u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_LANDSCAPE: u64 = 256u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_MACRO: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_MANUAL: u64 = 36028797018963968u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_NIGHT: u64 = 16u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_NIGHTPORTRAIT: u64 = 512u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_PORTRAIT: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_SNOW: u64 = 8u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_SPORT: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_SCENEMODE_SUNSET: u64 = 64u64;
pub const KSCAMERA_EXTENDEDPROP_SECUREMODE_DISABLED: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_SECUREMODE_ENABLED: u64 = 2u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_VALUE {
pub Value: KSCAMERA_EXTENDEDPROP_VALUE_0,
}
impl KSCAMERA_EXTENDEDPROP_VALUE {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_VALUE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSCAMERA_EXTENDEDPROP_VALUE_0 {
pub dbl: f64,
pub ull: u64,
pub ul: u32,
pub ratio: u64,
pub l: i32,
pub ll: i64,
}
impl KSCAMERA_EXTENDEDPROP_VALUE_0 {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_VALUE_0 {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_VFR_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_VFR_ON: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOHDR_AUTO: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOHDR_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOHDR_ON: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOPROCFLAG_AUTO: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOPROCFLAG_LOCK: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOPROCFLAG_MANUAL: u64 = 2u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING {
pub Mode: u32,
pub Min: i32,
pub Max: i32,
pub Step: i32,
pub VideoProc: KSCAMERA_EXTENDEDPROP_VALUE,
pub Reserved: u64,
}
impl KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING {}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_AUTO: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_ON: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOTEMPORALDENOISING_AUTO: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOTEMPORALDENOISING_OFF: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOTEMPORALDENOISING_ON: u64 = 4u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOTORCH_OFF: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON_ADJUSTABLEPOWER: u64 = 2u64;
pub const KSCAMERA_EXTENDEDPROP_WARMSTART_MODE_DISABLED: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_WARMSTART_MODE_ENABLED: u64 = 1u64;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSCAMERA_EXTENDEDPROP_WBPRESET(pub i32);
impl KSCAMERA_EXTENDEDPROP_WBPRESET {
pub const KSCAMERA_EXTENDEDPROP_WBPRESET_CLOUDY: Self = Self(1i32);
pub const KSCAMERA_EXTENDEDPROP_WBPRESET_DAYLIGHT: Self = Self(2i32);
pub const KSCAMERA_EXTENDEDPROP_WBPRESET_FLASH: Self = Self(3i32);
pub const KSCAMERA_EXTENDEDPROP_WBPRESET_FLUORESCENT: Self = Self(4i32);
pub const KSCAMERA_EXTENDEDPROP_WBPRESET_TUNGSTEN: Self = Self(5i32);
pub const KSCAMERA_EXTENDEDPROP_WBPRESET_CANDLELIGHT: Self = Self(6i32);
}
impl ::std::convert::From<i32> for KSCAMERA_EXTENDEDPROP_WBPRESET {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_WBPRESET {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSCAMERA_EXTENDEDPROP_WHITEBALANCE_MODE(pub i32);
impl KSCAMERA_EXTENDEDPROP_WHITEBALANCE_MODE {
pub const KSCAMERA_EXTENDEDPROP_WHITEBALANCE_TEMPERATURE: Self = Self(1i32);
pub const KSCAMERA_EXTENDEDPROP_WHITEBALANCE_PRESET: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSCAMERA_EXTENDEDPROP_WHITEBALANCE_MODE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSCAMERA_EXTENDEDPROP_WHITEBALANCE_MODE {
type Abi = Self;
}
pub const KSCAMERA_EXTENDEDPROP_ZOOM_DEFAULT: u64 = 0u64;
pub const KSCAMERA_EXTENDEDPROP_ZOOM_DIRECT: u64 = 1u64;
pub const KSCAMERA_EXTENDEDPROP_ZOOM_SMOOTH: u64 = 2u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_MAXVIDEOFPS_FORPHOTORES {
pub PhotoResWidth: u32,
pub PhotoResHeight: u32,
pub PreviewFPSNum: u32,
pub PreviewFPSDenom: u32,
pub CaptureFPSNum: u32,
pub CaptureFPSDenom: u32,
}
impl KSCAMERA_MAXVIDEOFPS_FORPHOTORES {}
impl ::std::default::Default for KSCAMERA_MAXVIDEOFPS_FORPHOTORES {
fn default() -> Self {
Self {
PhotoResWidth: 0,
PhotoResHeight: 0,
PreviewFPSNum: 0,
PreviewFPSDenom: 0,
CaptureFPSNum: 0,
CaptureFPSDenom: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_MAXVIDEOFPS_FORPHOTORES {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_MAXVIDEOFPS_FORPHOTORES")
.field("PhotoResWidth", &format_args!("{:?}", self.PhotoResWidth))
.field("PhotoResHeight", &format_args!("{:?}", self.PhotoResHeight))
.field("PreviewFPSNum", &format_args!("{:?}", self.PreviewFPSNum))
.field(
"PreviewFPSDenom",
&format_args!("{:?}", self.PreviewFPSDenom),
)
.field("CaptureFPSNum", &format_args!("{:?}", self.CaptureFPSNum))
.field(
"CaptureFPSDenom",
&format_args!("{:?}", self.CaptureFPSDenom),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_MAXVIDEOFPS_FORPHOTORES {
fn eq(&self, other: &Self) -> bool {
self.PhotoResWidth == other.PhotoResWidth
&& self.PhotoResHeight == other.PhotoResHeight
&& self.PreviewFPSNum == other.PreviewFPSNum
&& self.PreviewFPSDenom == other.PreviewFPSDenom
&& self.CaptureFPSNum == other.CaptureFPSNum
&& self.CaptureFPSDenom == other.CaptureFPSDenom
}
}
impl ::std::cmp::Eq for KSCAMERA_MAXVIDEOFPS_FORPHOTORES {}
unsafe impl ::windows::Abi for KSCAMERA_MAXVIDEOFPS_FORPHOTORES {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_METADATA_ITEMHEADER {
pub MetadataId: u32,
pub Size: u32,
}
impl KSCAMERA_METADATA_ITEMHEADER {}
impl ::std::default::Default for KSCAMERA_METADATA_ITEMHEADER {
fn default() -> Self {
Self {
MetadataId: 0,
Size: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_METADATA_ITEMHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_METADATA_ITEMHEADER")
.field("MetadataId", &format_args!("{:?}", self.MetadataId))
.field("Size", &format_args!("{:?}", self.Size))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_METADATA_ITEMHEADER {
fn eq(&self, other: &Self) -> bool {
self.MetadataId == other.MetadataId && self.Size == other.Size
}
}
impl ::std::cmp::Eq for KSCAMERA_METADATA_ITEMHEADER {}
unsafe impl ::windows::Abi for KSCAMERA_METADATA_ITEMHEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_METADATA_CAPTURESTATS {
pub Header: KSCAMERA_METADATA_ITEMHEADER,
pub Flags: u32,
pub Reserved: u32,
pub ExposureTime: u64,
pub ExposureCompensationFlags: u64,
pub ExposureCompensationValue: i32,
pub IsoSpeed: u32,
pub FocusState: u32,
pub LensPosition: u32,
pub WhiteBalance: u32,
pub Flash: u32,
pub FlashPower: u32,
pub ZoomFactor: u32,
pub SceneMode: u64,
pub SensorFramerate: u64,
}
impl KSCAMERA_METADATA_CAPTURESTATS {}
impl ::std::default::Default for KSCAMERA_METADATA_CAPTURESTATS {
fn default() -> Self {
Self {
Header: ::std::default::Default::default(),
Flags: 0,
Reserved: 0,
ExposureTime: 0,
ExposureCompensationFlags: 0,
ExposureCompensationValue: 0,
IsoSpeed: 0,
FocusState: 0,
LensPosition: 0,
WhiteBalance: 0,
Flash: 0,
FlashPower: 0,
ZoomFactor: 0,
SceneMode: 0,
SensorFramerate: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_METADATA_CAPTURESTATS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_METADATA_CAPTURESTATS")
.field("Header", &format_args!("{:?}", self.Header))
.field("Flags", &format_args!("{:?}", self.Flags))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field("ExposureTime", &format_args!("{:?}", self.ExposureTime))
.field(
"ExposureCompensationFlags",
&format_args!("{:?}", self.ExposureCompensationFlags),
)
.field(
"ExposureCompensationValue",
&format_args!("{:?}", self.ExposureCompensationValue),
)
.field("IsoSpeed", &format_args!("{:?}", self.IsoSpeed))
.field("FocusState", &format_args!("{:?}", self.FocusState))
.field("LensPosition", &format_args!("{:?}", self.LensPosition))
.field("WhiteBalance", &format_args!("{:?}", self.WhiteBalance))
.field("Flash", &format_args!("{:?}", self.Flash))
.field("FlashPower", &format_args!("{:?}", self.FlashPower))
.field("ZoomFactor", &format_args!("{:?}", self.ZoomFactor))
.field("SceneMode", &format_args!("{:?}", self.SceneMode))
.field(
"SensorFramerate",
&format_args!("{:?}", self.SensorFramerate),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_METADATA_CAPTURESTATS {
fn eq(&self, other: &Self) -> bool {
self.Header == other.Header
&& self.Flags == other.Flags
&& self.Reserved == other.Reserved
&& self.ExposureTime == other.ExposureTime
&& self.ExposureCompensationFlags == other.ExposureCompensationFlags
&& self.ExposureCompensationValue == other.ExposureCompensationValue
&& self.IsoSpeed == other.IsoSpeed
&& self.FocusState == other.FocusState
&& self.LensPosition == other.LensPosition
&& self.WhiteBalance == other.WhiteBalance
&& self.Flash == other.Flash
&& self.FlashPower == other.FlashPower
&& self.ZoomFactor == other.ZoomFactor
&& self.SceneMode == other.SceneMode
&& self.SensorFramerate == other.SensorFramerate
}
}
impl ::std::cmp::Eq for KSCAMERA_METADATA_CAPTURESTATS {}
unsafe impl ::windows::Abi for KSCAMERA_METADATA_CAPTURESTATS {
type Abi = Self;
}
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_EXPOSURECOMPENSATION: u32 = 2u32;
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_EXPOSURETIME: u32 = 1u32;
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_FLASH: u32 = 64u32;
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_FLASHPOWER: u32 = 128u32;
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_FOCUSSTATE: u32 = 8u32;
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_ISOSPEED: u32 = 4u32;
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_LENSPOSITION: u32 = 16u32;
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_SCENEMODE: u32 = 512u32;
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_SENSORFRAMERATE: u32 = 1024u32;
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_WHITEBALANCE: u32 = 32u32;
pub const KSCAMERA_METADATA_CAPTURESTATS_FLAG_ZOOMFACTOR: u32 = 256u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_METADATA_FRAMEILLUMINATION {
pub Header: KSCAMERA_METADATA_ITEMHEADER,
pub Flags: u32,
pub Reserved: u32,
}
impl KSCAMERA_METADATA_FRAMEILLUMINATION {}
impl ::std::default::Default for KSCAMERA_METADATA_FRAMEILLUMINATION {
fn default() -> Self {
Self {
Header: ::std::default::Default::default(),
Flags: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_METADATA_FRAMEILLUMINATION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_METADATA_FRAMEILLUMINATION")
.field("Header", &format_args!("{:?}", self.Header))
.field("Flags", &format_args!("{:?}", self.Flags))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_METADATA_FRAMEILLUMINATION {
fn eq(&self, other: &Self) -> bool {
self.Header == other.Header
&& self.Flags == other.Flags
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_METADATA_FRAMEILLUMINATION {}
unsafe impl ::windows::Abi for KSCAMERA_METADATA_FRAMEILLUMINATION {
type Abi = Self;
}
pub const KSCAMERA_METADATA_FRAMEILLUMINATION_FLAG_ON: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_METADATA_PHOTOCONFIRMATION {
pub Header: KSCAMERA_METADATA_ITEMHEADER,
pub PhotoConfirmationIndex: u32,
pub Reserved: u32,
}
impl KSCAMERA_METADATA_PHOTOCONFIRMATION {}
impl ::std::default::Default for KSCAMERA_METADATA_PHOTOCONFIRMATION {
fn default() -> Self {
Self {
Header: ::std::default::Default::default(),
PhotoConfirmationIndex: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_METADATA_PHOTOCONFIRMATION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_METADATA_PHOTOCONFIRMATION")
.field("Header", &format_args!("{:?}", self.Header))
.field(
"PhotoConfirmationIndex",
&format_args!("{:?}", self.PhotoConfirmationIndex),
)
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_METADATA_PHOTOCONFIRMATION {
fn eq(&self, other: &Self) -> bool {
self.Header == other.Header
&& self.PhotoConfirmationIndex == other.PhotoConfirmationIndex
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_METADATA_PHOTOCONFIRMATION {}
unsafe impl ::windows::Abi for KSCAMERA_METADATA_PHOTOCONFIRMATION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSCAMERA_MetadataId(pub i32);
impl KSCAMERA_MetadataId {
pub const MetadataId_Standard_Start: Self = Self(1i32);
pub const MetadataId_PhotoConfirmation: Self = Self(1i32);
pub const MetadataId_UsbVideoHeader: Self = Self(2i32);
pub const MetadataId_CaptureStats: Self = Self(3i32);
pub const MetadataId_CameraExtrinsics: Self = Self(4i32);
pub const MetadataId_CameraIntrinsics: Self = Self(5i32);
pub const MetadataId_FrameIllumination: Self = Self(6i32);
pub const MetadataId_Standard_End: Self = Self(6i32);
pub const MetadataId_Custom_Start: Self = Self(-2147483648i32);
}
impl ::std::convert::From<i32> for KSCAMERA_MetadataId {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSCAMERA_MetadataId {
type Abi = Self;
}
pub const KSCAMERA_PERFRAMESETTING_AUTO: u64 = 4294967296u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PERFRAMESETTING_CAP_HEADER {
pub Size: u32,
pub ItemCount: u32,
pub Flags: u64,
}
impl KSCAMERA_PERFRAMESETTING_CAP_HEADER {}
impl ::std::default::Default for KSCAMERA_PERFRAMESETTING_CAP_HEADER {
fn default() -> Self {
Self {
Size: 0,
ItemCount: 0,
Flags: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PERFRAMESETTING_CAP_HEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_PERFRAMESETTING_CAP_HEADER")
.field("Size", &format_args!("{:?}", self.Size))
.field("ItemCount", &format_args!("{:?}", self.ItemCount))
.field("Flags", &format_args!("{:?}", self.Flags))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PERFRAMESETTING_CAP_HEADER {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.ItemCount == other.ItemCount
&& self.Flags == other.Flags
}
}
impl ::std::cmp::Eq for KSCAMERA_PERFRAMESETTING_CAP_HEADER {}
unsafe impl ::windows::Abi for KSCAMERA_PERFRAMESETTING_CAP_HEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER {
pub Size: u32,
pub Type: u32,
pub Flags: u64,
}
impl KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER {}
impl ::std::default::Default for KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER {
fn default() -> Self {
Self {
Size: 0,
Type: 0,
Flags: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER")
.field("Size", &format_args!("{:?}", self.Size))
.field("Type", &format_args!("{:?}", self.Type))
.field("Flags", &format_args!("{:?}", self.Flags))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size && self.Type == other.Type && self.Flags == other.Flags
}
}
impl ::std::cmp::Eq for KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER {}
unsafe impl ::windows::Abi for KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM {
pub Size: u32,
pub Reserved: u32,
pub Id: ::windows::Guid,
}
impl KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM {}
impl ::std::default::Default for KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM {
fn default() -> Self {
Self {
Size: 0,
Reserved: 0,
Id: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM")
.field("Size", &format_args!("{:?}", self.Size))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field("Id", &format_args!("{:?}", self.Id))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.Reserved == other.Reserved
&& self.Id == other.Id
}
}
impl ::std::cmp::Eq for KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM {}
unsafe impl ::windows::Abi for KSCAMERA_PERFRAMESETTING_CUSTOM_ITEM {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PERFRAMESETTING_FRAME_HEADER {
pub Size: u32,
pub Id: u32,
pub ItemCount: u32,
pub Reserved: u32,
}
impl KSCAMERA_PERFRAMESETTING_FRAME_HEADER {}
impl ::std::default::Default for KSCAMERA_PERFRAMESETTING_FRAME_HEADER {
fn default() -> Self {
Self {
Size: 0,
Id: 0,
ItemCount: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PERFRAMESETTING_FRAME_HEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_PERFRAMESETTING_FRAME_HEADER")
.field("Size", &format_args!("{:?}", self.Size))
.field("Id", &format_args!("{:?}", self.Id))
.field("ItemCount", &format_args!("{:?}", self.ItemCount))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PERFRAMESETTING_FRAME_HEADER {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.Id == other.Id
&& self.ItemCount == other.ItemCount
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_PERFRAMESETTING_FRAME_HEADER {}
unsafe impl ::windows::Abi for KSCAMERA_PERFRAMESETTING_FRAME_HEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PERFRAMESETTING_HEADER {
pub Size: u32,
pub FrameCount: u32,
pub Id: ::windows::Guid,
pub Flags: u64,
pub LoopCount: u32,
pub Reserved: u32,
}
impl KSCAMERA_PERFRAMESETTING_HEADER {}
impl ::std::default::Default for KSCAMERA_PERFRAMESETTING_HEADER {
fn default() -> Self {
Self {
Size: 0,
FrameCount: 0,
Id: ::std::default::Default::default(),
Flags: 0,
LoopCount: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PERFRAMESETTING_HEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_PERFRAMESETTING_HEADER")
.field("Size", &format_args!("{:?}", self.Size))
.field("FrameCount", &format_args!("{:?}", self.FrameCount))
.field("Id", &format_args!("{:?}", self.Id))
.field("Flags", &format_args!("{:?}", self.Flags))
.field("LoopCount", &format_args!("{:?}", self.LoopCount))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PERFRAMESETTING_HEADER {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.FrameCount == other.FrameCount
&& self.Id == other.Id
&& self.Flags == other.Flags
&& self.LoopCount == other.LoopCount
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSCAMERA_PERFRAMESETTING_HEADER {}
unsafe impl ::windows::Abi for KSCAMERA_PERFRAMESETTING_HEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PERFRAMESETTING_ITEM_HEADER {
pub Size: u32,
pub Type: u32,
pub Flags: u64,
}
impl KSCAMERA_PERFRAMESETTING_ITEM_HEADER {}
impl ::std::default::Default for KSCAMERA_PERFRAMESETTING_ITEM_HEADER {
fn default() -> Self {
Self {
Size: 0,
Type: 0,
Flags: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PERFRAMESETTING_ITEM_HEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_PERFRAMESETTING_ITEM_HEADER")
.field("Size", &format_args!("{:?}", self.Size))
.field("Type", &format_args!("{:?}", self.Type))
.field("Flags", &format_args!("{:?}", self.Flags))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PERFRAMESETTING_ITEM_HEADER {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size && self.Type == other.Type && self.Flags == other.Flags
}
}
impl ::std::cmp::Eq for KSCAMERA_PERFRAMESETTING_ITEM_HEADER {}
unsafe impl ::windows::Abi for KSCAMERA_PERFRAMESETTING_ITEM_HEADER {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSCAMERA_PERFRAMESETTING_ITEM_TYPE(pub i32);
impl KSCAMERA_PERFRAMESETTING_ITEM_TYPE {
pub const KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME: Self = Self(1i32);
pub const KSCAMERA_PERFRAMESETTING_ITEM_FLASH: Self = Self(2i32);
pub const KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION: Self = Self(3i32);
pub const KSCAMERA_PERFRAMESETTING_ITEM_ISO: Self = Self(4i32);
pub const KSCAMERA_PERFRAMESETTING_ITEM_FOCUS: Self = Self(5i32);
pub const KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION: Self = Self(6i32);
pub const KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM: Self = Self(7i32);
}
impl ::std::convert::From<i32> for KSCAMERA_PERFRAMESETTING_ITEM_TYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSCAMERA_PERFRAMESETTING_ITEM_TYPE {
type Abi = Self;
}
pub const KSCAMERA_PERFRAMESETTING_MANUAL: u64 = 8589934592u64;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PROFILE_MEDIAINFO {
pub Resolution: KSCAMERA_PROFILE_MEDIAINFO_1,
pub MaxFrameRate: KSCAMERA_PROFILE_MEDIAINFO_0,
pub Flags: u64,
pub Data0: u32,
pub Data1: u32,
pub Data2: u32,
pub Data3: u32,
}
impl KSCAMERA_PROFILE_MEDIAINFO {}
impl ::std::default::Default for KSCAMERA_PROFILE_MEDIAINFO {
fn default() -> Self {
Self {
Resolution: ::std::default::Default::default(),
MaxFrameRate: ::std::default::Default::default(),
Flags: 0,
Data0: 0,
Data1: 0,
Data2: 0,
Data3: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PROFILE_MEDIAINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_PROFILE_MEDIAINFO")
.field("Resolution", &format_args!("{:?}", self.Resolution))
.field("MaxFrameRate", &format_args!("{:?}", self.MaxFrameRate))
.field("Flags", &format_args!("{:?}", self.Flags))
.field("Data0", &format_args!("{:?}", self.Data0))
.field("Data1", &format_args!("{:?}", self.Data1))
.field("Data2", &format_args!("{:?}", self.Data2))
.field("Data3", &format_args!("{:?}", self.Data3))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PROFILE_MEDIAINFO {
fn eq(&self, other: &Self) -> bool {
self.Resolution == other.Resolution
&& self.MaxFrameRate == other.MaxFrameRate
&& self.Flags == other.Flags
&& self.Data0 == other.Data0
&& self.Data1 == other.Data1
&& self.Data2 == other.Data2
&& self.Data3 == other.Data3
}
}
impl ::std::cmp::Eq for KSCAMERA_PROFILE_MEDIAINFO {}
unsafe impl ::windows::Abi for KSCAMERA_PROFILE_MEDIAINFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PROFILE_MEDIAINFO_0 {
pub Numerator: u32,
pub Denominator: u32,
}
impl KSCAMERA_PROFILE_MEDIAINFO_0 {}
impl ::std::default::Default for KSCAMERA_PROFILE_MEDIAINFO_0 {
fn default() -> Self {
Self {
Numerator: 0,
Denominator: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PROFILE_MEDIAINFO_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_MaxFrameRate_e__Struct")
.field("Numerator", &format_args!("{:?}", self.Numerator))
.field("Denominator", &format_args!("{:?}", self.Denominator))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PROFILE_MEDIAINFO_0 {
fn eq(&self, other: &Self) -> bool {
self.Numerator == other.Numerator && self.Denominator == other.Denominator
}
}
impl ::std::cmp::Eq for KSCAMERA_PROFILE_MEDIAINFO_0 {}
unsafe impl ::windows::Abi for KSCAMERA_PROFILE_MEDIAINFO_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PROFILE_MEDIAINFO_1 {
pub X: u32,
pub Y: u32,
}
impl KSCAMERA_PROFILE_MEDIAINFO_1 {}
impl ::std::default::Default for KSCAMERA_PROFILE_MEDIAINFO_1 {
fn default() -> Self {
Self { X: 0, Y: 0 }
}
}
impl ::std::fmt::Debug for KSCAMERA_PROFILE_MEDIAINFO_1 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Resolution_e__Struct")
.field("X", &format_args!("{:?}", self.X))
.field("Y", &format_args!("{:?}", self.Y))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PROFILE_MEDIAINFO_1 {
fn eq(&self, other: &Self) -> bool {
self.X == other.X && self.Y == other.Y
}
}
impl ::std::cmp::Eq for KSCAMERA_PROFILE_MEDIAINFO_1 {}
unsafe impl ::windows::Abi for KSCAMERA_PROFILE_MEDIAINFO_1 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PROFILE_PININFO {
pub PinCategory: ::windows::Guid,
pub Anonymous: KSCAMERA_PROFILE_PININFO_0,
pub MediaInfoCount: u32,
pub MediaInfos: *mut KSCAMERA_PROFILE_MEDIAINFO,
}
impl KSCAMERA_PROFILE_PININFO {}
unsafe impl ::windows::Abi for KSCAMERA_PROFILE_PININFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSCAMERA_PROFILE_PININFO_0 {
pub Anonymous: KSCAMERA_PROFILE_PININFO_0_0,
pub Reserved: u32,
}
impl KSCAMERA_PROFILE_PININFO_0 {}
unsafe impl ::windows::Abi for KSCAMERA_PROFILE_PININFO_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PROFILE_PININFO_0_0 {
pub PinIndex: u16,
pub ProfileSensorType: u16,
}
impl KSCAMERA_PROFILE_PININFO_0_0 {}
impl ::std::default::Default for KSCAMERA_PROFILE_PININFO_0_0 {
fn default() -> Self {
Self {
PinIndex: 0,
ProfileSensorType: 0,
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PROFILE_PININFO_0_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous_e__Struct")
.field("PinIndex", &format_args!("{:?}", self.PinIndex))
.field(
"ProfileSensorType",
&format_args!("{:?}", self.ProfileSensorType),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PROFILE_PININFO_0_0 {
fn eq(&self, other: &Self) -> bool {
self.PinIndex == other.PinIndex
&& self.ProfileSensorType == other.ProfileSensorType
}
}
impl ::std::cmp::Eq for KSCAMERA_PROFILE_PININFO_0_0 {}
unsafe impl ::windows::Abi for KSCAMERA_PROFILE_PININFO_0_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PROFILE_INFO {
pub ProfileId: ::windows::Guid,
pub Index: u32,
pub PinCount: u32,
pub Pins: *mut KSCAMERA_PROFILE_PININFO,
}
impl KSCAMERA_PROFILE_INFO {}
impl ::std::default::Default for KSCAMERA_PROFILE_INFO {
fn default() -> Self {
Self {
ProfileId: ::std::default::Default::default(),
Index: 0,
PinCount: 0,
Pins: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PROFILE_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_PROFILE_INFO")
.field("ProfileId", &format_args!("{:?}", self.ProfileId))
.field("Index", &format_args!("{:?}", self.Index))
.field("PinCount", &format_args!("{:?}", self.PinCount))
.field("Pins", &format_args!("{:?}", self.Pins))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PROFILE_INFO {
fn eq(&self, other: &Self) -> bool {
self.ProfileId == other.ProfileId
&& self.Index == other.Index
&& self.PinCount == other.PinCount
&& self.Pins == other.Pins
}
}
impl ::std::cmp::Eq for KSCAMERA_PROFILE_INFO {}
unsafe impl ::windows::Abi for KSCAMERA_PROFILE_INFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCAMERA_PROFILE_CONCURRENCYINFO {
pub ReferenceGuid: ::windows::Guid,
pub Reserved: u32,
pub ProfileCount: u32,
pub Profiles: *mut KSCAMERA_PROFILE_INFO,
}
impl KSCAMERA_PROFILE_CONCURRENCYINFO {}
impl ::std::default::Default for KSCAMERA_PROFILE_CONCURRENCYINFO {
fn default() -> Self {
Self {
ReferenceGuid: ::std::default::Default::default(),
Reserved: 0,
ProfileCount: 0,
Profiles: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for KSCAMERA_PROFILE_CONCURRENCYINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCAMERA_PROFILE_CONCURRENCYINFO")
.field("ReferenceGuid", &format_args!("{:?}", self.ReferenceGuid))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field("ProfileCount", &format_args!("{:?}", self.ProfileCount))
.field("Profiles", &format_args!("{:?}", self.Profiles))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCAMERA_PROFILE_CONCURRENCYINFO {
fn eq(&self, other: &Self) -> bool {
self.ReferenceGuid == other.ReferenceGuid
&& self.Reserved == other.Reserved
&& self.ProfileCount == other.ProfileCount
&& self.Profiles == other.Profiles
}
}
impl ::std::cmp::Eq for KSCAMERA_PROFILE_CONCURRENCYINFO {}
unsafe impl ::windows::Abi for KSCAMERA_PROFILE_CONCURRENCYINFO {
type Abi = Self;
}
pub const KSCATEGORY_ACOUSTIC_ECHO_CANCEL: ::windows::Guid =
::windows::Guid::from_values(
3214294400,
50521,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSCATEGORY_AUDIO: ::windows::Guid = ::windows::Guid::from_values(
1771351300,
37871,
4560,
[163, 204, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_BRIDGE: ::windows::Guid = ::windows::Guid::from_values(
140181248,
25294,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSCATEGORY_CAPTURE: ::windows::Guid = ::windows::Guid::from_values(
1709733693,
36694,
4560,
[163, 185, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_CLOCK: ::windows::Guid = ::windows::Guid::from_values(
1394025600,
18321,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSCATEGORY_COMMUNICATIONSTRANSFORM: ::windows::Guid =
::windows::Guid::from_values(
3474840108,
38723,
4560,
[163, 238, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_CROSSBAR: ::windows::Guid = ::windows::Guid::from_values(
2811865089,
42093,
4560,
[161, 140, 0, 160, 36, 1, 220, 212],
);
pub const KSCATEGORY_DATACOMPRESSOR: ::windows::Guid = ::windows::Guid::from_values(
512018688,
32368,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSCATEGORY_DATADECOMPRESSOR: ::windows::Guid = ::windows::Guid::from_values(
656518688,
32368,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSCATEGORY_DATATRANSFORM: ::windows::Guid = ::windows::Guid::from_values(
783318688,
32368,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSCATEGORY_ENCODER: ::windows::Guid = ::windows::Guid::from_values(
426286070,
50052,
18685,
[173, 81, 144, 229, 140, 121, 247, 11],
);
pub const KSCATEGORY_ESCALANTE_PLATFORM_DRIVER: ::windows::Guid =
::windows::Guid::from_values(
1962127016,
38760,
4561,
[142, 7, 0, 160, 201, 94, 194, 46],
);
pub const KSCATEGORY_FILESYSTEM: ::windows::Guid = ::windows::Guid::from_values(
1980755294,
37719,
4560,
[163, 204, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_INTERFACETRANSFORM: ::windows::Guid = ::windows::Guid::from_values(
3474840109,
38723,
4560,
[163, 238, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_MEDIUMTRANSFORM: ::windows::Guid = ::windows::Guid::from_values(
3474840110,
38723,
4560,
[163, 238, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR: ::windows::Guid =
::windows::Guid::from_values(
2198488306,
41773,
18283,
[190, 151, 66, 132, 86, 115, 179, 90],
);
pub const KSCATEGORY_MIXER: ::windows::Guid = ::windows::Guid::from_values(
2910886912,
31624,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSCATEGORY_MULTIPLEXER: ::windows::Guid = ::windows::Guid::from_values(
2052973011,
417,
17708,
[180, 129, 79, 162, 185, 98, 113, 232],
);
pub const KSCATEGORY_NETWORK: ::windows::Guid = ::windows::Guid::from_values(
1741278268,
27076,
4562,
[135, 89, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_NETWORK_CAMERA: ::windows::Guid = ::windows::Guid::from_values(
3089335890,
46336,
16875,
[180, 243, 66, 52, 247, 245, 174, 153],
);
pub const KSCATEGORY_PROXY: ::windows::Guid = ::windows::Guid::from_values(
2548804298,
38333,
4560,
[163, 234, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_QUALITY: ::windows::Guid = ::windows::Guid::from_values(
2548804299,
38333,
4560,
[163, 234, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_REALTIME: ::windows::Guid = ::windows::Guid::from_values(
3943784444,
4296,
18788,
[131, 29, 109, 203, 2, 230, 242, 63],
);
pub const KSCATEGORY_RENDER: ::windows::Guid = ::windows::Guid::from_values(
1709733694,
36694,
4560,
[163, 185, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_SENSOR_CAMERA: ::windows::Guid = ::windows::Guid::from_values(
619008727,
25891,
18423,
[166, 71, 211, 70, 91, 241, 245, 202],
);
pub const KSCATEGORY_SENSOR_GROUP: ::windows::Guid = ::windows::Guid::from_values(
1721528852,
2696,
17169,
[167, 243, 78, 121, 130, 14, 51, 189],
);
pub const KSCATEGORY_SPLITTER: ::windows::Guid = ::windows::Guid::from_values(
172118688,
32368,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSCATEGORY_TEXT: ::windows::Guid = ::windows::Guid::from_values(
1771351302,
37871,
4560,
[163, 204, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_TOPOLOGY: ::windows::Guid = ::windows::Guid::from_values(
3718597184,
7756,
4561,
[160, 80, 64, 87, 5, 193, 0, 0],
);
pub const KSCATEGORY_TVAUDIO: ::windows::Guid = ::windows::Guid::from_values(
2811865090,
42093,
4560,
[161, 140, 0, 160, 36, 1, 220, 212],
);
pub const KSCATEGORY_TVTUNER: ::windows::Guid = ::windows::Guid::from_values(
2811865088,
42093,
4560,
[161, 140, 0, 160, 36, 1, 220, 212],
);
pub const KSCATEGORY_VBICODEC: ::windows::Guid = ::windows::Guid::from_values(
131782240,
8945,
4561,
[169, 244, 0, 192, 79, 187, 222, 143],
);
pub const KSCATEGORY_VIDEO: ::windows::Guid = ::windows::Guid::from_values(
1771351301,
37871,
4560,
[163, 204, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_VIDEO_CAMERA: ::windows::Guid = ::windows::Guid::from_values(
3845273463,
63862,
20315,
[155, 85, 185, 70, 153, 196, 110, 68],
);
pub const KSCATEGORY_VIRTUAL: ::windows::Guid = ::windows::Guid::from_values(
889449156,
7974,
4561,
[138, 176, 0, 160, 201, 34, 49, 150],
);
pub const KSCATEGORY_VPMUX: ::windows::Guid = ::windows::Guid::from_values(
2811865091,
42093,
4560,
[161, 140, 0, 160, 36, 1, 220, 212],
);
pub const KSCATEGORY_WDMAUD_USE_PIN_NAME: ::windows::Guid =
::windows::Guid::from_values(
1201994272,
41553,
4561,
[160, 80, 0, 0, 248, 0, 71, 136],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCLOCK_CREATE {
pub CreateFlags: u32,
}
impl KSCLOCK_CREATE {}
impl ::std::default::Default for KSCLOCK_CREATE {
fn default() -> Self {
Self { CreateFlags: 0 }
}
}
impl ::std::fmt::Debug for KSCLOCK_CREATE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCLOCK_CREATE")
.field("CreateFlags", &format_args!("{:?}", self.CreateFlags))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCLOCK_CREATE {
fn eq(&self, other: &Self) -> bool {
self.CreateFlags == other.CreateFlags
}
}
impl ::std::cmp::Eq for KSCLOCK_CREATE {}
unsafe impl ::windows::Abi for KSCLOCK_CREATE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCOMPONENTID {
pub Manufacturer: ::windows::Guid,
pub Product: ::windows::Guid,
pub Component: ::windows::Guid,
pub Name: ::windows::Guid,
pub Version: u32,
pub Revision: u32,
}
impl KSCOMPONENTID {}
impl ::std::default::Default for KSCOMPONENTID {
fn default() -> Self {
Self {
Manufacturer: ::std::default::Default::default(),
Product: ::std::default::Default::default(),
Component: ::std::default::Default::default(),
Name: ::std::default::Default::default(),
Version: 0,
Revision: 0,
}
}
}
impl ::std::fmt::Debug for KSCOMPONENTID {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCOMPONENTID")
.field("Manufacturer", &format_args!("{:?}", self.Manufacturer))
.field("Product", &format_args!("{:?}", self.Product))
.field("Component", &format_args!("{:?}", self.Component))
.field("Name", &format_args!("{:?}", self.Name))
.field("Version", &format_args!("{:?}", self.Version))
.field("Revision", &format_args!("{:?}", self.Revision))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCOMPONENTID {
fn eq(&self, other: &Self) -> bool {
self.Manufacturer == other.Manufacturer
&& self.Product == other.Product
&& self.Component == other.Component
&& self.Name == other.Name
&& self.Version == other.Version
&& self.Revision == other.Revision
}
}
impl ::std::cmp::Eq for KSCOMPONENTID {}
unsafe impl ::windows::Abi for KSCOMPONENTID {
type Abi = Self;
}
pub const KSCOMPONENTID_USBAUDIO: ::windows::Guid = ::windows::Guid::from_values(
2400351728,
9961,
16996,
[186, 77, 57, 255, 240, 29, 148, 170],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSCORRELATED_TIME {
pub Time: i64,
pub SystemTime: i64,
}
impl KSCORRELATED_TIME {}
impl ::std::default::Default for KSCORRELATED_TIME {
fn default() -> Self {
Self {
Time: 0,
SystemTime: 0,
}
}
}
impl ::std::fmt::Debug for KSCORRELATED_TIME {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSCORRELATED_TIME")
.field("Time", &format_args!("{:?}", self.Time))
.field("SystemTime", &format_args!("{:?}", self.SystemTime))
.finish()
}
}
impl ::std::cmp::PartialEq for KSCORRELATED_TIME {
fn eq(&self, other: &Self) -> bool {
self.Time == other.Time && self.SystemTime == other.SystemTime
}
}
impl ::std::cmp::Eq for KSCORRELATED_TIME {}
unsafe impl ::windows::Abi for KSCORRELATED_TIME {
type Abi = Self;
}
pub const KSCREATE_ITEM_FREEONSTOP: u32 = 8u32;
pub const KSCREATE_ITEM_NOPARAMETERS: u32 = 4u32;
pub const KSCREATE_ITEM_SECURITYCHANGED: u32 = 1u32;
pub const KSCREATE_ITEM_WILDCARD: u32 = 2u32;
pub const KSCameraProfileSensorType_Custom: u32 = 128u32;
pub const KSCameraProfileSensorType_Depth: u32 = 4u32;
pub const KSCameraProfileSensorType_ImageSegmentation: u32 = 16u32;
pub const KSCameraProfileSensorType_Infrared: u32 = 2u32;
pub const KSCameraProfileSensorType_PoseTracking: u32 = 8u32;
pub const KSCameraProfileSensorType_RGB: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSDATAFORMAT {
pub Anonymous: KSDATAFORMAT_0,
pub Alignment: i64,
}
impl KSDATAFORMAT {}
unsafe impl ::windows::Abi for KSDATAFORMAT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDATAFORMAT_0 {
pub FormatSize: u32,
pub Flags: u32,
pub SampleSize: u32,
pub Reserved: u32,
pub MajorFormat: ::windows::Guid,
pub SubFormat: ::windows::Guid,
pub Specifier: ::windows::Guid,
}
impl KSDATAFORMAT_0 {}
impl ::std::default::Default for KSDATAFORMAT_0 {
fn default() -> Self {
Self {
FormatSize: 0,
Flags: 0,
SampleSize: 0,
Reserved: 0,
MajorFormat: ::std::default::Default::default(),
SubFormat: ::std::default::Default::default(),
Specifier: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSDATAFORMAT_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous_e__Struct")
.field("FormatSize", &format_args!("{:?}", self.FormatSize))
.field("Flags", &format_args!("{:?}", self.Flags))
.field("SampleSize", &format_args!("{:?}", self.SampleSize))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field("MajorFormat", &format_args!("{:?}", self.MajorFormat))
.field("SubFormat", &format_args!("{:?}", self.SubFormat))
.field("Specifier", &format_args!("{:?}", self.Specifier))
.finish()
}
}
impl ::std::cmp::PartialEq for KSDATAFORMAT_0 {
fn eq(&self, other: &Self) -> bool {
self.FormatSize == other.FormatSize
&& self.Flags == other.Flags
&& self.SampleSize == other.SampleSize
&& self.Reserved == other.Reserved
&& self.MajorFormat == other.MajorFormat
&& self.SubFormat == other.SubFormat
&& self.Specifier == other.Specifier
}
}
impl ::std::cmp::Eq for KSDATAFORMAT_0 {}
unsafe impl ::windows::Abi for KSDATAFORMAT_0 {
type Abi = Self;
}
pub const KSDATAFORMAT_BIT_ATTRIBUTES: u32 = 1u32;
pub const KSDATAFORMAT_BIT_TEMPORAL_COMPRESSION: u32 = 0u32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDSOUND_BUFFERDESC {
pub Flags: u32,
pub Control: u32,
pub WaveFormatEx: super::Multimedia::WAVEFORMATEX,
}
impl KSDSOUND_BUFFERDESC {}
unsafe impl ::windows::Abi for KSDSOUND_BUFFERDESC {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDATAFORMAT_DSOUND {
pub DataFormat: KSDATAFORMAT,
pub BufferDesc: KSDSOUND_BUFFERDESC,
}
impl KSDATAFORMAT_DSOUND {}
unsafe impl ::windows::Abi for KSDATAFORMAT_DSOUND {
type Abi = Self;
}
pub const KSDATAFORMAT_SPECIFIER_AC3_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
3765272804,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SPECIFIER_ANALOGVIDEO: ::windows::Guid =
::windows::Guid::from_values(
75685344,
30743,
4559,
[138, 3, 0, 170, 0, 110, 203, 101],
);
pub const KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
911358773,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
911358770,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO: ::windows::Guid =
::windows::Guid::from_values(
911358769,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
911358772,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO: ::windows::Guid =
::windows::Guid::from_values(
911358771,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_SPECIFIER_DSOUND: ::windows::Guid = ::windows::Guid::from_values(
1367707810,
41348,
4560,
[133, 34, 0, 192, 79, 217, 186, 243],
);
pub const KSDATAFORMAT_SPECIFIER_FILEHANDLE: ::windows::Guid =
::windows::Guid::from_values(
1709733692,
36694,
4560,
[163, 185, 0, 160, 201, 34, 49, 150],
);
pub const KSDATAFORMAT_SPECIFIER_FILENAME: ::windows::Guid =
::windows::Guid::from_values(
2860088128,
59764,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSDATAFORMAT_SPECIFIER_H264_VIDEO: ::windows::Guid =
::windows::Guid::from_values(
538426885,
26153,
16968,
[170, 237, 126, 26, 71, 188, 155, 156],
);
pub const KSDATAFORMAT_SPECIFIER_IMAGE: ::windows::Guid = ::windows::Guid::from_values(
1764729721,
54248,
18001,
[181, 180, 11, 148, 176, 19, 238, 175],
);
pub const KSDATAFORMAT_SPECIFIER_JPEG_IMAGE: ::windows::Guid =
::windows::Guid::from_values(
1764729721,
54248,
18001,
[181, 180, 11, 148, 176, 19, 238, 175],
);
pub const KSDATAFORMAT_SPECIFIER_LPCM_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
3765272806,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO: ::windows::Guid =
::windows::Guid::from_values(
89694082,
50006,
4558,
[191, 1, 0, 170, 0, 85, 89, 90],
);
pub const KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
3765272805,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO: ::windows::Guid =
::windows::Guid::from_values(
3765272803,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SPECIFIER_NONE: ::windows::Guid = ::windows::Guid::from_values(
258217942,
49944,
4560,
[164, 63, 0, 160, 201, 34, 49, 150],
);
pub const KSDATAFORMAT_SPECIFIER_VBI: ::windows::Guid = ::windows::Guid::from_values(
4146755296,
60170,
4560,
[172, 228, 0, 0, 192, 204, 22, 186],
);
pub const KSDATAFORMAT_SPECIFIER_VC_ID: ::windows::Guid = ::windows::Guid::from_values(
2912473476,
43715,
4560,
[164, 28, 0, 160, 201, 34, 49, 150],
);
pub const KSDATAFORMAT_SPECIFIER_VIDEOINFO: ::windows::Guid =
::windows::Guid::from_values(
89694080,
50006,
4558,
[191, 1, 0, 170, 0, 85, 89, 90],
);
pub const KSDATAFORMAT_SPECIFIER_VIDEOINFO2: ::windows::Guid =
::windows::Guid::from_values(
4146755232,
60170,
4560,
[172, 228, 0, 0, 192, 204, 22, 186],
);
pub const KSDATAFORMAT_SPECIFIER_WAVEFORMATEX: ::windows::Guid =
::windows::Guid::from_values(
89694081,
50006,
4558,
[191, 1, 0, 170, 0, 85, 89, 90],
);
pub const KSDATAFORMAT_SUBTYPE_AC3_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
3765272620,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SUBTYPE_ADPCM: ::windows::Guid =
::windows::Guid::from_values(2, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_ALAW: ::windows::Guid =
::windows::Guid::from_values(6, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_ANALOG: ::windows::Guid = ::windows::Guid::from_values(
1840918928,
26557,
4559,
[160, 247, 0, 32, 175, 209, 86, 228],
);
pub const KSDATAFORMAT_SUBTYPE_CC: ::windows::Guid = ::windows::Guid::from_values(
857820353,
287,
4562,
[180, 177, 0, 160, 209, 2, 207, 190],
);
pub const KSDATAFORMAT_SUBTYPE_D16: ::windows::Guid =
::windows::Guid::from_values(80, 4, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_DRM: ::windows::Guid =
::windows::Guid::from_values(9, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_DSS_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
2695843714,
57699,
4560,
[186, 217, 0, 96, 151, 68, 17, 26],
);
pub const KSDATAFORMAT_SUBTYPE_DSS_VIDEO: ::windows::Guid =
::windows::Guid::from_values(
2695843713,
57699,
4560,
[186, 217, 0, 96, 151, 68, 17, 26],
);
pub const KSDATAFORMAT_SUBTYPE_DTS_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
3765272627,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_AAC: ::windows::Guid =
::windows::Guid::from_values(6, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_ATRAC: ::windows::Guid =
::windows::Guid::from_values(8, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL: ::windows::Guid =
::windows::Guid::from_values(146, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS: ::windows::Guid =
::windows::Guid::from_values(10, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS_ATMOS: ::windows::Guid =
::windows::Guid::from_values(266, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MAT20: ::windows::Guid =
::windows::Guid::from_values(268, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MAT21: ::windows::Guid =
::windows::Guid::from_values(780, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MLP: ::windows::Guid =
::windows::Guid::from_values(12, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_DST: ::windows::Guid =
::windows::Guid::from_values(13, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_DTS: ::windows::Guid =
::windows::Guid::from_values(8, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_DTS_HD: ::windows::Guid =
::windows::Guid::from_values(11, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_MPEG1: ::windows::Guid =
::windows::Guid::from_values(3, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_MPEG2: ::windows::Guid =
::windows::Guid::from_values(4, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_MPEG3: ::windows::Guid =
::windows::Guid::from_values(5, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_ONE_BIT_AUDIO: ::windows::Guid =
::windows::Guid::from_values(9, 3306, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IEC61937_WMA_PRO: ::windows::Guid =
::windows::Guid::from_values(356, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_IMAGE_RGB32: ::windows::Guid =
::windows::Guid::from_values(22, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_JPEG: ::windows::Guid = ::windows::Guid::from_values(
434415018,
22114,
20421,
[160, 192, 23, 88, 2, 142, 16, 87],
);
pub const KSDATAFORMAT_SUBTYPE_L16: ::windows::Guid =
::windows::Guid::from_values(81, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_L16_CUSTOM: ::windows::Guid =
::windows::Guid::from_values(81, 32768, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_L16_IR: ::windows::Guid =
::windows::Guid::from_values(81, 2, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_L8: ::windows::Guid =
::windows::Guid::from_values(50, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_L8_CUSTOM: ::windows::Guid =
::windows::Guid::from_values(50, 32768, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_L8_IR: ::windows::Guid =
::windows::Guid::from_values(50, 2, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_LPCM_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
3765272626,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SUBTYPE_Line21_BytePair: ::windows::Guid =
::windows::Guid::from_values(
1854753314,
12556,
4560,
[183, 154, 0, 170, 0, 55, 103, 167],
);
pub const KSDATAFORMAT_SUBTYPE_Line21_GOPPacket: ::windows::Guid =
::windows::Guid::from_values(
1854753315,
12556,
4560,
[183, 154, 0, 170, 0, 55, 103, 167],
);
pub const KSDATAFORMAT_SUBTYPE_MIDI: ::windows::Guid = ::windows::Guid::from_values(
489039712,
59735,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSDATAFORMAT_SUBTYPE_MIDI_BUS: ::windows::Guid = ::windows::Guid::from_values(
748773280,
27902,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSDATAFORMAT_SUBTYPE_MJPG_CUSTOM: ::windows::Guid =
::windows::Guid::from_values(
1196444237,
32768,
16,
[128, 0, 0, 170, 0, 56, 155, 113],
);
pub const KSDATAFORMAT_SUBTYPE_MJPG_DEPTH: ::windows::Guid =
::windows::Guid::from_values(1196444237, 4, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_MJPG_IR: ::windows::Guid =
::windows::Guid::from_values(1196444237, 2, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_MPEG: ::windows::Guid =
::windows::Guid::from_values(80, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_MPEG1Packet: ::windows::Guid =
::windows::Guid::from_values(
3828804480,
21071,
4558,
[159, 83, 0, 32, 175, 11, 167, 112],
);
pub const KSDATAFORMAT_SUBTYPE_MPEG1Payload: ::windows::Guid =
::windows::Guid::from_values(
3828804481,
21071,
4558,
[159, 83, 0, 32, 175, 11, 167, 112],
);
pub const KSDATAFORMAT_SUBTYPE_MPEG1Video: ::windows::Guid =
::windows::Guid::from_values(
3828804486,
21071,
4558,
[159, 83, 0, 32, 175, 11, 167, 112],
);
pub const KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
3765272619,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO: ::windows::Guid =
::windows::Guid::from_values(
3765272614,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SUBTYPE_MPEGLAYER3: ::windows::Guid =
::windows::Guid::from_values(85, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_MPEG_HEAAC: ::windows::Guid =
::windows::Guid::from_values(5648, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_MULAW: ::windows::Guid =
::windows::Guid::from_values(7, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_NABTS: ::windows::Guid = ::windows::Guid::from_values(
4146755298,
60170,
4560,
[172, 228, 0, 0, 192, 204, 22, 186],
);
pub const KSDATAFORMAT_SUBTYPE_NABTS_FEC: ::windows::Guid =
::windows::Guid::from_values(
3881286817,
14764,
4561,
[169, 245, 0, 192, 79, 187, 222, 143],
);
pub const KSDATAFORMAT_SUBTYPE_NONE: ::windows::Guid = ::windows::Guid::from_values(
3828804494,
21071,
4558,
[159, 83, 0, 32, 175, 11, 167, 112],
);
pub const KSDATAFORMAT_SUBTYPE_OVERLAY: ::windows::Guid = ::windows::Guid::from_values(
3828804479,
21071,
4558,
[159, 83, 0, 32, 175, 11, 167, 112],
);
pub const KSDATAFORMAT_SUBTYPE_RAW8: ::windows::Guid = ::windows::Guid::from_values(
3391150496,
15934,
4561,
[155, 249, 0, 192, 79, 187, 222, 191],
);
pub const KSDATAFORMAT_SUBTYPE_RIFF: ::windows::Guid = ::windows::Guid::from_values(
1234557678,
40678,
4560,
[164, 14, 0, 160, 201, 34, 49, 150],
);
pub const KSDATAFORMAT_SUBTYPE_RIFFMIDI: ::windows::Guid = ::windows::Guid::from_values(
1234557680,
40678,
4560,
[164, 14, 0, 160, 201, 34, 49, 150],
);
pub const KSDATAFORMAT_SUBTYPE_RIFFWAVE: ::windows::Guid = ::windows::Guid::from_values(
3828804491,
21071,
4558,
[159, 83, 0, 32, 175, 11, 167, 112],
);
pub const KSDATAFORMAT_SUBTYPE_SDDS_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
3765272628,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
911358757,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
911358754,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO: ::windows::Guid =
::windows::Guid::from_values(
911358753,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
911358756,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO: ::windows::Guid =
::windows::Guid::from_values(
911358755,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_SUBTYPE_SUBPICTURE: ::windows::Guid =
::windows::Guid::from_values(
3765272621,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_SUBTYPE_TELETEXT: ::windows::Guid = ::windows::Guid::from_values(
4146755299,
60170,
4560,
[172, 228, 0, 0, 192, 204, 22, 186],
);
pub const KSDATAFORMAT_SUBTYPE_VPVBI: ::windows::Guid = ::windows::Guid::from_values(
1520134721,
6690,
4561,
[186, 217, 0, 96, 151, 68, 17, 26],
);
pub const KSDATAFORMAT_SUBTYPE_VPVideo: ::windows::Guid = ::windows::Guid::from_values(
1520134720,
6690,
4561,
[186, 217, 0, 96, 151, 68, 17, 26],
);
pub const KSDATAFORMAT_SUBTYPE_WMAUDIO2: ::windows::Guid =
::windows::Guid::from_values(353, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_WMAUDIO3: ::windows::Guid =
::windows::Guid::from_values(354, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_SUBTYPE_WMAUDIO_LOSSLESS: ::windows::Guid =
::windows::Guid::from_values(355, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_TYPE_ANALOGAUDIO: ::windows::Guid = ::windows::Guid::from_values(
75685601,
30743,
4559,
[138, 3, 0, 170, 0, 110, 203, 101],
);
pub const KSDATAFORMAT_TYPE_ANALOGVIDEO: ::windows::Guid = ::windows::Guid::from_values(
75685345,
30743,
4559,
[138, 3, 0, 170, 0, 110, 203, 101],
);
pub const KSDATAFORMAT_TYPE_AUDIO: ::windows::Guid =
::windows::Guid::from_values(1935963489, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_TYPE_AUXLine21Data: ::windows::Guid =
::windows::Guid::from_values(
1728768640,
14978,
4560,
[183, 155, 0, 170, 0, 55, 103, 167],
);
pub const KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK: ::windows::Guid =
::windows::Guid::from_values(
3976958314,
1101,
4561,
[170, 120, 0, 192, 79, 195, 29, 96],
);
pub const KSDATAFORMAT_TYPE_IMAGE: ::windows::Guid = ::windows::Guid::from_values(
1914145827,
58459,
4565,
[188, 42, 0, 176, 208, 243, 244, 171],
);
pub const KSDATAFORMAT_TYPE_MIDI: ::windows::Guid =
::windows::Guid::from_values(1935960429, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_TYPE_MPEG2_PES: ::windows::Guid = ::windows::Guid::from_values(
3765272608,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_TYPE_MPEG2_PROGRAM: ::windows::Guid =
::windows::Guid::from_values(
3765272610,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_TYPE_MPEG2_TRANSPORT: ::windows::Guid =
::windows::Guid::from_values(
3765272611,
56134,
4559,
[180, 209, 0, 128, 95, 108, 187, 234],
);
pub const KSDATAFORMAT_TYPE_MUSIC: ::windows::Guid = ::windows::Guid::from_values(
3878015840,
25292,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSDATAFORMAT_TYPE_NABTS: ::windows::Guid = ::windows::Guid::from_values(
3881286816,
14764,
4561,
[169, 245, 0, 192, 79, 187, 222, 143],
);
pub const KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM: ::windows::Guid =
::windows::Guid::from_values(
911358737,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER: ::windows::Guid =
::windows::Guid::from_values(
911358739,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_TYPE_STANDARD_PES_PACKET: ::windows::Guid =
::windows::Guid::from_values(
911358738,
36581,
4561,
[140, 163, 0, 96, 176, 87, 102, 74],
);
pub const KSDATAFORMAT_TYPE_STREAM: ::windows::Guid = ::windows::Guid::from_values(
3828804483,
21071,
4558,
[159, 83, 0, 32, 175, 11, 167, 112],
);
pub const KSDATAFORMAT_TYPE_TEXT: ::windows::Guid =
::windows::Guid::from_values(1937012852, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
pub const KSDATAFORMAT_TYPE_VBI: ::windows::Guid = ::windows::Guid::from_values(
4146755297,
60170,
4560,
[172, 228, 0, 0, 192, 204, 22, 186],
);
pub const KSDATAFORMAT_TYPE_VIDEO: ::windows::Guid =
::windows::Guid::from_values(1935960438, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDATAFORMAT_WAVEFORMATEX {
pub DataFormat: KSDATAFORMAT,
pub WaveFormatEx: super::Multimedia::WAVEFORMATEX,
}
impl KSDATAFORMAT_WAVEFORMATEX {}
unsafe impl ::windows::Abi for KSDATAFORMAT_WAVEFORMATEX {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDATAFORMAT_WAVEFORMATEXTENSIBLE {
pub DataFormat: KSDATAFORMAT,
pub WaveFormatExt: super::Multimedia::WAVEFORMATEXTENSIBLE,
}
impl KSDATAFORMAT_WAVEFORMATEXTENSIBLE {}
unsafe impl ::windows::Abi for KSDATAFORMAT_WAVEFORMATEXTENSIBLE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDATARANGE_AUDIO {
pub DataRange: KSDATAFORMAT,
pub MaximumChannels: u32,
pub MinimumBitsPerSample: u32,
pub MaximumBitsPerSample: u32,
pub MinimumSampleFrequency: u32,
pub MaximumSampleFrequency: u32,
}
impl KSDATARANGE_AUDIO {}
unsafe impl ::windows::Abi for KSDATARANGE_AUDIO {
type Abi = Self;
}
pub const KSDATARANGE_BIT_ATTRIBUTES: u32 = 1u32;
pub const KSDATARANGE_BIT_REQUIRED_ATTRIBUTES: u32 = 2u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDATARANGE_MUSIC {
pub DataRange: KSDATAFORMAT,
pub Technology: ::windows::Guid,
pub Channels: u32,
pub Notes: u32,
pub ChannelMask: u32,
}
impl KSDATARANGE_MUSIC {}
unsafe impl ::windows::Abi for KSDATARANGE_MUSIC {
type Abi = Self;
}
pub const KSDEGRADESETID_Standard: ::windows::Guid = ::windows::Guid::from_values(
2673230208,
28748,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSDEGRADE_STANDARD(pub i32);
impl KSDEGRADE_STANDARD {
pub const KSDEGRADE_STANDARD_SAMPLE: Self = Self(0i32);
pub const KSDEGRADE_STANDARD_QUALITY: Self = Self(1i32);
pub const KSDEGRADE_STANDARD_COMPUTATION: Self = Self(2i32);
pub const KSDEGRADE_STANDARD_SKIP: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KSDEGRADE_STANDARD {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSDEGRADE_STANDARD {
type Abi = Self;
}
pub const KSDEVICE_DESCRIPTOR_VERSION: u32 = 256u32;
pub const KSDEVICE_DESCRIPTOR_VERSION_2: u32 = 272u32;
pub const KSDEVICE_FLAG_ENABLE_QUERYINTERFACE: u32 = 4u32;
pub const KSDEVICE_FLAG_ENABLE_REMOTE_WAKEUP: u32 = 1u32;
pub const KSDEVICE_FLAG_LOWPOWER_PASSTHROUGH: u32 = 2u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDEVICE_PROFILE_INFO {
pub Type: u32,
pub Size: u32,
pub Anonymous: KSDEVICE_PROFILE_INFO_0,
}
impl KSDEVICE_PROFILE_INFO {}
unsafe impl ::windows::Abi for KSDEVICE_PROFILE_INFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSDEVICE_PROFILE_INFO_0 {
pub Camera: KSDEVICE_PROFILE_INFO_0_0,
}
impl KSDEVICE_PROFILE_INFO_0 {}
unsafe impl ::windows::Abi for KSDEVICE_PROFILE_INFO_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDEVICE_PROFILE_INFO_0_0 {
pub Info: KSCAMERA_PROFILE_INFO,
pub Reserved: u32,
pub ConcurrencyCount: u32,
pub Concurrency: *mut KSCAMERA_PROFILE_CONCURRENCYINFO,
}
impl KSDEVICE_PROFILE_INFO_0_0 {}
impl ::std::default::Default for KSDEVICE_PROFILE_INFO_0_0 {
fn default() -> Self {
Self {
Info: ::std::default::Default::default(),
Reserved: 0,
ConcurrencyCount: 0,
Concurrency: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for KSDEVICE_PROFILE_INFO_0_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Camera_e__Struct")
.field("Info", &format_args!("{:?}", self.Info))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field(
"ConcurrencyCount",
&format_args!("{:?}", self.ConcurrencyCount),
)
.field("Concurrency", &format_args!("{:?}", self.Concurrency))
.finish()
}
}
impl ::std::cmp::PartialEq for KSDEVICE_PROFILE_INFO_0_0 {
fn eq(&self, other: &Self) -> bool {
self.Info == other.Info
&& self.Reserved == other.Reserved
&& self.ConcurrencyCount == other.ConcurrencyCount
&& self.Concurrency == other.Concurrency
}
}
impl ::std::cmp::Eq for KSDEVICE_PROFILE_INFO_0_0 {}
unsafe impl ::windows::Abi for KSDEVICE_PROFILE_INFO_0_0 {
type Abi = Self;
}
pub const KSDEVICE_PROFILE_TYPE_CAMERA: u32 = 1u32;
pub const KSDEVICE_PROFILE_TYPE_UNKNOWN: u32 = 0u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSDEVICE_THERMAL_STATE(pub i32);
impl KSDEVICE_THERMAL_STATE {
pub const KSDEVICE_THERMAL_STATE_LOW: Self = Self(0i32);
pub const KSDEVICE_THERMAL_STATE_HIGH: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSDEVICE_THERMAL_STATE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSDEVICE_THERMAL_STATE {
type Abi = Self;
}
pub const KSDISPATCH_FASTIO: u32 = 2147483648u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDISPLAYCHANGE {
pub PelsWidth: u32,
pub PelsHeight: u32,
pub BitsPerPel: u32,
pub DeviceID: [u16; 1],
}
impl KSDISPLAYCHANGE {}
impl ::std::default::Default for KSDISPLAYCHANGE {
fn default() -> Self {
Self {
PelsWidth: 0,
PelsHeight: 0,
BitsPerPel: 0,
DeviceID: [0; 1],
}
}
}
impl ::std::fmt::Debug for KSDISPLAYCHANGE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSDISPLAYCHANGE")
.field("PelsWidth", &format_args!("{:?}", self.PelsWidth))
.field("PelsHeight", &format_args!("{:?}", self.PelsHeight))
.field("BitsPerPel", &format_args!("{:?}", self.BitsPerPel))
.field("DeviceID", &format_args!("{:?}", self.DeviceID))
.finish()
}
}
impl ::std::cmp::PartialEq for KSDISPLAYCHANGE {
fn eq(&self, other: &Self) -> bool {
self.PelsWidth == other.PelsWidth
&& self.PelsHeight == other.PelsHeight
&& self.BitsPerPel == other.BitsPerPel
&& self.DeviceID == other.DeviceID
}
}
impl ::std::cmp::Eq for KSDISPLAYCHANGE {}
unsafe impl ::windows::Abi for KSDISPLAYCHANGE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDS3D_BUFFER_ALL {
pub Position: DS3DVECTOR,
pub Velocity: DS3DVECTOR,
pub InsideConeAngle: u32,
pub OutsideConeAngle: u32,
pub ConeOrientation: DS3DVECTOR,
pub ConeOutsideVolume: i32,
pub MinDistance: f32,
pub MaxDistance: f32,
pub Mode: u32,
}
impl KSDS3D_BUFFER_ALL {}
unsafe impl ::windows::Abi for KSDS3D_BUFFER_ALL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDS3D_BUFFER_CONE_ANGLES {
pub InsideConeAngle: u32,
pub OutsideConeAngle: u32,
}
impl KSDS3D_BUFFER_CONE_ANGLES {}
impl ::std::default::Default for KSDS3D_BUFFER_CONE_ANGLES {
fn default() -> Self {
Self {
InsideConeAngle: 0,
OutsideConeAngle: 0,
}
}
}
impl ::std::fmt::Debug for KSDS3D_BUFFER_CONE_ANGLES {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSDS3D_BUFFER_CONE_ANGLES")
.field(
"InsideConeAngle",
&format_args!("{:?}", self.InsideConeAngle),
)
.field(
"OutsideConeAngle",
&format_args!("{:?}", self.OutsideConeAngle),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSDS3D_BUFFER_CONE_ANGLES {
fn eq(&self, other: &Self) -> bool {
self.InsideConeAngle == other.InsideConeAngle
&& self.OutsideConeAngle == other.OutsideConeAngle
}
}
impl ::std::cmp::Eq for KSDS3D_BUFFER_CONE_ANGLES {}
unsafe impl ::windows::Abi for KSDS3D_BUFFER_CONE_ANGLES {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSDS3D_HRTF_COEFF_FORMAT(pub i32);
impl KSDS3D_HRTF_COEFF_FORMAT {
pub const FLOAT_COEFF: Self = Self(0i32);
pub const SHORT_COEFF: Self = Self(1i32);
pub const KSDS3D_COEFF_COUNT: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSDS3D_HRTF_COEFF_FORMAT {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSDS3D_HRTF_COEFF_FORMAT {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSDS3D_HRTF_FILTER_METHOD(pub i32);
impl KSDS3D_HRTF_FILTER_METHOD {
pub const DIRECT_FORM: Self = Self(0i32);
pub const CASCADE_FORM: Self = Self(1i32);
pub const KSDS3D_FILTER_METHOD_COUNT: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSDS3D_HRTF_FILTER_METHOD {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSDS3D_HRTF_FILTER_METHOD {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSDS3D_HRTF_FILTER_VERSION(pub i32);
impl KSDS3D_HRTF_FILTER_VERSION {
pub const DS3D_HRTF_VERSION_1: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSDS3D_HRTF_FILTER_VERSION {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSDS3D_HRTF_FILTER_VERSION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDS3D_HRTF_FILTER_FORMAT_MSG {
pub FilterMethod: KSDS3D_HRTF_FILTER_METHOD,
pub CoeffFormat: KSDS3D_HRTF_COEFF_FORMAT,
pub Version: KSDS3D_HRTF_FILTER_VERSION,
pub Reserved: u32,
}
impl KSDS3D_HRTF_FILTER_FORMAT_MSG {}
impl ::std::default::Default for KSDS3D_HRTF_FILTER_FORMAT_MSG {
fn default() -> Self {
Self {
FilterMethod: ::std::default::Default::default(),
CoeffFormat: ::std::default::Default::default(),
Version: ::std::default::Default::default(),
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSDS3D_HRTF_FILTER_FORMAT_MSG {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSDS3D_HRTF_FILTER_FORMAT_MSG")
.field("FilterMethod", &format_args!("{:?}", self.FilterMethod))
.field("CoeffFormat", &format_args!("{:?}", self.CoeffFormat))
.field("Version", &format_args!("{:?}", self.Version))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSDS3D_HRTF_FILTER_FORMAT_MSG {
fn eq(&self, other: &Self) -> bool {
self.FilterMethod == other.FilterMethod
&& self.CoeffFormat == other.CoeffFormat
&& self.Version == other.Version
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSDS3D_HRTF_FILTER_FORMAT_MSG {}
unsafe impl ::windows::Abi for KSDS3D_HRTF_FILTER_FORMAT_MSG {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSDS3D_HRTF_FILTER_QUALITY(pub i32);
impl KSDS3D_HRTF_FILTER_QUALITY {
pub const FULL_FILTER: Self = Self(0i32);
pub const LIGHT_FILTER: Self = Self(1i32);
pub const KSDS3D_FILTER_QUALITY_COUNT: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSDS3D_HRTF_FILTER_QUALITY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSDS3D_HRTF_FILTER_QUALITY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDS3D_HRTF_INIT_MSG {
pub Size: u32,
pub Quality: KSDS3D_HRTF_FILTER_QUALITY,
pub SampleRate: f32,
pub MaxFilterSize: u32,
pub FilterTransientMuteLength: u32,
pub FilterOverlapBufferLength: u32,
pub OutputOverlapBufferLength: u32,
pub Reserved: u32,
}
impl KSDS3D_HRTF_INIT_MSG {}
impl ::std::default::Default for KSDS3D_HRTF_INIT_MSG {
fn default() -> Self {
Self {
Size: 0,
Quality: ::std::default::Default::default(),
SampleRate: 0.0,
MaxFilterSize: 0,
FilterTransientMuteLength: 0,
FilterOverlapBufferLength: 0,
OutputOverlapBufferLength: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSDS3D_HRTF_INIT_MSG {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSDS3D_HRTF_INIT_MSG")
.field("Size", &format_args!("{:?}", self.Size))
.field("Quality", &format_args!("{:?}", self.Quality))
.field("SampleRate", &format_args!("{:?}", self.SampleRate))
.field("MaxFilterSize", &format_args!("{:?}", self.MaxFilterSize))
.field(
"FilterTransientMuteLength",
&format_args!("{:?}", self.FilterTransientMuteLength),
)
.field(
"FilterOverlapBufferLength",
&format_args!("{:?}", self.FilterOverlapBufferLength),
)
.field(
"OutputOverlapBufferLength",
&format_args!("{:?}", self.OutputOverlapBufferLength),
)
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSDS3D_HRTF_INIT_MSG {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.Quality == other.Quality
&& self.SampleRate == other.SampleRate
&& self.MaxFilterSize == other.MaxFilterSize
&& self.FilterTransientMuteLength == other.FilterTransientMuteLength
&& self.FilterOverlapBufferLength == other.FilterOverlapBufferLength
&& self.OutputOverlapBufferLength == other.OutputOverlapBufferLength
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSDS3D_HRTF_INIT_MSG {}
unsafe impl ::windows::Abi for KSDS3D_HRTF_INIT_MSG {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDS3D_HRTF_PARAMS_MSG {
pub Size: u32,
pub Enabled: u32,
pub SwapChannels: super::SystemServices::BOOL,
pub ZeroAzimuth: super::SystemServices::BOOL,
pub CrossFadeOutput: super::SystemServices::BOOL,
pub FilterSize: u32,
}
impl KSDS3D_HRTF_PARAMS_MSG {}
impl ::std::default::Default for KSDS3D_HRTF_PARAMS_MSG {
fn default() -> Self {
Self {
Size: 0,
Enabled: 0,
SwapChannels: ::std::default::Default::default(),
ZeroAzimuth: ::std::default::Default::default(),
CrossFadeOutput: ::std::default::Default::default(),
FilterSize: 0,
}
}
}
impl ::std::fmt::Debug for KSDS3D_HRTF_PARAMS_MSG {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSDS3D_HRTF_PARAMS_MSG")
.field("Size", &format_args!("{:?}", self.Size))
.field("Enabled", &format_args!("{:?}", self.Enabled))
.field("SwapChannels", &format_args!("{:?}", self.SwapChannels))
.field("ZeroAzimuth", &format_args!("{:?}", self.ZeroAzimuth))
.field(
"CrossFadeOutput",
&format_args!("{:?}", self.CrossFadeOutput),
)
.field("FilterSize", &format_args!("{:?}", self.FilterSize))
.finish()
}
}
impl ::std::cmp::PartialEq for KSDS3D_HRTF_PARAMS_MSG {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.Enabled == other.Enabled
&& self.SwapChannels == other.SwapChannels
&& self.ZeroAzimuth == other.ZeroAzimuth
&& self.CrossFadeOutput == other.CrossFadeOutput
&& self.FilterSize == other.FilterSize
}
}
impl ::std::cmp::Eq for KSDS3D_HRTF_PARAMS_MSG {}
unsafe impl ::windows::Abi for KSDS3D_HRTF_PARAMS_MSG {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDS3D_ITD_PARAMS {
pub Channel: i32,
pub VolSmoothScale: f32,
pub TotalDryAttenuation: f32,
pub TotalWetAttenuation: f32,
pub SmoothFrequency: i32,
pub Delay: i32,
}
impl KSDS3D_ITD_PARAMS {}
impl ::std::default::Default for KSDS3D_ITD_PARAMS {
fn default() -> Self {
Self {
Channel: 0,
VolSmoothScale: 0.0,
TotalDryAttenuation: 0.0,
TotalWetAttenuation: 0.0,
SmoothFrequency: 0,
Delay: 0,
}
}
}
impl ::std::fmt::Debug for KSDS3D_ITD_PARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSDS3D_ITD_PARAMS")
.field("Channel", &format_args!("{:?}", self.Channel))
.field("VolSmoothScale", &format_args!("{:?}", self.VolSmoothScale))
.field(
"TotalDryAttenuation",
&format_args!("{:?}", self.TotalDryAttenuation),
)
.field(
"TotalWetAttenuation",
&format_args!("{:?}", self.TotalWetAttenuation),
)
.field(
"SmoothFrequency",
&format_args!("{:?}", self.SmoothFrequency),
)
.field("Delay", &format_args!("{:?}", self.Delay))
.finish()
}
}
impl ::std::cmp::PartialEq for KSDS3D_ITD_PARAMS {
fn eq(&self, other: &Self) -> bool {
self.Channel == other.Channel
&& self.VolSmoothScale == other.VolSmoothScale
&& self.TotalDryAttenuation == other.TotalDryAttenuation
&& self.TotalWetAttenuation == other.TotalWetAttenuation
&& self.SmoothFrequency == other.SmoothFrequency
&& self.Delay == other.Delay
}
}
impl ::std::cmp::Eq for KSDS3D_ITD_PARAMS {}
unsafe impl ::windows::Abi for KSDS3D_ITD_PARAMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDS3D_ITD_PARAMS_MSG {
pub Enabled: u32,
pub LeftParams: KSDS3D_ITD_PARAMS,
pub RightParams: KSDS3D_ITD_PARAMS,
pub Reserved: u32,
}
impl KSDS3D_ITD_PARAMS_MSG {}
impl ::std::default::Default for KSDS3D_ITD_PARAMS_MSG {
fn default() -> Self {
Self {
Enabled: 0,
LeftParams: ::std::default::Default::default(),
RightParams: ::std::default::Default::default(),
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSDS3D_ITD_PARAMS_MSG {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSDS3D_ITD_PARAMS_MSG")
.field("Enabled", &format_args!("{:?}", self.Enabled))
.field("LeftParams", &format_args!("{:?}", self.LeftParams))
.field("RightParams", &format_args!("{:?}", self.RightParams))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSDS3D_ITD_PARAMS_MSG {
fn eq(&self, other: &Self) -> bool {
self.Enabled == other.Enabled
&& self.LeftParams == other.LeftParams
&& self.RightParams == other.RightParams
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSDS3D_ITD_PARAMS_MSG {}
unsafe impl ::windows::Abi for KSDS3D_ITD_PARAMS_MSG {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDS3D_LISTENER_ALL {
pub Position: DS3DVECTOR,
pub Velocity: DS3DVECTOR,
pub OrientFront: DS3DVECTOR,
pub OrientTop: DS3DVECTOR,
pub DistanceFactor: f32,
pub RolloffFactor: f32,
pub DopplerFactor: f32,
}
impl KSDS3D_LISTENER_ALL {}
unsafe impl ::windows::Abi for KSDS3D_LISTENER_ALL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSDS3D_LISTENER_ORIENTATION {
pub Front: DS3DVECTOR,
pub Top: DS3DVECTOR,
}
impl KSDS3D_LISTENER_ORIENTATION {}
unsafe impl ::windows::Abi for KSDS3D_LISTENER_ORIENTATION {
type Abi = Self;
}
pub const KSDSOUND_3D_MODE_DISABLE: u32 = 2u32;
pub const KSDSOUND_3D_MODE_HEADRELATIVE: u32 = 1u32;
pub const KSDSOUND_3D_MODE_NORMAL: u32 = 0u32;
pub const KSDSOUND_BUFFER_CTRL_3D: u32 = 1u32;
pub const KSDSOUND_BUFFER_CTRL_FREQUENCY: u32 = 2u32;
pub const KSDSOUND_BUFFER_CTRL_HRTF_3D: u32 = 1073741824u32;
pub const KSDSOUND_BUFFER_CTRL_PAN: u32 = 4u32;
pub const KSDSOUND_BUFFER_CTRL_POSITIONNOTIFY: u32 = 16u32;
pub const KSDSOUND_BUFFER_CTRL_VOLUME: u32 = 8u32;
pub const KSDSOUND_BUFFER_LOCHARDWARE: u32 = 4u32;
pub const KSDSOUND_BUFFER_LOCSOFTWARE: u32 = 8u32;
pub const KSDSOUND_BUFFER_PRIMARY: u32 = 1u32;
pub const KSDSOUND_BUFFER_STATIC: u32 = 2u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSERROR {
pub Context: *mut ::std::ffi::c_void,
pub Status: u32,
}
impl KSERROR {}
impl ::std::default::Default for KSERROR {
fn default() -> Self {
Self {
Context: ::std::ptr::null_mut(),
Status: 0,
}
}
}
impl ::std::fmt::Debug for KSERROR {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSERROR")
.field("Context", &format_args!("{:?}", self.Context))
.field("Status", &format_args!("{:?}", self.Status))
.finish()
}
}
impl ::std::cmp::PartialEq for KSERROR {
fn eq(&self, other: &Self) -> bool {
self.Context == other.Context && self.Status == other.Status
}
}
impl ::std::cmp::Eq for KSERROR {}
unsafe impl ::windows::Abi for KSERROR {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSEVENTDATA {
pub NotificationType: u32,
pub Anonymous: KSEVENTDATA_0,
}
impl KSEVENTDATA {}
unsafe impl ::windows::Abi for KSEVENTDATA {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSEVENTDATA_0 {
pub EventHandle: KSEVENTDATA_0_1,
pub SemaphoreHandle: KSEVENTDATA_0_2,
pub Alignment: KSEVENTDATA_0_0,
}
impl KSEVENTDATA_0 {}
unsafe impl ::windows::Abi for KSEVENTDATA_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSEVENTDATA_0_0 {
pub Unused: *mut ::std::ffi::c_void,
pub Alignment: [isize; 2],
}
impl KSEVENTDATA_0_0 {}
impl ::std::default::Default for KSEVENTDATA_0_0 {
fn default() -> Self {
Self {
Unused: ::std::ptr::null_mut(),
Alignment: [0; 2],
}
}
}
impl ::std::fmt::Debug for KSEVENTDATA_0_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Alignment_e__Struct")
.field("Unused", &format_args!("{:?}", self.Unused))
.field("Alignment", &format_args!("{:?}", self.Alignment))
.finish()
}
}
impl ::std::cmp::PartialEq for KSEVENTDATA_0_0 {
fn eq(&self, other: &Self) -> bool {
self.Unused == other.Unused && self.Alignment == other.Alignment
}
}
impl ::std::cmp::Eq for KSEVENTDATA_0_0 {}
unsafe impl ::windows::Abi for KSEVENTDATA_0_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSEVENTDATA_0_1 {
pub Event: super::SystemServices::HANDLE,
pub Reserved: [usize; 2],
}
impl KSEVENTDATA_0_1 {}
impl ::std::default::Default for KSEVENTDATA_0_1 {
fn default() -> Self {
Self {
Event: ::std::default::Default::default(),
Reserved: [0; 2],
}
}
}
impl ::std::fmt::Debug for KSEVENTDATA_0_1 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_EventHandle_e__Struct")
.field("Event", &format_args!("{:?}", self.Event))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSEVENTDATA_0_1 {
fn eq(&self, other: &Self) -> bool {
self.Event == other.Event && self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSEVENTDATA_0_1 {}
unsafe impl ::windows::Abi for KSEVENTDATA_0_1 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSEVENTDATA_0_2 {
pub Semaphore: super::SystemServices::HANDLE,
pub Reserved: u32,
pub Adjustment: i32,
}
impl KSEVENTDATA_0_2 {}
impl ::std::default::Default for KSEVENTDATA_0_2 {
fn default() -> Self {
Self {
Semaphore: ::std::default::Default::default(),
Reserved: 0,
Adjustment: 0,
}
}
}
impl ::std::fmt::Debug for KSEVENTDATA_0_2 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_SemaphoreHandle_e__Struct")
.field("Semaphore", &format_args!("{:?}", self.Semaphore))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field("Adjustment", &format_args!("{:?}", self.Adjustment))
.finish()
}
}
impl ::std::cmp::PartialEq for KSEVENTDATA_0_2 {
fn eq(&self, other: &Self) -> bool {
self.Semaphore == other.Semaphore
&& self.Reserved == other.Reserved
&& self.Adjustment == other.Adjustment
}
}
impl ::std::cmp::Eq for KSEVENTDATA_0_2 {}
unsafe impl ::windows::Abi for KSEVENTDATA_0_2 {
type Abi = Self;
}
pub const KSEVENTF_DPC: u32 = 16u32;
pub const KSEVENTF_EVENT_HANDLE: u32 = 1u32;
pub const KSEVENTF_EVENT_OBJECT: u32 = 4u32;
pub const KSEVENTF_KSWORKITEM: u32 = 128u32;
pub const KSEVENTF_SEMAPHORE_HANDLE: u32 = 2u32;
pub const KSEVENTF_SEMAPHORE_OBJECT: u32 = 8u32;
pub const KSEVENTF_WORKITEM: u32 = 32u32;
pub const KSEVENTSETID_AudioControlChange: ::windows::Guid =
::windows::Guid::from_values(
3898513048,
64047,
4561,
[149, 189, 0, 192, 79, 185, 37, 211],
);
pub const KSEVENTSETID_CameraAsyncControl: ::windows::Guid =
::windows::Guid::from_values(
580982612,
38657,
16520,
[179, 63, 107, 156, 188, 82, 223, 94],
);
pub const KSEVENTSETID_CameraEvent: ::windows::Guid = ::windows::Guid::from_values(
2023338720,
27459,
18788,
[157, 42, 162, 31, 64, 97, 245, 118],
);
pub const KSEVENTSETID_Clock: ::windows::Guid = ::windows::Guid::from_values(
911052320,
25287,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSEVENTSETID_Connection: ::windows::Guid = ::windows::Guid::from_values(
2135673824,
40613,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSEVENTSETID_Device: ::windows::Guid = ::windows::Guid::from_values(
679646956,
40852,
16820,
[161, 83, 170, 49, 174, 236, 179, 63],
);
pub const KSEVENTSETID_DynamicFormatChange: ::windows::Guid =
::windows::Guid::from_values(
371901526,
33751,
16953,
[150, 223, 199, 95, 250, 19, 139, 198],
);
pub const KSEVENTSETID_EXTDEV_Command: ::windows::Guid = ::windows::Guid::from_values(
278690184,
46027,
4562,
[180, 142, 0, 96, 151, 179, 57, 27],
);
pub const KSEVENTSETID_ExtendedCameraControl: ::windows::Guid =
::windows::Guid::from_values(
1461490377,
5026,
18403,
[166, 73, 210, 167, 120, 22, 99, 132],
);
pub const KSEVENTSETID_LoopedStreaming: ::windows::Guid = ::windows::Guid::from_values(
1182972224,
50927,
4560,
[150, 216, 0, 170, 0, 81, 229, 29],
);
pub const KSEVENTSETID_PinCapsChange: ::windows::Guid = ::windows::Guid::from_values(
3712948526,
15224,
18861,
[165, 52, 44, 49, 91, 130, 32, 0],
);
pub const KSEVENTSETID_SoundDetector: ::windows::Guid = ::windows::Guid::from_values(
1769495707,
64557,
18902,
[172, 50, 71, 153, 248, 125, 233, 246],
);
pub const KSEVENTSETID_StreamAllocator: ::windows::Guid = ::windows::Guid::from_values(
1977177457,
1852,
4560,
[161, 97, 0, 32, 175, 209, 86, 228],
);
pub const KSEVENTSETID_Telephony: ::windows::Guid = ::windows::Guid::from_values(
3078558388,
52916,
17540,
[141, 94, 82, 193, 231, 216, 118, 45],
);
pub const KSEVENTSETID_VIDCAPTOSTI: ::windows::Guid = ::windows::Guid::from_values(
3678920224,
63016,
4561,
[186, 65, 0, 160, 201, 13, 43, 5],
);
pub const KSEVENTSETID_VIDCAP_TVAUDIO: ::windows::Guid = ::windows::Guid::from_values(
1781401169,
10468,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const KSEVENTSETID_VPNotify: ::windows::Guid = ::windows::Guid::from_values(
549804430,
54216,
4560,
[141, 252, 0, 192, 79, 215, 192, 139],
);
pub const KSEVENTSETID_VPVBINotify: ::windows::Guid = ::windows::Guid::from_values(
3964836609,
6687,
4561,
[186, 217, 0, 96, 151, 68, 17, 26],
);
pub const KSEVENTSETID_VolumeLimit: ::windows::Guid = ::windows::Guid::from_values(
3658908773,
14972,
18520,
[157, 74, 62, 142, 36, 112, 26, 239],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_AUDIO_CONTROL_CHANGE(pub i32);
impl KSEVENT_AUDIO_CONTROL_CHANGE {
pub const KSEVENT_CONTROL_CHANGE: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_AUDIO_CONTROL_CHANGE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_AUDIO_CONTROL_CHANGE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_CAMERACONTROL(pub i32);
impl KSEVENT_CAMERACONTROL {
pub const KSEVENT_CAMERACONTROL_FOCUS: Self = Self(0i32);
pub const KSEVENT_CAMERACONTROL_ZOOM: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSEVENT_CAMERACONTROL {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_CAMERACONTROL {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_CAMERAEVENT(pub i32);
impl KSEVENT_CAMERAEVENT {
pub const KSEVENT_PHOTO_SAMPLE_SCANNED: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_CAMERAEVENT {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_CAMERAEVENT {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_CLOCK_POSITION(pub i32);
impl KSEVENT_CLOCK_POSITION {
pub const KSEVENT_CLOCK_INTERVAL_MARK: Self = Self(0i32);
pub const KSEVENT_CLOCK_POSITION_MARK: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSEVENT_CLOCK_POSITION {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_CLOCK_POSITION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_CONNECTION(pub i32);
impl KSEVENT_CONNECTION {
pub const KSEVENT_CONNECTION_POSITIONUPDATE: Self = Self(0i32);
pub const KSEVENT_CONNECTION_DATADISCONTINUITY: Self = Self(1i32);
pub const KSEVENT_CONNECTION_TIMEDISCONTINUITY: Self = Self(2i32);
pub const KSEVENT_CONNECTION_PRIORITY: Self = Self(3i32);
pub const KSEVENT_CONNECTION_ENDOFSTREAM: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KSEVENT_CONNECTION {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_CONNECTION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_CROSSBAR(pub i32);
impl KSEVENT_CROSSBAR {
pub const KSEVENT_CROSSBAR_CHANGED: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_CROSSBAR {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_CROSSBAR {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_DEVCMD(pub i32);
impl KSEVENT_DEVCMD {
pub const KSEVENT_EXTDEV_COMMAND_NOTIFY_INTERIM_READY: Self = Self(0i32);
pub const KSEVENT_EXTDEV_COMMAND_CONTROL_INTERIM_READY: Self = Self(1i32);
pub const KSEVENT_EXTDEV_COMMAND_BUSRESET: Self = Self(2i32);
pub const KSEVENT_EXTDEV_TIMECODE_UPDATE: Self = Self(3i32);
pub const KSEVENT_EXTDEV_OPERATION_MODE_UPDATE: Self = Self(4i32);
pub const KSEVENT_EXTDEV_TRANSPORT_STATE_UPDATE: Self = Self(5i32);
pub const KSEVENT_EXTDEV_NOTIFY_REMOVAL: Self = Self(6i32);
pub const KSEVENT_EXTDEV_NOTIFY_MEDIUM_CHANGE: Self = Self(7i32);
}
impl ::std::convert::From<i32> for KSEVENT_DEVCMD {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_DEVCMD {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_DEVICE(pub i32);
impl KSEVENT_DEVICE {
pub const KSEVENT_DEVICE_LOST: Self = Self(0i32);
pub const KSEVENT_DEVICE_PREEMPTED: Self = Self(1i32);
pub const KSEVENT_DEVICE_THERMAL_HIGH: Self = Self(2i32);
pub const KSEVENT_DEVICE_THERMAL_LOW: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KSEVENT_DEVICE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_DEVICE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_DYNAMICFORMATCHANGE(pub i32);
impl KSEVENT_DYNAMICFORMATCHANGE {
pub const KSEVENT_DYNAMIC_FORMAT_CHANGE: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_DYNAMICFORMATCHANGE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_DYNAMICFORMATCHANGE {
type Abi = Self;
}
pub const KSEVENT_ENTRY_BUFFERED: u32 = 4u32;
pub const KSEVENT_ENTRY_DELETED: u32 = 1u32;
pub const KSEVENT_ENTRY_ONESHOT: u32 = 2u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_LOOPEDSTREAMING(pub i32);
impl KSEVENT_LOOPEDSTREAMING {
pub const KSEVENT_LOOPEDSTREAMING_POSITION: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_LOOPEDSTREAMING {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_LOOPEDSTREAMING {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_PINCAPS_CHANGENOTIFICATIONS(pub i32);
impl KSEVENT_PINCAPS_CHANGENOTIFICATIONS {
pub const KSEVENT_PINCAPS_FORMATCHANGE: Self = Self(0i32);
pub const KSEVENT_PINCAPS_JACKINFOCHANGE: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSEVENT_PINCAPS_CHANGENOTIFICATIONS {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_PINCAPS_CHANGENOTIFICATIONS {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_SOUNDDETECTOR(pub i32);
impl KSEVENT_SOUNDDETECTOR {
pub const KSEVENT_SOUNDDETECTOR_MATCHDETECTED: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSEVENT_SOUNDDETECTOR {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_SOUNDDETECTOR {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_STREAMALLOCATOR(pub i32);
impl KSEVENT_STREAMALLOCATOR {
pub const KSEVENT_STREAMALLOCATOR_INTERNAL_FREEFRAME: Self = Self(0i32);
pub const KSEVENT_STREAMALLOCATOR_FREEFRAME: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSEVENT_STREAMALLOCATOR {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_STREAMALLOCATOR {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_TELEPHONY(pub i32);
impl KSEVENT_TELEPHONY {
pub const KSEVENT_TELEPHONY_ENDPOINTPAIRS_CHANGED: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_TELEPHONY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_TELEPHONY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSEVENT_TIME_INTERVAL {
pub EventData: KSEVENTDATA,
pub TimeBase: i64,
pub Interval: i64,
}
impl KSEVENT_TIME_INTERVAL {}
unsafe impl ::windows::Abi for KSEVENT_TIME_INTERVAL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSEVENT_TIME_MARK {
pub EventData: KSEVENTDATA,
pub MarkTime: i64,
}
impl KSEVENT_TIME_MARK {}
unsafe impl ::windows::Abi for KSEVENT_TIME_MARK {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_TUNER(pub i32);
impl KSEVENT_TUNER {
pub const KSEVENT_TUNER_CHANGED: Self = Self(0i32);
pub const KSEVENT_TUNER_INITIATE_SCAN: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSEVENT_TUNER {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_TUNER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSEVENT_TUNER_INITIATE_SCAN_S {
pub EventData: KSEVENTDATA,
pub StartFrequency: u32,
pub EndFrequency: u32,
}
impl KSEVENT_TUNER_INITIATE_SCAN_S {}
unsafe impl ::windows::Abi for KSEVENT_TUNER_INITIATE_SCAN_S {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_TVAUDIO(pub i32);
impl KSEVENT_TVAUDIO {
pub const KSEVENT_TVAUDIO_CHANGED: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_TVAUDIO {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_TVAUDIO {
type Abi = Self;
}
pub const KSEVENT_TYPE_BASICSUPPORT: u32 = 512u32;
pub const KSEVENT_TYPE_ENABLE: u32 = 1u32;
pub const KSEVENT_TYPE_ENABLEBUFFERED: u32 = 4u32;
pub const KSEVENT_TYPE_ONESHOT: u32 = 2u32;
pub const KSEVENT_TYPE_QUERYBUFFER: u32 = 1024u32;
pub const KSEVENT_TYPE_SETSUPPORT: u32 = 256u32;
pub const KSEVENT_TYPE_TOPOLOGY: u32 = 268435456u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_VIDCAPTOSTI(pub i32);
impl KSEVENT_VIDCAPTOSTI {
pub const KSEVENT_VIDCAPTOSTI_EXT_TRIGGER: Self = Self(0i32);
pub const KSEVENT_VIDCAP_AUTO_UPDATE: Self = Self(1i32);
pub const KSEVENT_VIDCAP_SEARCH: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSEVENT_VIDCAPTOSTI {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_VIDCAPTOSTI {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_VIDEODECODER(pub i32);
impl KSEVENT_VIDEODECODER {
pub const KSEVENT_VIDEODECODER_CHANGED: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_VIDEODECODER {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_VIDEODECODER {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_VOLUMELIMIT(pub i32);
impl KSEVENT_VOLUMELIMIT {
pub const KSEVENT_VOLUMELIMIT_CHANGED: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_VOLUMELIMIT {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_VOLUMELIMIT {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_VPNOTIFY(pub i32);
impl KSEVENT_VPNOTIFY {
pub const KSEVENT_VPNOTIFY_FORMATCHANGE: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_VPNOTIFY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_VPNOTIFY {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSEVENT_VPVBINOTIFY(pub i32);
impl KSEVENT_VPVBINOTIFY {
pub const KSEVENT_VPVBINOTIFY_FORMATCHANGE: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSEVENT_VPVBINOTIFY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSEVENT_VPVBINOTIFY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSE_NODE {
pub Event: KSIDENTIFIER,
pub NodeId: u32,
pub Reserved: u32,
}
impl KSE_NODE {}
unsafe impl ::windows::Abi for KSE_NODE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSE_PIN {
pub Event: KSIDENTIFIER,
pub PinId: u32,
pub Reserved: u32,
}
impl KSE_PIN {}
unsafe impl ::windows::Abi for KSE_PIN {
type Abi = Self;
}
pub const KSFILTER_FLAG_CRITICAL_PROCESSING: u32 = 2u32;
pub const KSFILTER_FLAG_DENY_USERMODE_ACCESS: u32 = 2147483648u32;
pub const KSFILTER_FLAG_DISPATCH_LEVEL_PROCESSING: u32 = 1u32;
pub const KSFILTER_FLAG_HYPERCRITICAL_PROCESSING: u32 = 4u32;
pub const KSFILTER_FLAG_PRIORITIZE_REFERENCEGUID: u32 = 16u32;
pub const KSFILTER_FLAG_RECEIVE_ZERO_LENGTH_SAMPLES: u32 = 8u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSFRAMETIME {
pub Duration: i64,
pub FrameFlags: u32,
pub Reserved: u32,
}
impl KSFRAMETIME {}
impl ::std::default::Default for KSFRAMETIME {
fn default() -> Self {
Self {
Duration: 0,
FrameFlags: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSFRAMETIME {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSFRAMETIME")
.field("Duration", &format_args!("{:?}", self.Duration))
.field("FrameFlags", &format_args!("{:?}", self.FrameFlags))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSFRAMETIME {
fn eq(&self, other: &Self) -> bool {
self.Duration == other.Duration
&& self.FrameFlags == other.FrameFlags
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSFRAMETIME {}
unsafe impl ::windows::Abi for KSFRAMETIME {
type Abi = Self;
}
pub const KSFRAMETIME_VARIABLESIZE: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSGOP_USERDATA {
pub sc: u32,
pub reserved1: u32,
pub cFields: u8,
pub l21Data: [i8; 3],
}
impl KSGOP_USERDATA {}
impl ::std::default::Default for KSGOP_USERDATA {
fn default() -> Self {
Self {
sc: 0,
reserved1: 0,
cFields: 0,
l21Data: [0; 3],
}
}
}
impl ::std::fmt::Debug for KSGOP_USERDATA {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSGOP_USERDATA")
.field("sc", &format_args!("{:?}", self.sc))
.field("reserved1", &format_args!("{:?}", self.reserved1))
.field("cFields", &format_args!("{:?}", self.cFields))
.field("l21Data", &format_args!("{:?}", self.l21Data))
.finish()
}
}
impl ::std::cmp::PartialEq for KSGOP_USERDATA {
fn eq(&self, other: &Self) -> bool {
self.sc == other.sc
&& self.reserved1 == other.reserved1
&& self.cFields == other.cFields
&& self.l21Data == other.l21Data
}
}
impl ::std::cmp::Eq for KSGOP_USERDATA {}
unsafe impl ::windows::Abi for KSGOP_USERDATA {
type Abi = Self;
}
pub const KSINTERFACESETID_FileIo: ::windows::Guid = ::windows::Guid::from_values(
2356122412,
59249,
4560,
[184, 255, 0, 160, 201, 34, 49, 150],
);
pub const KSINTERFACESETID_Media: ::windows::Guid = ::windows::Guid::from_values(
974383936,
12455,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSINTERFACESETID_Standard: ::windows::Guid = ::windows::Guid::from_values(
445081248,
25294,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSINTERFACE_FILEIO(pub i32);
impl KSINTERFACE_FILEIO {
pub const KSINTERFACE_FILEIO_STREAMING: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSINTERFACE_FILEIO {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSINTERFACE_FILEIO {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSINTERFACE_MEDIA(pub i32);
impl KSINTERFACE_MEDIA {
pub const KSINTERFACE_MEDIA_MUSIC: Self = Self(0i32);
pub const KSINTERFACE_MEDIA_WAVE_BUFFERED: Self = Self(1i32);
pub const KSINTERFACE_MEDIA_WAVE_QUEUED: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSINTERFACE_MEDIA {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSINTERFACE_MEDIA {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSINTERFACE_STANDARD(pub i32);
impl KSINTERFACE_STANDARD {
pub const KSINTERFACE_STANDARD_STREAMING: Self = Self(0i32);
pub const KSINTERFACE_STANDARD_LOOPED_STREAMING: Self = Self(1i32);
pub const KSINTERFACE_STANDARD_CONTROL: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSINTERFACE_STANDARD {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSINTERFACE_STANDARD {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSINTERVAL {
pub TimeBase: i64,
pub Interval: i64,
}
impl KSINTERVAL {}
impl ::std::default::Default for KSINTERVAL {
fn default() -> Self {
Self {
TimeBase: 0,
Interval: 0,
}
}
}
impl ::std::fmt::Debug for KSINTERVAL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSINTERVAL")
.field("TimeBase", &format_args!("{:?}", self.TimeBase))
.field("Interval", &format_args!("{:?}", self.Interval))
.finish()
}
}
impl ::std::cmp::PartialEq for KSINTERVAL {
fn eq(&self, other: &Self) -> bool {
self.TimeBase == other.TimeBase && self.Interval == other.Interval
}
}
impl ::std::cmp::Eq for KSINTERVAL {}
unsafe impl ::windows::Abi for KSINTERVAL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSJACK_DESCRIPTION {
pub ChannelMapping: u32,
pub Color: u32,
pub ConnectionType: EPcxConnectionType,
pub GeoLocation: EPcxGeoLocation,
pub GenLocation: EPcxGenLocation,
pub PortConnection: EPxcPortConnection,
pub IsConnected: super::SystemServices::BOOL,
}
impl KSJACK_DESCRIPTION {}
impl ::std::default::Default for KSJACK_DESCRIPTION {
fn default() -> Self {
Self {
ChannelMapping: 0,
Color: 0,
ConnectionType: ::std::default::Default::default(),
GeoLocation: ::std::default::Default::default(),
GenLocation: ::std::default::Default::default(),
PortConnection: ::std::default::Default::default(),
IsConnected: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSJACK_DESCRIPTION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSJACK_DESCRIPTION")
.field("ChannelMapping", &format_args!("{:?}", self.ChannelMapping))
.field("Color", &format_args!("{:?}", self.Color))
.field("ConnectionType", &format_args!("{:?}", self.ConnectionType))
.field("GeoLocation", &format_args!("{:?}", self.GeoLocation))
.field("GenLocation", &format_args!("{:?}", self.GenLocation))
.field("PortConnection", &format_args!("{:?}", self.PortConnection))
.field("IsConnected", &format_args!("{:?}", self.IsConnected))
.finish()
}
}
impl ::std::cmp::PartialEq for KSJACK_DESCRIPTION {
fn eq(&self, other: &Self) -> bool {
self.ChannelMapping == other.ChannelMapping
&& self.Color == other.Color
&& self.ConnectionType == other.ConnectionType
&& self.GeoLocation == other.GeoLocation
&& self.GenLocation == other.GenLocation
&& self.PortConnection == other.PortConnection
&& self.IsConnected == other.IsConnected
}
}
impl ::std::cmp::Eq for KSJACK_DESCRIPTION {}
unsafe impl ::windows::Abi for KSJACK_DESCRIPTION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSJACK_DESCRIPTION2 {
pub DeviceStateInfo: u32,
pub JackCapabilities: u32,
}
impl KSJACK_DESCRIPTION2 {}
impl ::std::default::Default for KSJACK_DESCRIPTION2 {
fn default() -> Self {
Self {
DeviceStateInfo: 0,
JackCapabilities: 0,
}
}
}
impl ::std::fmt::Debug for KSJACK_DESCRIPTION2 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSJACK_DESCRIPTION2")
.field(
"DeviceStateInfo",
&format_args!("{:?}", self.DeviceStateInfo),
)
.field(
"JackCapabilities",
&format_args!("{:?}", self.JackCapabilities),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSJACK_DESCRIPTION2 {
fn eq(&self, other: &Self) -> bool {
self.DeviceStateInfo == other.DeviceStateInfo
&& self.JackCapabilities == other.JackCapabilities
}
}
impl ::std::cmp::Eq for KSJACK_DESCRIPTION2 {}
unsafe impl ::windows::Abi for KSJACK_DESCRIPTION2 {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSJACK_SINK_CONNECTIONTYPE(pub i32);
impl KSJACK_SINK_CONNECTIONTYPE {
pub const KSJACK_SINK_CONNECTIONTYPE_HDMI: Self = Self(0i32);
pub const KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSJACK_SINK_CONNECTIONTYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSJACK_SINK_CONNECTIONTYPE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSJACK_SINK_INFORMATION {
pub ConnType: KSJACK_SINK_CONNECTIONTYPE,
pub ManufacturerId: u16,
pub ProductId: u16,
pub AudioLatency: u16,
pub HDCPCapable: super::SystemServices::BOOL,
pub AICapable: super::SystemServices::BOOL,
pub SinkDescriptionLength: u8,
pub SinkDescription: [u16; 32],
pub PortId: super::Kernel::LUID,
}
impl KSJACK_SINK_INFORMATION {}
impl ::std::default::Default for KSJACK_SINK_INFORMATION {
fn default() -> Self {
Self {
ConnType: ::std::default::Default::default(),
ManufacturerId: 0,
ProductId: 0,
AudioLatency: 0,
HDCPCapable: ::std::default::Default::default(),
AICapable: ::std::default::Default::default(),
SinkDescriptionLength: 0,
SinkDescription: [0; 32],
PortId: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSJACK_SINK_INFORMATION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSJACK_SINK_INFORMATION")
.field("ConnType", &format_args!("{:?}", self.ConnType))
.field("ManufacturerId", &format_args!("{:?}", self.ManufacturerId))
.field("ProductId", &format_args!("{:?}", self.ProductId))
.field("AudioLatency", &format_args!("{:?}", self.AudioLatency))
.field("HDCPCapable", &format_args!("{:?}", self.HDCPCapable))
.field("AICapable", &format_args!("{:?}", self.AICapable))
.field(
"SinkDescriptionLength",
&format_args!("{:?}", self.SinkDescriptionLength),
)
.field(
"SinkDescription",
&format_args!("{:?}", self.SinkDescription),
)
.field("PortId", &format_args!("{:?}", self.PortId))
.finish()
}
}
impl ::std::cmp::PartialEq for KSJACK_SINK_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.ConnType == other.ConnType
&& self.ManufacturerId == other.ManufacturerId
&& self.ProductId == other.ProductId
&& self.AudioLatency == other.AudioLatency
&& self.HDCPCapable == other.HDCPCapable
&& self.AICapable == other.AICapable
&& self.SinkDescriptionLength == other.SinkDescriptionLength
&& self.SinkDescription == other.SinkDescription
&& self.PortId == other.PortId
}
}
impl ::std::cmp::Eq for KSJACK_SINK_INFORMATION {}
unsafe impl ::windows::Abi for KSJACK_SINK_INFORMATION {
type Abi = Self;
}
pub const KSMEDIUMSETID_MidiBus: ::windows::Guid = ::windows::Guid::from_values(
93356096,
12870,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSMEDIUMSETID_Standard: ::windows::Guid = ::windows::Guid::from_values(
1195881248,
25294,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSMEDIUMSETID_VPBus: ::windows::Guid = ::windows::Guid::from_values(
2710312428,
52803,
4560,
[171, 231, 0, 160, 201, 34, 49, 150],
);
pub const KSMEDIUM_TYPE_ANYINSTANCE: u32 = 0u32;
pub const KSMEMORY_TYPE_DEVICE_UNKNOWN: ::windows::Guid = ::windows::Guid::from_values(
152811065,
24639,
4561,
[176, 103, 0, 160, 201, 6, 40, 2],
);
pub const KSMEMORY_TYPE_KERNEL_NONPAGED: ::windows::Guid = ::windows::Guid::from_values(
1248681924,
30869,
4561,
[176, 105, 0, 160, 201, 6, 40, 2],
);
pub const KSMEMORY_TYPE_KERNEL_PAGED: ::windows::Guid = ::windows::Guid::from_values(
3627284728,
30868,
4561,
[176, 105, 0, 160, 201, 6, 40, 2],
);
pub const KSMEMORY_TYPE_SYSTEM: ::windows::Guid = ::windows::Guid::from_values(
152811064,
24639,
4561,
[176, 103, 0, 160, 201, 6, 40, 2],
);
pub const KSMEMORY_TYPE_USER: ::windows::Guid = ::windows::Guid::from_values(
2360409128,
30867,
4561,
[176, 105, 0, 160, 201, 6, 40, 2],
);
pub const KSMETHODSETID_StreamAllocator: ::windows::Guid = ::windows::Guid::from_values(
3480109889,
60551,
4559,
[161, 48, 0, 32, 175, 209, 86, 228],
);
pub const KSMETHODSETID_StreamIo: ::windows::Guid = ::windows::Guid::from_values(
1708131274,
5411,
4562,
[178, 122, 0, 160, 201, 34, 49, 150],
);
pub const KSMETHODSETID_Wavetable: ::windows::Guid = ::windows::Guid::from_values(
3706663403,
55559,
4560,
[149, 131, 0, 192, 79, 185, 37, 211],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSMETHOD_STREAMALLOCATOR(pub i32);
impl KSMETHOD_STREAMALLOCATOR {
pub const KSMETHOD_STREAMALLOCATOR_ALLOC: Self = Self(0i32);
pub const KSMETHOD_STREAMALLOCATOR_FREE: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSMETHOD_STREAMALLOCATOR {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSMETHOD_STREAMALLOCATOR {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSMETHOD_STREAMIO(pub i32);
impl KSMETHOD_STREAMIO {
pub const KSMETHOD_STREAMIO_READ: Self = Self(0i32);
pub const KSMETHOD_STREAMIO_WRITE: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSMETHOD_STREAMIO {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSMETHOD_STREAMIO {
type Abi = Self;
}
pub const KSMETHOD_TYPE_BASICSUPPORT: u32 = 512u32;
pub const KSMETHOD_TYPE_MODIFY: u32 = 3u32;
pub const KSMETHOD_TYPE_NONE: u32 = 0u32;
pub const KSMETHOD_TYPE_READ: u32 = 1u32;
pub const KSMETHOD_TYPE_SEND: u32 = 1u32;
pub const KSMETHOD_TYPE_SETSUPPORT: u32 = 256u32;
pub const KSMETHOD_TYPE_SOURCE: u32 = 4u32;
pub const KSMETHOD_TYPE_TOPOLOGY: u32 = 268435456u32;
pub const KSMETHOD_TYPE_WRITE: u32 = 2u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSMETHOD_WAVETABLE(pub i32);
impl KSMETHOD_WAVETABLE {
pub const KSMETHOD_WAVETABLE_WAVE_ALLOC: Self = Self(0i32);
pub const KSMETHOD_WAVETABLE_WAVE_FREE: Self = Self(1i32);
pub const KSMETHOD_WAVETABLE_WAVE_FIND: Self = Self(2i32);
pub const KSMETHOD_WAVETABLE_WAVE_WRITE: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KSMETHOD_WAVETABLE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSMETHOD_WAVETABLE {
type Abi = Self;
}
pub const KSMETHOD_WAVE_QUEUED_BREAKLOOP: u32 = 1u32;
pub const KSMFT_CATEGORY_AUDIO_DECODER: ::windows::Guid = ::windows::Guid::from_values(
2661760948,
61306,
17753,
[141, 93, 113, 157, 143, 4, 38, 199],
);
pub const KSMFT_CATEGORY_AUDIO_EFFECT: ::windows::Guid = ::windows::Guid::from_values(
285625416,
13896,
20176,
[147, 46, 5, 206, 138, 200, 17, 183],
);
pub const KSMFT_CATEGORY_AUDIO_ENCODER: ::windows::Guid = ::windows::Guid::from_values(
2445691856,
63774,
19852,
[146, 118, 219, 36, 130, 121, 217, 117],
);
pub const KSMFT_CATEGORY_DEMULTIPLEXER: ::windows::Guid = ::windows::Guid::from_values(
2825915002,
37787,
17605,
[153, 215, 118, 34, 107, 35, 179, 241],
);
pub const KSMFT_CATEGORY_MULTIPLEXER: ::windows::Guid = ::windows::Guid::from_values(
94131742,
1454,
19297,
[182, 157, 85, 182, 30, 229, 74, 123],
);
pub const KSMFT_CATEGORY_OTHER: ::windows::Guid = ::windows::Guid::from_values(
2417450327,
47082,
18689,
[174, 179, 147, 58, 135, 71, 117, 111],
);
pub const KSMFT_CATEGORY_VIDEO_DECODER: ::windows::Guid = ::windows::Guid::from_values(
3602918731,
26675,
17844,
[151, 26, 5, 164, 176, 75, 171, 145],
);
pub const KSMFT_CATEGORY_VIDEO_EFFECT: ::windows::Guid = ::windows::Guid::from_values(
316767265,
21292,
19054,
[138, 28, 64, 130, 90, 115, 99, 151],
);
pub const KSMFT_CATEGORY_VIDEO_ENCODER: ::windows::Guid = ::windows::Guid::from_values(
4154371197,
58693,
17287,
[189, 238, 214, 71, 215, 189, 228, 42],
);
pub const KSMFT_CATEGORY_VIDEO_PROCESSOR: ::windows::Guid =
::windows::Guid::from_values(
808363004,
43615,
18425,
[159, 122, 194, 24, 139, 177, 99, 2],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSMICARRAY_MICARRAYTYPE(pub i32);
impl KSMICARRAY_MICARRAYTYPE {
pub const KSMICARRAY_MICARRAYTYPE_LINEAR: Self = Self(0i32);
pub const KSMICARRAY_MICARRAYTYPE_PLANAR: Self = Self(1i32);
pub const KSMICARRAY_MICARRAYTYPE_3D: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSMICARRAY_MICARRAYTYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSMICARRAY_MICARRAYTYPE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSMICARRAY_MICTYPE(pub i32);
impl KSMICARRAY_MICTYPE {
pub const KSMICARRAY_MICTYPE_OMNIDIRECTIONAL: Self = Self(0i32);
pub const KSMICARRAY_MICTYPE_SUBCARDIOID: Self = Self(1i32);
pub const KSMICARRAY_MICTYPE_CARDIOID: Self = Self(2i32);
pub const KSMICARRAY_MICTYPE_SUPERCARDIOID: Self = Self(3i32);
pub const KSMICARRAY_MICTYPE_HYPERCARDIOID: Self = Self(4i32);
pub const KSMICARRAY_MICTYPE_8SHAPED: Self = Self(5i32);
pub const KSMICARRAY_MICTYPE_VENDORDEFINED: Self = Self(15i32);
}
impl ::std::convert::From<i32> for KSMICARRAY_MICTYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSMICARRAY_MICTYPE {
type Abi = Self;
}
pub const KSMPEGVIDMODE_LTRBOX: u32 = 2u32;
pub const KSMPEGVIDMODE_PANSCAN: u32 = 1u32;
pub const KSMPEGVIDMODE_SCALE: u32 = 4u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSMPEGVID_RECT {
pub StartX: u32,
pub StartY: u32,
pub EndX: u32,
pub EndY: u32,
}
impl KSMPEGVID_RECT {}
impl ::std::default::Default for KSMPEGVID_RECT {
fn default() -> Self {
Self {
StartX: 0,
StartY: 0,
EndX: 0,
EndY: 0,
}
}
}
impl ::std::fmt::Debug for KSMPEGVID_RECT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSMPEGVID_RECT")
.field("StartX", &format_args!("{:?}", self.StartX))
.field("StartY", &format_args!("{:?}", self.StartY))
.field("EndX", &format_args!("{:?}", self.EndX))
.field("EndY", &format_args!("{:?}", self.EndY))
.finish()
}
}
impl ::std::cmp::PartialEq for KSMPEGVID_RECT {
fn eq(&self, other: &Self) -> bool {
self.StartX == other.StartX
&& self.StartY == other.StartY
&& self.EndX == other.EndX
&& self.EndY == other.EndY
}
}
impl ::std::cmp::Eq for KSMPEGVID_RECT {}
unsafe impl ::windows::Abi for KSMPEGVID_RECT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSMULTIPLE_ITEM {
pub Size: u32,
pub Count: u32,
}
impl KSMULTIPLE_ITEM {}
impl ::std::default::Default for KSMULTIPLE_ITEM {
fn default() -> Self {
Self { Size: 0, Count: 0 }
}
}
impl ::std::fmt::Debug for KSMULTIPLE_ITEM {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSMULTIPLE_ITEM")
.field("Size", &format_args!("{:?}", self.Size))
.field("Count", &format_args!("{:?}", self.Count))
.finish()
}
}
impl ::std::cmp::PartialEq for KSMULTIPLE_ITEM {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size && self.Count == other.Count
}
}
impl ::std::cmp::Eq for KSMULTIPLE_ITEM {}
unsafe impl ::windows::Abi for KSMULTIPLE_ITEM {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSMULTIPLE_DATA_PROP {
pub Property: KSIDENTIFIER,
pub MultipleItem: KSMULTIPLE_ITEM,
}
impl KSMULTIPLE_DATA_PROP {}
unsafe impl ::windows::Abi for KSMULTIPLE_DATA_PROP {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSMUSICFORMAT {
pub TimeDeltaMs: u32,
pub ByteCount: u32,
}
impl KSMUSICFORMAT {}
impl ::std::default::Default for KSMUSICFORMAT {
fn default() -> Self {
Self {
TimeDeltaMs: 0,
ByteCount: 0,
}
}
}
impl ::std::fmt::Debug for KSMUSICFORMAT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSMUSICFORMAT")
.field("TimeDeltaMs", &format_args!("{:?}", self.TimeDeltaMs))
.field("ByteCount", &format_args!("{:?}", self.ByteCount))
.finish()
}
}
impl ::std::cmp::PartialEq for KSMUSICFORMAT {
fn eq(&self, other: &Self) -> bool {
self.TimeDeltaMs == other.TimeDeltaMs && self.ByteCount == other.ByteCount
}
}
impl ::std::cmp::Eq for KSMUSICFORMAT {}
unsafe impl ::windows::Abi for KSMUSICFORMAT {
type Abi = Self;
}
pub const KSMUSIC_TECHNOLOGY_FMSYNTH: ::windows::Guid = ::windows::Guid::from_values(
623664256,
25321,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSMUSIC_TECHNOLOGY_PORT: ::windows::Guid = ::windows::Guid::from_values(
2261331552,
25320,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSMUSIC_TECHNOLOGY_SQSYNTH: ::windows::Guid = ::windows::Guid::from_values(
248464256,
25321,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSMUSIC_TECHNOLOGY_SWSYNTH: ::windows::Guid = ::windows::Guid::from_values(
926971702,
13856,
4561,
[133, 211, 0, 0, 248, 117, 67, 128],
);
pub const KSMUSIC_TECHNOLOGY_WAVETABLE: ::windows::Guid = ::windows::Guid::from_values(
961464256,
25321,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSM_NODE {
pub Method: KSIDENTIFIER,
pub NodeId: u32,
pub Reserved: u32,
}
impl KSM_NODE {}
unsafe impl ::windows::Abi for KSM_NODE {
type Abi = Self;
}
pub const KSNAME_Allocator: ::windows::Guid = ::windows::Guid::from_values(
1680825600,
18321,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSNAME_Clock: ::windows::Guid = ::windows::Guid::from_values(
1394025600,
18321,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSNAME_Filter: ::windows::Guid = ::windows::Guid::from_values(
2604030096,
5727,
4560,
[161, 149, 0, 32, 175, 209, 86, 228],
);
pub const KSNAME_Pin: ::windows::Guid = ::windows::Guid::from_values(
342825600,
18321,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSNAME_TopologyNode: ::windows::Guid = ::windows::Guid::from_values(
102827546,
61045,
4560,
[185, 21, 0, 160, 201, 34, 49, 150],
);
pub const KSNODEPIN_AEC_CAPTURE_IN: u32 = 2u32;
pub const KSNODEPIN_AEC_CAPTURE_OUT: u32 = 3u32;
pub const KSNODEPIN_AEC_RENDER_IN: u32 = 1u32;
pub const KSNODEPIN_AEC_RENDER_OUT: u32 = 0u32;
pub const KSNODEPIN_DEMUX_IN: u32 = 0u32;
pub const KSNODEPIN_DEMUX_OUT: u32 = 1u32;
pub const KSNODEPIN_STANDARD_IN: u32 = 1u32;
pub const KSNODEPIN_STANDARD_OUT: u32 = 0u32;
pub const KSNODEPIN_SUM_MUX_IN: u32 = 1u32;
pub const KSNODEPIN_SUM_MUX_OUT: u32 = 0u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSNODEPROPERTY {
pub Property: KSIDENTIFIER,
pub NodeId: u32,
pub Reserved: u32,
}
impl KSNODEPROPERTY {}
unsafe impl ::windows::Abi for KSNODEPROPERTY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSNODEPROPERTY_AUDIO_3D_LISTENER {
pub NodeProperty: KSNODEPROPERTY,
pub ListenerId: *mut ::std::ffi::c_void,
}
impl KSNODEPROPERTY_AUDIO_3D_LISTENER {}
unsafe impl ::windows::Abi for KSNODEPROPERTY_AUDIO_3D_LISTENER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSNODEPROPERTY_AUDIO_CHANNEL {
pub NodeProperty: KSNODEPROPERTY,
pub Channel: i32,
pub Reserved: u32,
}
impl KSNODEPROPERTY_AUDIO_CHANNEL {}
unsafe impl ::windows::Abi for KSNODEPROPERTY_AUDIO_CHANNEL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSNODEPROPERTY_AUDIO_DEV_SPECIFIC {
pub NodeProperty: KSNODEPROPERTY,
pub DevSpecificId: u32,
pub DeviceInfo: u32,
pub Length: u32,
}
impl KSNODEPROPERTY_AUDIO_DEV_SPECIFIC {}
unsafe impl ::windows::Abi for KSNODEPROPERTY_AUDIO_DEV_SPECIFIC {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSNODEPROPERTY_AUDIO_PROPERTY {
pub NodeProperty: KSNODEPROPERTY,
pub AppContext: *mut ::std::ffi::c_void,
pub Length: u32,
}
impl KSNODEPROPERTY_AUDIO_PROPERTY {}
unsafe impl ::windows::Abi for KSNODEPROPERTY_AUDIO_PROPERTY {
type Abi = Self;
}
pub const KSNODETYPE_1394_DA_STREAM: ::windows::Guid = ::windows::Guid::from_values(
3757187046,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_1394_DV_STREAM_SOUNDTRACK: ::windows::Guid =
::windows::Guid::from_values(
3757187047,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_3D_EFFECTS: ::windows::Guid = ::windows::Guid::from_values(
1431394400,
50521,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_ADC: ::windows::Guid = ::windows::Guid::from_values(
1300463584,
50517,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_AGC: ::windows::Guid = ::windows::Guid::from_values(
3901528992,
50519,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_ANALOG_CONNECTOR: ::windows::Guid = ::windows::Guid::from_values(
3757187041,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_ANALOG_TAPE: ::windows::Guid = ::windows::Guid::from_values(
3757187303,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_AUDIO_ENGINE: ::windows::Guid = ::windows::Guid::from_values(
902493924,
62387,
16744,
[187, 75, 85, 231, 122, 70, 28, 126],
);
pub const KSNODETYPE_AUDIO_KEYWORDDETECTOR: ::windows::Guid =
::windows::Guid::from_values(
941088952,
57176,
17269,
[182, 105, 196, 150, 52, 51, 31, 157],
);
pub const KSNODETYPE_AUDIO_LOOPBACK: ::windows::Guid = ::windows::Guid::from_values(
2403516594,
37326,
19407,
[156, 205, 14, 89, 144, 55, 171, 53],
);
pub const KSNODETYPE_BIDIRECTIONAL_UNDEFINED: ::windows::Guid =
::windows::Guid::from_values(
3757186528,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_CABLE_TUNER_AUDIO: ::windows::Guid = ::windows::Guid::from_values(
3757187310,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_CD_PLAYER: ::windows::Guid = ::windows::Guid::from_values(
3757187299,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_CHORUS: ::windows::Guid = ::windows::Guid::from_values(
538394400,
50521,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_COMMUNICATION_SPEAKER: ::windows::Guid =
::windows::Guid::from_values(
3757186278,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_DAC: ::windows::Guid = ::windows::Guid::from_values(
1350230880,
50516,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE: ::windows::Guid =
::windows::Guid::from_values(
3757187300,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE: ::windows::Guid =
::windows::Guid::from_values(
3757187301,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_DELAY: ::windows::Guid = ::windows::Guid::from_values(
340361696,
50520,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_DEMUX: ::windows::Guid = ::windows::Guid::from_values(
3236653012,
59399,
4560,
[149, 138, 0, 192, 79, 185, 37, 211],
);
pub const KSNODETYPE_DESKTOP_MICROPHONE: ::windows::Guid = ::windows::Guid::from_values(
3757186018,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_DESKTOP_SPEAKER: ::windows::Guid = ::windows::Guid::from_values(
3757186276,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_DEV_SPECIFIC: ::windows::Guid = ::windows::Guid::from_values(
2484894400,
50521,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_DIGITAL_AUDIO_INTERFACE: ::windows::Guid =
::windows::Guid::from_values(
3757187042,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_DISPLAYPORT_INTERFACE: ::windows::Guid =
::windows::Guid::from_values(
3833479217,
16038,
16781,
[143, 155, 183, 56, 67, 204, 186, 151],
);
pub const KSNODETYPE_DOWN_LINE_PHONE: ::windows::Guid = ::windows::Guid::from_values(
3757186787,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_DRM_DESCRAMBLE: ::windows::Guid = ::windows::Guid::from_values(
4290473535,
52478,
19844,
[144, 217, 66, 20, 24, 176, 58, 142],
);
pub const KSNODETYPE_DSS_AUDIO: ::windows::Guid = ::windows::Guid::from_values(
3757187311,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_DVD_AUDIO: ::windows::Guid = ::windows::Guid::from_values(
3757187307,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_DYN_RANGE_COMPRESSOR: ::windows::Guid =
::windows::Guid::from_values(
147367592,
24607,
19192,
[135, 147, 217, 5, 255, 76, 169, 125],
);
pub const KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE: ::windows::Guid =
::windows::Guid::from_values(
3757186533,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE: ::windows::Guid =
::windows::Guid::from_values(
3757186532,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_EMBEDDED_UNDEFINED: ::windows::Guid = ::windows::Guid::from_values(
3757187296,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_EQUALIZATION_NOISE: ::windows::Guid = ::windows::Guid::from_values(
3757187298,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_EQUALIZER: ::windows::Guid = ::windows::Guid::from_values(
2638328992,
50519,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_EXTERNAL_UNDEFINED: ::windows::Guid = ::windows::Guid::from_values(
3757187040,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_FM_RX: ::windows::Guid = ::windows::Guid::from_values(
2202694460,
62597,
16832,
[166, 43, 81, 48, 37, 1, 78, 64],
);
pub const KSNODETYPE_HANDSET: ::windows::Guid = ::windows::Guid::from_values(
3757186529,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_HDMI_INTERFACE: ::windows::Guid = ::windows::Guid::from_values(
3518614570,
62745,
16767,
[145, 201, 85, 250, 101, 72, 16, 1],
);
pub const KSNODETYPE_HEADPHONES: ::windows::Guid = ::windows::Guid::from_values(
3757186274,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_HEADSET: ::windows::Guid = ::windows::Guid::from_values(
3757186530,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
3757186275,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_INPUT_UNDEFINED: ::windows::Guid = ::windows::Guid::from_values(
3757186016,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_LEGACY_AUDIO_CONNECTOR: ::windows::Guid =
::windows::Guid::from_values(
3757187044,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE: ::windows::Guid =
::windows::Guid::from_values(
3757187297,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_LINE_CONNECTOR: ::windows::Guid = ::windows::Guid::from_values(
3757187043,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_LOUDNESS: ::windows::Guid = ::windows::Guid::from_values(
1099461696,
50520,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER: ::windows::Guid =
::windows::Guid::from_values(
3757186279,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_MICROPHONE: ::windows::Guid = ::windows::Guid::from_values(
3757186017,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_MICROPHONE_ARRAY: ::windows::Guid = ::windows::Guid::from_values(
3757186021,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_MIDI_ELEMENT: ::windows::Guid = ::windows::Guid::from_values(
29818470,
28232,
19557,
[172, 155, 82, 219, 93, 101, 108, 126],
);
pub const KSNODETYPE_MIDI_JACK: ::windows::Guid = ::windows::Guid::from_values(
643697727,
64057,
19955,
[171, 4, 190, 1, 185, 30, 41, 154],
);
pub const KSNODETYPE_MINIDISK: ::windows::Guid = ::windows::Guid::from_values(
3757187302,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_MULTITRACK_RECORDER: ::windows::Guid =
::windows::Guid::from_values(
3757187314,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_MUTE: ::windows::Guid = ::windows::Guid::from_values(
45228992,
50519,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_MUX: ::windows::Guid = ::windows::Guid::from_values(
753596288,
50518,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_NOISE_SUPPRESS: ::windows::Guid = ::windows::Guid::from_values(
3766456383,
25341,
20064,
[140, 221, 222, 167, 35, 102, 101, 181],
);
pub const KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE: ::windows::Guid =
::windows::Guid::from_values(
3757186020,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_OUTPUT_UNDEFINED: ::windows::Guid = ::windows::Guid::from_values(
3757186272,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_PARAMETRIC_EQUALIZER: ::windows::Guid =
::windows::Guid::from_values(
431700586,
52779,
17474,
[135, 236, 103, 39, 195, 202, 180, 119],
);
pub const KSNODETYPE_PEAKMETER: ::windows::Guid = ::windows::Guid::from_values(
2693096734,
24333,
19254,
[168, 105, 209, 149, 214, 171, 75, 158],
);
pub const KSNODETYPE_PERSONAL_MICROPHONE: ::windows::Guid =
::windows::Guid::from_values(
3757186019,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_PHONE_LINE: ::windows::Guid = ::windows::Guid::from_values(
3757186785,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_PHONOGRAPH: ::windows::Guid = ::windows::Guid::from_values(
3757187304,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_PROCESSING_MICROPHONE_ARRAY: ::windows::Guid =
::windows::Guid::from_values(
3757186022,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_PROLOGIC_DECODER: ::windows::Guid = ::windows::Guid::from_values(
2199661696,
50520,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_PROLOGIC_ENCODER: ::windows::Guid = ::windows::Guid::from_values(
2155136434,
15462,
4562,
[180, 90, 48, 120, 48, 44, 32, 48],
);
pub const KSNODETYPE_RADIO_RECEIVER: ::windows::Guid = ::windows::Guid::from_values(
3757187312,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_RADIO_TRANSMITTER: ::windows::Guid = ::windows::Guid::from_values(
3757187313,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_REVERB: ::windows::Guid = ::windows::Guid::from_values(
4009961696,
50520,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_ROOM_SPEAKER: ::windows::Guid = ::windows::Guid::from_values(
3757186277,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_SATELLITE_RECEIVER_AUDIO: ::windows::Guid =
::windows::Guid::from_values(
3757187309,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_SPDIF_INTERFACE: ::windows::Guid = ::windows::Guid::from_values(
3757187045,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_SPEAKER: ::windows::Guid = ::windows::Guid::from_values(
3757186273,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION: ::windows::Guid =
::windows::Guid::from_values(
3757186531,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_SPEAKERS_STATIC_JACK: ::windows::Guid =
::windows::Guid::from_values(
685789063,
19902,
20365,
[133, 137, 2, 93, 32, 157, 251, 74],
);
pub const KSNODETYPE_SRC: ::windows::Guid = ::windows::Guid::from_values(
2646063584,
50517,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_STEREO_WIDE: ::windows::Guid = ::windows::Guid::from_values(
2850461696,
50520,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_SUM: ::windows::Guid = ::windows::Guid::from_values(
3661896288,
50518,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_SUPERMIX: ::windows::Guid = ::windows::Guid::from_values(
3849563584,
50517,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_SYNTHESIZER: ::windows::Guid = ::windows::Guid::from_values(
3757187315,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_TELEPHONE: ::windows::Guid = ::windows::Guid::from_values(
3757186786,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_TELEPHONY_BIDI: ::windows::Guid = ::windows::Guid::from_values(
1752005824,
55555,
16984,
[180, 67, 58, 61, 53, 128, 116, 28],
);
pub const KSNODETYPE_TELEPHONY_UNDEFINED: ::windows::Guid =
::windows::Guid::from_values(
3757186784,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_TONE: ::windows::Guid = ::windows::Guid::from_values(
1980228992,
50519,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
pub const KSNODETYPE_TV_TUNER_AUDIO: ::windows::Guid = ::windows::Guid::from_values(
3757187308,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_UPDOWN_MIX: ::windows::Guid = ::windows::Guid::from_values(
3085813199,
31587,
20194,
[161, 0, 41, 238, 44, 182, 178, 222],
);
pub const KSNODETYPE_VCR_AUDIO: ::windows::Guid = ::windows::Guid::from_values(
3757187305,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_VIDEO_CAMERA_TERMINAL: ::windows::Guid =
::windows::Guid::from_values(
3757189606,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_VIDEO_DISC_AUDIO: ::windows::Guid = ::windows::Guid::from_values(
3757187306,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_VIDEO_INPUT_MTT: ::windows::Guid = ::windows::Guid::from_values(
3757189607,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_VIDEO_INPUT_TERMINAL: ::windows::Guid =
::windows::Guid::from_values(
3757189602,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_VIDEO_OUTPUT_MTT: ::windows::Guid = ::windows::Guid::from_values(
3757189608,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_VIDEO_OUTPUT_TERMINAL: ::windows::Guid =
::windows::Guid::from_values(
3757189603,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_VIDEO_PROCESSING: ::windows::Guid = ::windows::Guid::from_values(
3757189605,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_VIDEO_SELECTOR: ::windows::Guid = ::windows::Guid::from_values(
3757189604,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_VIDEO_STREAMING: ::windows::Guid = ::windows::Guid::from_values(
3757189601,
63247,
4560,
[185, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSNODETYPE_VOLUME: ::windows::Guid = ::windows::Guid::from_values(
979028992,
50519,
4560,
[138, 43, 0, 160, 201, 37, 90, 193],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSNODE_CREATE {
pub CreateFlags: u32,
pub Node: u32,
}
impl KSNODE_CREATE {}
impl ::std::default::Default for KSNODE_CREATE {
fn default() -> Self {
Self {
CreateFlags: 0,
Node: 0,
}
}
}
impl ::std::fmt::Debug for KSNODE_CREATE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSNODE_CREATE")
.field("CreateFlags", &format_args!("{:?}", self.CreateFlags))
.field("Node", &format_args!("{:?}", self.Node))
.finish()
}
}
impl ::std::cmp::PartialEq for KSNODE_CREATE {
fn eq(&self, other: &Self) -> bool {
self.CreateFlags == other.CreateFlags && self.Node == other.Node
}
}
impl ::std::cmp::Eq for KSNODE_CREATE {}
unsafe impl ::windows::Abi for KSNODE_CREATE {
type Abi = Self;
}
pub const KSNOTIFICATIONID_AudioModule: ::windows::Guid = ::windows::Guid::from_values(
2619482352,
55718,
19804,
[160, 54, 87, 56, 87, 253, 80, 210],
);
pub const KSNOTIFICATIONID_SoundDetector: ::windows::Guid =
::windows::Guid::from_values(
1669978180,
47922,
19532,
[168, 2, 244, 180, 183, 122, 254, 173],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPIN_CINSTANCES {
pub PossibleCount: u32,
pub CurrentCount: u32,
}
impl KSPIN_CINSTANCES {}
impl ::std::default::Default for KSPIN_CINSTANCES {
fn default() -> Self {
Self {
PossibleCount: 0,
CurrentCount: 0,
}
}
}
impl ::std::fmt::Debug for KSPIN_CINSTANCES {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPIN_CINSTANCES")
.field("PossibleCount", &format_args!("{:?}", self.PossibleCount))
.field("CurrentCount", &format_args!("{:?}", self.CurrentCount))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPIN_CINSTANCES {
fn eq(&self, other: &Self) -> bool {
self.PossibleCount == other.PossibleCount
&& self.CurrentCount == other.CurrentCount
}
}
impl ::std::cmp::Eq for KSPIN_CINSTANCES {}
unsafe impl ::windows::Abi for KSPIN_CINSTANCES {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPIN_COMMUNICATION(pub i32);
impl KSPIN_COMMUNICATION {
pub const KSPIN_COMMUNICATION_NONE: Self = Self(0i32);
pub const KSPIN_COMMUNICATION_SINK: Self = Self(1i32);
pub const KSPIN_COMMUNICATION_SOURCE: Self = Self(2i32);
pub const KSPIN_COMMUNICATION_BOTH: Self = Self(3i32);
pub const KSPIN_COMMUNICATION_BRIDGE: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KSPIN_COMMUNICATION {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPIN_COMMUNICATION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPRIORITY {
pub PriorityClass: u32,
pub PrioritySubClass: u32,
}
impl KSPRIORITY {}
impl ::std::default::Default for KSPRIORITY {
fn default() -> Self {
Self {
PriorityClass: 0,
PrioritySubClass: 0,
}
}
}
impl ::std::fmt::Debug for KSPRIORITY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPRIORITY")
.field("PriorityClass", &format_args!("{:?}", self.PriorityClass))
.field(
"PrioritySubClass",
&format_args!("{:?}", self.PrioritySubClass),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSPRIORITY {
fn eq(&self, other: &Self) -> bool {
self.PriorityClass == other.PriorityClass
&& self.PrioritySubClass == other.PrioritySubClass
}
}
impl ::std::cmp::Eq for KSPRIORITY {}
unsafe impl ::windows::Abi for KSPRIORITY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPIN_CONNECT {
pub Interface: KSIDENTIFIER,
pub Medium: KSIDENTIFIER,
pub PinId: u32,
pub PinToHandle: super::SystemServices::HANDLE,
pub Priority: KSPRIORITY,
}
impl KSPIN_CONNECT {}
unsafe impl ::windows::Abi for KSPIN_CONNECT {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPIN_DATAFLOW(pub i32);
impl KSPIN_DATAFLOW {
pub const KSPIN_DATAFLOW_IN: Self = Self(1i32);
pub const KSPIN_DATAFLOW_OUT: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSPIN_DATAFLOW {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPIN_DATAFLOW {
type Abi = Self;
}
pub const KSPIN_FLAG_ASYNCHRONOUS_PROCESSING: u32 = 8u32;
pub const KSPIN_FLAG_DENY_USERMODE_ACCESS: u32 = 2147483648u32;
pub const KSPIN_FLAG_DISTINCT_TRAILING_EDGE: u32 = 512u32;
pub const KSPIN_FLAG_DO_NOT_INITIATE_PROCESSING: u32 = 16u32;
pub const KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT: u32 = 524288u32;
pub const KSPIN_FLAG_ENFORCE_FIFO: u32 = 128u32;
pub const KSPIN_FLAG_FIXED_FORMAT: u32 = 1048576u32;
pub const KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING: u32 = 64u32;
pub const KSPIN_FLAG_GENERATE_EOS_EVENTS: u32 = 2097152u32;
pub const KSPIN_FLAG_GENERATE_MAPPINGS: u32 = 256u32;
pub const KSPIN_FLAG_IMPLEMENT_CLOCK: u32 = 4194304u32;
pub const KSPIN_FLAG_INITIATE_PROCESSING_ON_EVERY_ARRIVAL: u32 = 32u32;
pub const KSPIN_FLAG_PROCESS_IF_ANY_IN_RUN_STATE: u32 = 16777216u32;
pub const KSPIN_FLAG_PROCESS_IN_RUN_STATE_ONLY: u32 = 65536u32;
pub const KSPIN_FLAG_SOME_FRAMES_REQUIRED_FOR_PROCESSING: u32 = 8388608u32;
pub const KSPIN_FLAG_SPLITTER: u32 = 131072u32;
pub const KSPIN_FLAG_USE_STANDARD_TRANSPORT: u32 = 262144u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPIN_MDL_CACHING_EVENT(pub i32);
impl KSPIN_MDL_CACHING_EVENT {
pub const KSPIN_MDL_CACHING_NOTIFY_CLEANUP: Self = Self(0i32);
pub const KSPIN_MDL_CACHING_NOTIFY_CLEANALL_WAIT: Self = Self(1i32);
pub const KSPIN_MDL_CACHING_NOTIFY_CLEANALL_NOWAIT: Self = Self(2i32);
pub const KSPIN_MDL_CACHING_NOTIFY_ADDSAMPLE: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KSPIN_MDL_CACHING_EVENT {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPIN_MDL_CACHING_EVENT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPIN_MDL_CACHING_NOTIFICATION {
pub Event: KSPIN_MDL_CACHING_EVENT,
pub Buffer: *mut ::std::ffi::c_void,
}
impl KSPIN_MDL_CACHING_NOTIFICATION {}
impl ::std::default::Default for KSPIN_MDL_CACHING_NOTIFICATION {
fn default() -> Self {
Self {
Event: ::std::default::Default::default(),
Buffer: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for KSPIN_MDL_CACHING_NOTIFICATION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPIN_MDL_CACHING_NOTIFICATION")
.field("Event", &format_args!("{:?}", self.Event))
.field("Buffer", &format_args!("{:?}", self.Buffer))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPIN_MDL_CACHING_NOTIFICATION {
fn eq(&self, other: &Self) -> bool {
self.Event == other.Event && self.Buffer == other.Buffer
}
}
impl ::std::cmp::Eq for KSPIN_MDL_CACHING_NOTIFICATION {}
unsafe impl ::windows::Abi for KSPIN_MDL_CACHING_NOTIFICATION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPIN_MDL_CACHING_NOTIFICATION32 {
pub Event: KSPIN_MDL_CACHING_EVENT,
pub Buffer: u32,
}
impl KSPIN_MDL_CACHING_NOTIFICATION32 {}
impl ::std::default::Default for KSPIN_MDL_CACHING_NOTIFICATION32 {
fn default() -> Self {
Self {
Event: ::std::default::Default::default(),
Buffer: 0,
}
}
}
impl ::std::fmt::Debug for KSPIN_MDL_CACHING_NOTIFICATION32 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPIN_MDL_CACHING_NOTIFICATION32")
.field("Event", &format_args!("{:?}", self.Event))
.field("Buffer", &format_args!("{:?}", self.Buffer))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPIN_MDL_CACHING_NOTIFICATION32 {
fn eq(&self, other: &Self) -> bool {
self.Event == other.Event && self.Buffer == other.Buffer
}
}
impl ::std::cmp::Eq for KSPIN_MDL_CACHING_NOTIFICATION32 {}
unsafe impl ::windows::Abi for KSPIN_MDL_CACHING_NOTIFICATION32 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPIN_PHYSICALCONNECTION {
pub Size: u32,
pub Pin: u32,
pub SymbolicLinkName: [u16; 1],
}
impl KSPIN_PHYSICALCONNECTION {}
impl ::std::default::Default for KSPIN_PHYSICALCONNECTION {
fn default() -> Self {
Self {
Size: 0,
Pin: 0,
SymbolicLinkName: [0; 1],
}
}
}
impl ::std::fmt::Debug for KSPIN_PHYSICALCONNECTION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPIN_PHYSICALCONNECTION")
.field("Size", &format_args!("{:?}", self.Size))
.field("Pin", &format_args!("{:?}", self.Pin))
.field(
"SymbolicLinkName",
&format_args!("{:?}", self.SymbolicLinkName),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSPIN_PHYSICALCONNECTION {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.Pin == other.Pin
&& self.SymbolicLinkName == other.SymbolicLinkName
}
}
impl ::std::cmp::Eq for KSPIN_PHYSICALCONNECTION {}
unsafe impl ::windows::Abi for KSPIN_PHYSICALCONNECTION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPPROPERTY_ALLOCATOR_MDLCACHING(pub i32);
impl KSPPROPERTY_ALLOCATOR_MDLCACHING {
pub const KSPROPERTY_ALLOCATOR_CLEANUP_CACHEDMDLPAGES: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPPROPERTY_ALLOCATOR_MDLCACHING {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPPROPERTY_ALLOCATOR_MDLCACHING {
type Abi = Self;
}
pub const KSPRIORITY_EXCLUSIVE: u32 = 4294967295u32;
pub const KSPRIORITY_HIGH: u32 = 2147483648u32;
pub const KSPRIORITY_LOW: u32 = 1u32;
pub const KSPRIORITY_NORMAL: u32 = 1073741824u32;
pub const KSPROBE_ALLOCATEMDL: u32 = 16u32;
pub const KSPROBE_ALLOWFORMATCHANGE: u32 = 128u32;
pub const KSPROBE_MODIFY: u32 = 512u32;
pub const KSPROBE_PROBEANDLOCK: u32 = 32u32;
pub const KSPROBE_STREAMREAD: u32 = 0u32;
pub const KSPROBE_STREAMWRITE: u32 = 1u32;
pub const KSPROBE_SYSTEMADDRESS: u32 = 64u32;
pub const KSPROPERTYSETID_ExtendedCameraControl: ::windows::Guid =
::windows::Guid::from_values(
481792274,
49362,
16915,
[156, 166, 205, 79, 219, 146, 121, 114],
);
pub const KSPROPERTYSETID_NetworkCameraControl: ::windows::Guid =
::windows::Guid::from_values(
242749193,
22341,
20026,
[188, 159, 242, 38, 234, 67, 166, 236],
);
pub const KSPROPERTYSETID_PerFrameSettingControl: ::windows::Guid =
::windows::Guid::from_values(
4059292257,
57062,
17719,
[191, 245, 238, 32, 109, 181, 74, 172],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_AC3(pub i32);
impl KSPROPERTY_AC3 {
pub const KSPROPERTY_AC3_ERROR_CONCEALMENT: Self = Self(1i32);
pub const KSPROPERTY_AC3_ALTERNATE_AUDIO: Self = Self(2i32);
pub const KSPROPERTY_AC3_DOWNMIX: Self = Self(3i32);
pub const KSPROPERTY_AC3_BIT_STREAM_MODE: Self = Self(4i32);
pub const KSPROPERTY_AC3_DIALOGUE_LEVEL: Self = Self(5i32);
pub const KSPROPERTY_AC3_LANGUAGE_CODE: Self = Self(6i32);
pub const KSPROPERTY_AC3_ROOM_TYPE: Self = Self(7i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_AC3 {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_AC3 {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_ALLOCATOR_CONTROL(pub i32);
impl KSPROPERTY_ALLOCATOR_CONTROL {
pub const KSPROPERTY_ALLOCATOR_CONTROL_HONOR_COUNT: Self = Self(0i32);
pub const KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE: Self = Self(1i32);
pub const KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS: Self = Self(2i32);
pub const KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_ALLOCATOR_CONTROL {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_ALLOCATOR_CONTROL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S {
pub InterleavedCapSupported: u32,
}
impl KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S {}
impl ::std::default::Default for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S {
fn default() -> Self {
Self {
InterleavedCapSupported: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S")
.field(
"InterleavedCapSupported",
&format_args!("{:?}", self.InterleavedCapSupported),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S {
fn eq(&self, other: &Self) -> bool {
self.InterleavedCapSupported == other.InterleavedCapSupported
}
}
impl ::std::cmp::Eq for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S {
pub InterleavedCapPossible: u32,
}
impl KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S {}
impl ::std::default::Default for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S {
fn default() -> Self {
Self {
InterleavedCapPossible: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S")
.field(
"InterleavedCapPossible",
&format_args!("{:?}", self.InterleavedCapPossible),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S {
fn eq(&self, other: &Self) -> bool {
self.InterleavedCapPossible == other.InterleavedCapPossible
}
}
impl ::std::cmp::Eq for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S {
pub CX: u32,
pub CY: u32,
}
impl KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S {}
impl ::std::default::Default for KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S {
fn default() -> Self {
Self { CX: 0, CY: 0 }
}
}
impl ::std::fmt::Debug for KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S")
.field("CX", &format_args!("{:?}", self.CX))
.field("CY", &format_args!("{:?}", self.CY))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S {
fn eq(&self, other: &Self) -> bool {
self.CX == other.CX && self.CY == other.CY
}
}
impl ::std::cmp::Eq for KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_AUDDECOUT(pub i32);
impl KSPROPERTY_AUDDECOUT {
pub const KSPROPERTY_AUDDECOUT_MODES: Self = Self(0i32);
pub const KSPROPERTY_AUDDECOUT_CUR_MODE: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_AUDDECOUT {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_AUDDECOUT {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_AUDIO(pub i32);
impl KSPROPERTY_AUDIO {
pub const KSPROPERTY_AUDIO_LATENCY: Self = Self(1i32);
pub const KSPROPERTY_AUDIO_COPY_PROTECTION: Self = Self(2i32);
pub const KSPROPERTY_AUDIO_CHANNEL_CONFIG: Self = Self(3i32);
pub const KSPROPERTY_AUDIO_VOLUMELEVEL: Self = Self(4i32);
pub const KSPROPERTY_AUDIO_POSITION: Self = Self(5i32);
pub const KSPROPERTY_AUDIO_DYNAMIC_RANGE: Self = Self(6i32);
pub const KSPROPERTY_AUDIO_QUALITY: Self = Self(7i32);
pub const KSPROPERTY_AUDIO_SAMPLING_RATE: Self = Self(8i32);
pub const KSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE: Self = Self(9i32);
pub const KSPROPERTY_AUDIO_MIX_LEVEL_TABLE: Self = Self(10i32);
pub const KSPROPERTY_AUDIO_MIX_LEVEL_CAPS: Self = Self(11i32);
pub const KSPROPERTY_AUDIO_MUX_SOURCE: Self = Self(12i32);
pub const KSPROPERTY_AUDIO_MUTE: Self = Self(13i32);
pub const KSPROPERTY_AUDIO_BASS: Self = Self(14i32);
pub const KSPROPERTY_AUDIO_MID: Self = Self(15i32);
pub const KSPROPERTY_AUDIO_TREBLE: Self = Self(16i32);
pub const KSPROPERTY_AUDIO_BASS_BOOST: Self = Self(17i32);
pub const KSPROPERTY_AUDIO_EQ_LEVEL: Self = Self(18i32);
pub const KSPROPERTY_AUDIO_NUM_EQ_BANDS: Self = Self(19i32);
pub const KSPROPERTY_AUDIO_EQ_BANDS: Self = Self(20i32);
pub const KSPROPERTY_AUDIO_AGC: Self = Self(21i32);
pub const KSPROPERTY_AUDIO_DELAY: Self = Self(22i32);
pub const KSPROPERTY_AUDIO_LOUDNESS: Self = Self(23i32);
pub const KSPROPERTY_AUDIO_WIDE_MODE: Self = Self(24i32);
pub const KSPROPERTY_AUDIO_WIDENESS: Self = Self(25i32);
pub const KSPROPERTY_AUDIO_REVERB_LEVEL: Self = Self(26i32);
pub const KSPROPERTY_AUDIO_CHORUS_LEVEL: Self = Self(27i32);
pub const KSPROPERTY_AUDIO_DEV_SPECIFIC: Self = Self(28i32);
pub const KSPROPERTY_AUDIO_DEMUX_DEST: Self = Self(29i32);
pub const KSPROPERTY_AUDIO_STEREO_ENHANCE: Self = Self(30i32);
pub const KSPROPERTY_AUDIO_MANUFACTURE_GUID: Self = Self(31i32);
pub const KSPROPERTY_AUDIO_PRODUCT_GUID: Self = Self(32i32);
pub const KSPROPERTY_AUDIO_CPU_RESOURCES: Self = Self(33i32);
pub const KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY: Self = Self(34i32);
pub const KSPROPERTY_AUDIO_SURROUND_ENCODE: Self = Self(35i32);
pub const KSPROPERTY_AUDIO_3D_INTERFACE: Self = Self(36i32);
pub const KSPROPERTY_AUDIO_PEAKMETER: Self = Self(37i32);
pub const KSPROPERTY_AUDIO_ALGORITHM_INSTANCE: Self = Self(38i32);
pub const KSPROPERTY_AUDIO_FILTER_STATE: Self = Self(39i32);
pub const KSPROPERTY_AUDIO_PREFERRED_STATUS: Self = Self(40i32);
pub const KSPROPERTY_AUDIO_PEQ_MAX_BANDS: Self = Self(41i32);
pub const KSPROPERTY_AUDIO_PEQ_NUM_BANDS: Self = Self(42i32);
pub const KSPROPERTY_AUDIO_PEQ_BAND_CENTER_FREQ: Self = Self(43i32);
pub const KSPROPERTY_AUDIO_PEQ_BAND_Q_FACTOR: Self = Self(44i32);
pub const KSPROPERTY_AUDIO_PEQ_BAND_LEVEL: Self = Self(45i32);
pub const KSPROPERTY_AUDIO_CHORUS_MODULATION_RATE: Self = Self(46i32);
pub const KSPROPERTY_AUDIO_CHORUS_MODULATION_DEPTH: Self = Self(47i32);
pub const KSPROPERTY_AUDIO_REVERB_TIME: Self = Self(48i32);
pub const KSPROPERTY_AUDIO_REVERB_DELAY_FEEDBACK: Self = Self(49i32);
pub const KSPROPERTY_AUDIO_POSITIONEX: Self = Self(50i32);
pub const KSPROPERTY_AUDIO_MIC_ARRAY_GEOMETRY: Self = Self(51i32);
pub const KSPROPERTY_AUDIO_PRESENTATION_POSITION: Self = Self(52i32);
pub const KSPROPERTY_AUDIO_WAVERT_CURRENT_WRITE_POSITION: Self = Self(53i32);
pub const KSPROPERTY_AUDIO_LINEAR_BUFFER_POSITION: Self = Self(54i32);
pub const KSPROPERTY_AUDIO_PEAKMETER2: Self = Self(55i32);
pub const KSPROPERTY_AUDIO_WAVERT_CURRENT_WRITE_LASTBUFFER_POSITION: Self =
Self(56i32);
pub const KSPROPERTY_AUDIO_VOLUMELIMIT_ENGAGED: Self = Self(57i32);
pub const KSPROPERTY_AUDIO_MIC_SENSITIVITY: Self = Self(58i32);
pub const KSPROPERTY_AUDIO_MIC_SNR: Self = Self(59i32);
pub const KSPROPERTY_AUDIO_MIC_SENSITIVITY2: Self = Self(60i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_AUDIO {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_AUDIO {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_AUDIOENGINE(pub i32);
impl KSPROPERTY_AUDIOENGINE {
pub const KSPROPERTY_AUDIOENGINE_LFXENABLE: Self = Self(0i32);
pub const KSPROPERTY_AUDIOENGINE_GFXENABLE: Self = Self(1i32);
pub const KSPROPERTY_AUDIOENGINE_MIXFORMAT: Self = Self(2i32);
pub const KSPROPERTY_AUDIOENGINE_DEVICEFORMAT: Self = Self(4i32);
pub const KSPROPERTY_AUDIOENGINE_SUPPORTEDDEVICEFORMATS: Self = Self(5i32);
pub const KSPROPERTY_AUDIOENGINE_DESCRIPTOR: Self = Self(6i32);
pub const KSPROPERTY_AUDIOENGINE_BUFFER_SIZE_RANGE: Self = Self(7i32);
pub const KSPROPERTY_AUDIOENGINE_LOOPBACK_PROTECTION: Self = Self(8i32);
pub const KSPROPERTY_AUDIOENGINE_VOLUMELEVEL: Self = Self(9i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_AUDIOENGINE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_AUDIOENGINE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_AUDIOMODULE(pub i32);
impl KSPROPERTY_AUDIOMODULE {
pub const KSPROPERTY_AUDIOMODULE_DESCRIPTORS: Self = Self(1i32);
pub const KSPROPERTY_AUDIOMODULE_COMMAND: Self = Self(2i32);
pub const KSPROPERTY_AUDIOMODULE_NOTIFICATION_DEVICE_ID: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_AUDIOMODULE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_AUDIOMODULE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_AUDIOPOSTURE(pub i32);
impl KSPROPERTY_AUDIOPOSTURE {
pub const KSPROPERTY_AUDIOPOSTURE_DESCRIPTION: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_AUDIOPOSTURE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_AUDIOPOSTURE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_AUDIOSIGNALPROCESSING(pub i32);
impl KSPROPERTY_AUDIOSIGNALPROCESSING {
pub const KSPROPERTY_AUDIOSIGNALPROCESSING_MODES: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_AUDIOSIGNALPROCESSING {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_AUDIOSIGNALPROCESSING {
type Abi = Self;
}
pub const KSPROPERTY_AUDIO_BUFFER_DURATION: u32 = 1u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_BIBLIOGRAPHIC(pub i32);
impl KSPROPERTY_BIBLIOGRAPHIC {
pub const KSPROPERTY_BIBLIOGRAPHIC_LEADER: Self = Self(1380207648i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_LCCN: Self = Self(808529952i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_ISBN: Self = Self(808595488i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_ISSN: Self = Self(842149920i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_CATALOGINGSOURCE: Self = Self(808726560i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_MAINPERSONALNAME: Self = Self(808464672i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_MAINCORPORATEBODY: Self = Self(808530208i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_MAINMEETINGNAME: Self = Self(825307424i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_MAINUNIFORMTITLE: Self = Self(808661280i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_UNIFORMTITLE: Self = Self(808727072i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_TITLESTATEMENT: Self = Self(892613152i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_VARYINGFORMTITLE: Self = Self(909390368i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_PUBLICATION: Self = Self(808858144i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_PHYSICALDESCRIPTION: Self = Self(808465184i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTITLE: Self = Self(808727584i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENT: Self = Self(809055264i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_GENERALNOTE: Self = Self(808465696i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_BIBLIOGRAPHYNOTE: Self = Self(875574560i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_CONTENTSNOTE: Self = Self(892351776i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_CREATIONCREDIT: Self = Self(942683424i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_CITATION: Self = Self(808531232i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_PARTICIPANT: Self = Self(825308448i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_SUMMARY: Self = Self(808596768i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_TARGETAUDIENCE: Self = Self(825373984i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDFORMAVAILABLE: Self = Self(808662304i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_SYSTEMDETAILS: Self = Self(942880032i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_AWARDS: Self = Self(909653280i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYPERSONALNAME: Self =
Self(808465952i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTOPICALTERM: Self = Self(808793632i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYGEOGRAPHIC: Self = Self(825570848i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMGENRE: Self = Self(892679712i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMCURRICULUM: Self = Self(943011360i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYUNIFORMTITLE: Self =
Self(808662816i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYRELATED: Self = Self(808728352i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTPERSONALNAME: Self =
Self(808466464i32);
pub const KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTUNIFORMTITLE: Self =
Self(808663072i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_BIBLIOGRAPHIC {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_BIBLIOGRAPHIC {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSPROPERTY_BOUNDS_LONG {
pub Anonymous1: KSPROPERTY_BOUNDS_LONG_0,
pub Anonymous2: KSPROPERTY_BOUNDS_LONG_1,
}
impl KSPROPERTY_BOUNDS_LONG {}
unsafe impl ::windows::Abi for KSPROPERTY_BOUNDS_LONG {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_BOUNDS_LONG_0 {
pub SignedMinimum: i32,
pub SignedMaximum: i32,
}
impl KSPROPERTY_BOUNDS_LONG_0 {}
impl ::std::default::Default for KSPROPERTY_BOUNDS_LONG_0 {
fn default() -> Self {
Self {
SignedMinimum: 0,
SignedMaximum: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_BOUNDS_LONG_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous1_e__Struct")
.field("SignedMinimum", &format_args!("{:?}", self.SignedMinimum))
.field("SignedMaximum", &format_args!("{:?}", self.SignedMaximum))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_BOUNDS_LONG_0 {
fn eq(&self, other: &Self) -> bool {
self.SignedMinimum == other.SignedMinimum
&& self.SignedMaximum == other.SignedMaximum
}
}
impl ::std::cmp::Eq for KSPROPERTY_BOUNDS_LONG_0 {}
unsafe impl ::windows::Abi for KSPROPERTY_BOUNDS_LONG_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_BOUNDS_LONG_1 {
pub UnsignedMinimum: u32,
pub UnsignedMaximum: u32,
}
impl KSPROPERTY_BOUNDS_LONG_1 {}
impl ::std::default::Default for KSPROPERTY_BOUNDS_LONG_1 {
fn default() -> Self {
Self {
UnsignedMinimum: 0,
UnsignedMaximum: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_BOUNDS_LONG_1 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous2_e__Struct")
.field(
"UnsignedMinimum",
&format_args!("{:?}", self.UnsignedMinimum),
)
.field(
"UnsignedMaximum",
&format_args!("{:?}", self.UnsignedMaximum),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_BOUNDS_LONG_1 {
fn eq(&self, other: &Self) -> bool {
self.UnsignedMinimum == other.UnsignedMinimum
&& self.UnsignedMaximum == other.UnsignedMaximum
}
}
impl ::std::cmp::Eq for KSPROPERTY_BOUNDS_LONG_1 {}
unsafe impl ::windows::Abi for KSPROPERTY_BOUNDS_LONG_1 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSPROPERTY_BOUNDS_LONGLONG {
pub Anonymous1: KSPROPERTY_BOUNDS_LONGLONG_0,
pub Anonymous2: KSPROPERTY_BOUNDS_LONGLONG_1,
}
impl KSPROPERTY_BOUNDS_LONGLONG {}
unsafe impl ::windows::Abi for KSPROPERTY_BOUNDS_LONGLONG {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_BOUNDS_LONGLONG_0 {
pub SignedMinimum: i64,
pub SignedMaximum: i64,
}
impl KSPROPERTY_BOUNDS_LONGLONG_0 {}
impl ::std::default::Default for KSPROPERTY_BOUNDS_LONGLONG_0 {
fn default() -> Self {
Self {
SignedMinimum: 0,
SignedMaximum: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_BOUNDS_LONGLONG_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous1_e__Struct")
.field("SignedMinimum", &format_args!("{:?}", self.SignedMinimum))
.field("SignedMaximum", &format_args!("{:?}", self.SignedMaximum))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_BOUNDS_LONGLONG_0 {
fn eq(&self, other: &Self) -> bool {
self.SignedMinimum == other.SignedMinimum
&& self.SignedMaximum == other.SignedMaximum
}
}
impl ::std::cmp::Eq for KSPROPERTY_BOUNDS_LONGLONG_0 {}
unsafe impl ::windows::Abi for KSPROPERTY_BOUNDS_LONGLONG_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_BOUNDS_LONGLONG_1 {
pub UnsignedMinimum: u64,
pub UnsignedMaximum: u64,
}
impl KSPROPERTY_BOUNDS_LONGLONG_1 {}
impl ::std::default::Default for KSPROPERTY_BOUNDS_LONGLONG_1 {
fn default() -> Self {
Self {
UnsignedMinimum: 0,
UnsignedMaximum: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_BOUNDS_LONGLONG_1 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous2_e__Struct")
.field(
"UnsignedMinimum",
&format_args!("{:?}", self.UnsignedMinimum),
)
.field(
"UnsignedMaximum",
&format_args!("{:?}", self.UnsignedMaximum),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_BOUNDS_LONGLONG_1 {
fn eq(&self, other: &Self) -> bool {
self.UnsignedMinimum == other.UnsignedMinimum
&& self.UnsignedMaximum == other.UnsignedMaximum
}
}
impl ::std::cmp::Eq for KSPROPERTY_BOUNDS_LONGLONG_1 {}
unsafe impl ::windows::Abi for KSPROPERTY_BOUNDS_LONGLONG_1 {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_BTAUDIO(pub i32);
impl KSPROPERTY_BTAUDIO {
pub const KSPROPERTY_ONESHOT_RECONNECT: Self = Self(0i32);
pub const KSPROPERTY_ONESHOT_DISCONNECT: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_BTAUDIO {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_BTAUDIO {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY(pub i32);
impl KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY {
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE: Self = Self(0i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOFRAMERATE: Self = Self(1i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMAXFRAMERATE: Self = Self(2i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOTRIGGERTIME: Self = Self(3i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_WARMSTART: Self = Self(4i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_MAXVIDFPS_PHOTORES: Self = Self(5i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOTHUMBNAIL: Self = Self(6i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_SCENEMODE: Self = Self(7i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_TORCHMODE: Self = Self(8i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FLASHMODE: Self = Self(9i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_OPTIMIZATIONHINT: Self = Self(10i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_WHITEBALANCEMODE: Self = Self(11i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_EXPOSUREMODE: Self = Self(12i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FOCUSMODE: Self = Self(13i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ISO: Self = Self(14i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FIELDOFVIEW: Self = Self(15i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION: Self = Self(16i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_CAMERAANGLEOFFSET: Self = Self(17i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_METADATA: Self = Self(18i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FOCUSPRIORITY: Self = Self(19i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FOCUSSTATE: Self = Self(20i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_CONFIGCAPS: Self = Self(21i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL: Self = Self(22i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOCONFIRMATION: Self = Self(23i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ZOOM: Self = Self(24i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_MCC: Self = Self(25i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ISO_ADVANCED: Self = Self(26i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_VIDEOSTABILIZATION: Self = Self(27i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_VFR: Self = Self(28i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FACEDETECTION: Self = Self(29i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_VIDEOHDR: Self = Self(30i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_HISTOGRAM: Self = Self(31i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_OIS: Self = Self(32i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_ADVANCEDPHOTO: Self = Self(33i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_PROFILE: Self = Self(34i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE: Self = Self(35i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_SECURE_MODE: Self = Self(36i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_VIDEOTEMPORALDENOISING: Self =
Self(37i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_IRTORCHMODE: Self = Self(38i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_RELATIVEPANELOPTIMIZATION: Self =
Self(39i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_END: Self = Self(40i32);
pub const KSPROPERTY_CAMERACONTROL_EXTENDED_END2: Self = Self(40i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY {
type Abi = Self;
}
pub const KSPROPERTY_CAMERACONTROL_FLAGS_ABSOLUTE: i32 = 0i32;
pub const KSPROPERTY_CAMERACONTROL_FLAGS_ASYNCHRONOUS: i32 = 4i32;
pub const KSPROPERTY_CAMERACONTROL_FLAGS_AUTO: i32 = 1i32;
pub const KSPROPERTY_CAMERACONTROL_FLAGS_MANUAL: i32 = 2i32;
pub const KSPROPERTY_CAMERACONTROL_FLAGS_RELATIVE: i32 = 16i32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_CAMERACONTROL_FLASH(pub i32);
impl KSPROPERTY_CAMERACONTROL_FLASH {
pub const KSPROPERTY_CAMERACONTROL_FLASH_PROPERTY_ID: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_CAMERACONTROL_FLASH {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_FLASH {
type Abi = Self;
}
pub const KSPROPERTY_CAMERACONTROL_FLASH_AUTO: i32 = 2i32;
pub const KSPROPERTY_CAMERACONTROL_FLASH_FLAGS_AUTO: i32 = 1i32;
pub const KSPROPERTY_CAMERACONTROL_FLASH_FLAGS_MANUAL: i32 = 2i32;
pub const KSPROPERTY_CAMERACONTROL_FLASH_OFF: i32 = 0i32;
pub const KSPROPERTY_CAMERACONTROL_FLASH_ON: i32 = 1i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_FLASH_S {
pub Flash: u32,
pub Capabilities: u32,
}
impl KSPROPERTY_CAMERACONTROL_FLASH_S {}
impl ::std::default::Default for KSPROPERTY_CAMERACONTROL_FLASH_S {
fn default() -> Self {
Self {
Flash: 0,
Capabilities: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_CAMERACONTROL_FLASH_S {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_CAMERACONTROL_FLASH_S")
.field("Flash", &format_args!("{:?}", self.Flash))
.field("Capabilities", &format_args!("{:?}", self.Capabilities))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_CAMERACONTROL_FLASH_S {
fn eq(&self, other: &Self) -> bool {
self.Flash == other.Flash && self.Capabilities == other.Capabilities
}
}
impl ::std::cmp::Eq for KSPROPERTY_CAMERACONTROL_FLASH_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_FLASH_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S {
pub Property: KSIDENTIFIER,
pub lOcularFocalLength: i32,
pub lObjectiveFocalLengthMin: i32,
pub lObjectiveFocalLengthMax: i32,
}
impl KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY(pub i32);
impl KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY {
pub const KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_PROPERTY_ID: Self =
Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY {
type Abi = Self;
}
pub const KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_EXCLUSIVE_WITH_RECORD: i32 =
1i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S {
pub Capabilities: u32,
pub Reserved0: u32,
}
impl KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S {}
impl ::std::default::Default for KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S {
fn default() -> Self {
Self {
Capabilities: 0,
Reserved0: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S")
.field("Capabilities", &format_args!("{:?}", self.Capabilities))
.field("Reserved0", &format_args!("{:?}", self.Reserved0))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S {
fn eq(&self, other: &Self) -> bool {
self.Capabilities == other.Capabilities && self.Reserved0 == other.Reserved0
}
}
impl ::std::cmp::Eq for KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_S {
type Abi = Self;
}
pub const KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_SEQUENCE_EXCLUSIVE_WITH_RECORD : i32 = 2i32 ;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S {
pub NodeProperty: KSNODEPROPERTY,
pub lOcularFocalLength: i32,
pub lObjectiveFocalLengthMin: i32,
pub lObjectiveFocalLengthMax: i32,
}
impl KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSP_NODE {
pub Property: KSIDENTIFIER,
pub NodeId: u32,
pub Reserved: u32,
}
impl KSP_NODE {}
unsafe impl ::windows::Abi for KSP_NODE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_NODE_S {
pub NodeProperty: KSP_NODE,
pub Value: i32,
pub Flags: u32,
pub Capabilities: u32,
}
impl KSPROPERTY_CAMERACONTROL_NODE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_NODE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_NODE_S2 {
pub NodeProperty: KSP_NODE,
pub Value1: i32,
pub Flags: u32,
pub Capabilities: u32,
pub Value2: i32,
}
impl KSPROPERTY_CAMERACONTROL_NODE_S2 {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_NODE_S2 {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY(pub i32);
impl KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY {
pub const KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY: Self = Self(0i32);
pub const KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_SET: Self = Self(1i32);
pub const KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CLEAR: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST(pub i32);
impl KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST {
pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_PROPERTY_ID: Self =
Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST {
type Abi = Self;
}
pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_CONFIG_EXPOSURE: i32 = 512i32;
pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_CONFIG_FOCUS: i32 = 256i32;
pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_CONFIG_WB: i32 = 1024i32;
pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_CONVERGEMODE: i32 = 1073741824i32;
pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_FLAGS_ASYNC: i32 = -2147483648i32;
pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_FLAGS_AUTO: i32 = 1i32;
pub const KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_FLAGS_MANUAL: i32 = 2i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S {
pub FocusRect: super::DisplayDevices::RECT,
pub AutoFocusLock: super::SystemServices::BOOL,
pub AutoExposureLock: super::SystemServices::BOOL,
pub AutoWhitebalanceLock: super::SystemServices::BOOL,
pub Anonymous: KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S_0,
}
impl KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S_0 {
pub Capabilities: u32,
pub Configuration: u32,
}
impl KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S_0 {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_REGION_OF_INTEREST_S_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_S {
pub Property: KSIDENTIFIER,
pub Value: i32,
pub Flags: u32,
pub Capabilities: u32,
}
impl KSPROPERTY_CAMERACONTROL_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_S2 {
pub Property: KSIDENTIFIER,
pub Value1: i32,
pub Flags: u32,
pub Capabilities: u32,
pub Value2: i32,
}
impl KSPROPERTY_CAMERACONTROL_S2 {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_S2 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_S_EX {
pub Property: KSIDENTIFIER,
pub Value: i32,
pub Flags: u32,
pub Capabilities: u32,
pub FocusRect: super::DisplayDevices::RECT,
}
impl KSPROPERTY_CAMERACONTROL_S_EX {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_S_EX {
type Abi = Self;
}
pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_AUTO: i32 = 4i32;
pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_FLAGS_AUTO: i32 = 1i32;
pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_FLAGS_MANUAL: i32 = 2i32;
pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_HIGH: i32 = 1i32;
pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_LOW: i32 = 3i32;
pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_MEDIUM: i32 = 2i32;
pub const KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_OFF: i32 = 0i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S {
pub VideoStabilizationMode: u32,
pub Capabilities: u32,
}
impl KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S {}
impl ::std::default::Default for KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S {
fn default() -> Self {
Self {
VideoStabilizationMode: 0,
Capabilities: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S")
.field(
"VideoStabilizationMode",
&format_args!("{:?}", self.VideoStabilizationMode),
)
.field("Capabilities", &format_args!("{:?}", self.Capabilities))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S {
fn eq(&self, other: &Self) -> bool {
self.VideoStabilizationMode == other.VideoStabilizationMode
&& self.Capabilities == other.Capabilities
}
}
impl ::std::cmp::Eq for KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_VIDEOSTABILIZATION_MODE_S {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_CAMERACONTROL_VIDEO_STABILIZATION_MODE(pub i32);
impl KSPROPERTY_CAMERACONTROL_VIDEO_STABILIZATION_MODE {
pub const KSPROPERTY_CAMERACONTROL_VIDEO_STABILIZATION_MODE_PROPERTY_ID: Self =
Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_CAMERACONTROL_VIDEO_STABILIZATION_MODE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERACONTROL_VIDEO_STABILIZATION_MODE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_FLAGS(pub i32);
impl KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_FLAGS {
pub const KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_CLEAR: Self = Self(0i32);
pub const KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_SET: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_FLAGS {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_CAMERA_PHOTOTRIGGERTIME_FLAGS {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_CLOCK(pub i32);
impl KSPROPERTY_CLOCK {
pub const KSPROPERTY_CLOCK_TIME: Self = Self(0i32);
pub const KSPROPERTY_CLOCK_PHYSICALTIME: Self = Self(1i32);
pub const KSPROPERTY_CLOCK_CORRELATEDTIME: Self = Self(2i32);
pub const KSPROPERTY_CLOCK_CORRELATEDPHYSICALTIME: Self = Self(3i32);
pub const KSPROPERTY_CLOCK_RESOLUTION: Self = Self(4i32);
pub const KSPROPERTY_CLOCK_STATE: Self = Self(5i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_CLOCK {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_CLOCK {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_CONNECTION(pub i32);
impl KSPROPERTY_CONNECTION {
pub const KSPROPERTY_CONNECTION_STATE: Self = Self(0i32);
pub const KSPROPERTY_CONNECTION_PRIORITY: Self = Self(1i32);
pub const KSPROPERTY_CONNECTION_DATAFORMAT: Self = Self(2i32);
pub const KSPROPERTY_CONNECTION_ALLOCATORFRAMING: Self = Self(3i32);
pub const KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT: Self = Self(4i32);
pub const KSPROPERTY_CONNECTION_ACQUIREORDERING: Self = Self(5i32);
pub const KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX: Self = Self(6i32);
pub const KSPROPERTY_CONNECTION_STARTAT: Self = Self(7i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_CONNECTION {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_CONNECTION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_COPYPROT(pub i32);
impl KSPROPERTY_COPYPROT {
pub const KSPROPERTY_DVDCOPY_CHLG_KEY: Self = Self(1i32);
pub const KSPROPERTY_DVDCOPY_DVD_KEY1: Self = Self(2i32);
pub const KSPROPERTY_DVDCOPY_DEC_KEY2: Self = Self(3i32);
pub const KSPROPERTY_DVDCOPY_TITLE_KEY: Self = Self(4i32);
pub const KSPROPERTY_COPY_MACROVISION: Self = Self(5i32);
pub const KSPROPERTY_DVDCOPY_REGION: Self = Self(6i32);
pub const KSPROPERTY_DVDCOPY_SET_COPY_STATE: Self = Self(7i32);
pub const KSPROPERTY_DVDCOPY_DISC_KEY: Self = Self(128i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_COPYPROT {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_COPYPROT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CROSSBAR_ACTIVE_S {
pub Property: KSIDENTIFIER,
pub IndexInputPin: u32,
pub Active: u32,
}
impl KSPROPERTY_CROSSBAR_ACTIVE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CROSSBAR_ACTIVE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CROSSBAR_CAPS_S {
pub Property: KSIDENTIFIER,
pub NumberOfInputs: u32,
pub NumberOfOutputs: u32,
}
impl KSPROPERTY_CROSSBAR_CAPS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CROSSBAR_CAPS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CROSSBAR_PININFO_S {
pub Property: KSIDENTIFIER,
pub Direction: KSPIN_DATAFLOW,
pub Index: u32,
pub PinType: u32,
pub RelatedPinIndex: u32,
pub Medium: KSIDENTIFIER,
}
impl KSPROPERTY_CROSSBAR_PININFO_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CROSSBAR_PININFO_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_CROSSBAR_ROUTE_S {
pub Property: KSIDENTIFIER,
pub IndexInputPin: u32,
pub IndexOutputPin: u32,
pub CanRoute: u32,
}
impl KSPROPERTY_CROSSBAR_ROUTE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_CROSSBAR_ROUTE_S {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_CYCLIC(pub i32);
impl KSPROPERTY_CYCLIC {
pub const KSPROPERTY_CYCLIC_POSITION: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_CYCLIC {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_CYCLIC {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_DESCRIPTION {
pub AccessFlags: u32,
pub DescriptionSize: u32,
pub PropTypeSet: KSIDENTIFIER,
pub MembersListCount: u32,
pub Reserved: u32,
}
impl KSPROPERTY_DESCRIPTION {}
unsafe impl ::windows::Abi for KSPROPERTY_DESCRIPTION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_DIRECTSOUND3DBUFFER(pub i32);
impl KSPROPERTY_DIRECTSOUND3DBUFFER {
pub const KSPROPERTY_DIRECTSOUND3DBUFFER_ALL: Self = Self(0i32);
pub const KSPROPERTY_DIRECTSOUND3DBUFFER_POSITION: Self = Self(1i32);
pub const KSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY: Self = Self(2i32);
pub const KSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES: Self = Self(3i32);
pub const KSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION: Self = Self(4i32);
pub const KSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME: Self = Self(5i32);
pub const KSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE: Self = Self(6i32);
pub const KSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE: Self = Self(7i32);
pub const KSPROPERTY_DIRECTSOUND3DBUFFER_MODE: Self = Self(8i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_DIRECTSOUND3DBUFFER {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_DIRECTSOUND3DBUFFER {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_DIRECTSOUND3DLISTENER(pub i32);
impl KSPROPERTY_DIRECTSOUND3DLISTENER {
pub const KSPROPERTY_DIRECTSOUND3DLISTENER_ALL: Self = Self(0i32);
pub const KSPROPERTY_DIRECTSOUND3DLISTENER_POSITION: Self = Self(1i32);
pub const KSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY: Self = Self(2i32);
pub const KSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION: Self = Self(3i32);
pub const KSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR: Self = Self(4i32);
pub const KSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR: Self = Self(5i32);
pub const KSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR: Self = Self(6i32);
pub const KSPROPERTY_DIRECTSOUND3DLISTENER_BATCH: Self = Self(7i32);
pub const KSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION: Self = Self(8i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_DIRECTSOUND3DLISTENER {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_DIRECTSOUND3DLISTENER {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_DRMAUDIOSTREAM(pub i32);
impl KSPROPERTY_DRMAUDIOSTREAM {
pub const KSPROPERTY_DRMAUDIOSTREAM_CONTENTID: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_DRMAUDIOSTREAM {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_DRMAUDIOSTREAM {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_DROPPEDFRAMES_CURRENT_S {
pub Property: KSIDENTIFIER,
pub PictureNumber: i64,
pub DropCount: i64,
pub AverageFrameSize: u32,
}
impl KSPROPERTY_DROPPEDFRAMES_CURRENT_S {}
unsafe impl ::windows::Abi for KSPROPERTY_DROPPEDFRAMES_CURRENT_S {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_DVDSUBPIC(pub i32);
impl KSPROPERTY_DVDSUBPIC {
pub const KSPROPERTY_DVDSUBPIC_PALETTE: Self = Self(0i32);
pub const KSPROPERTY_DVDSUBPIC_HLI: Self = Self(1i32);
pub const KSPROPERTY_DVDSUBPIC_COMPOSIT_ON: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_DVDSUBPIC {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_DVDSUBPIC {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_EXTDEVICE(pub i32);
impl KSPROPERTY_EXTDEVICE {
pub const KSPROPERTY_EXTDEVICE_ID: Self = Self(0i32);
pub const KSPROPERTY_EXTDEVICE_VERSION: Self = Self(1i32);
pub const KSPROPERTY_EXTDEVICE_POWER_STATE: Self = Self(2i32);
pub const KSPROPERTY_EXTDEVICE_PORT: Self = Self(3i32);
pub const KSPROPERTY_EXTDEVICE_CAPABILITIES: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_EXTDEVICE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_EXTDEVICE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_EXTDEVICE_S {
pub Property: KSIDENTIFIER,
pub u: KSPROPERTY_EXTDEVICE_S_0,
}
impl KSPROPERTY_EXTDEVICE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_EXTDEVICE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSPROPERTY_EXTDEVICE_S_0 {
pub Capabilities: DEVCAPS,
pub DevPort: u32,
pub PowerState: u32,
pub pawchString: [u16; 260],
pub NodeUniqueID: [u32; 2],
}
impl KSPROPERTY_EXTDEVICE_S_0 {}
unsafe impl ::windows::Abi for KSPROPERTY_EXTDEVICE_S_0 {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_EXTENSION_UNIT(pub i32);
impl KSPROPERTY_EXTENSION_UNIT {
pub const KSPROPERTY_EXTENSION_UNIT_INFO: Self = Self(0i32);
pub const KSPROPERTY_EXTENSION_UNIT_CONTROL: Self = Self(1i32);
pub const KSPROPERTY_EXTENSION_UNIT_PASS_THROUGH: Self = Self(65535i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_EXTENSION_UNIT {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_EXTENSION_UNIT {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_EXTXPORT(pub i32);
impl KSPROPERTY_EXTXPORT {
pub const KSPROPERTY_EXTXPORT_CAPABILITIES: Self = Self(0i32);
pub const KSPROPERTY_EXTXPORT_INPUT_SIGNAL_MODE: Self = Self(1i32);
pub const KSPROPERTY_EXTXPORT_OUTPUT_SIGNAL_MODE: Self = Self(2i32);
pub const KSPROPERTY_EXTXPORT_LOAD_MEDIUM: Self = Self(3i32);
pub const KSPROPERTY_EXTXPORT_MEDIUM_INFO: Self = Self(4i32);
pub const KSPROPERTY_EXTXPORT_STATE: Self = Self(5i32);
pub const KSPROPERTY_EXTXPORT_STATE_NOTIFY: Self = Self(6i32);
pub const KSPROPERTY_EXTXPORT_TIMECODE_SEARCH: Self = Self(7i32);
pub const KSPROPERTY_EXTXPORT_ATN_SEARCH: Self = Self(8i32);
pub const KSPROPERTY_EXTXPORT_RTC_SEARCH: Self = Self(9i32);
pub const KSPROPERTY_RAW_AVC_CMD: Self = Self(10i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_EXTXPORT {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_EXTXPORT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MEDIUM_INFO {
pub MediaPresent: super::SystemServices::BOOL,
pub MediaType: u32,
pub RecordInhibit: super::SystemServices::BOOL,
}
impl MEDIUM_INFO {}
impl ::std::default::Default for MEDIUM_INFO {
fn default() -> Self {
Self {
MediaPresent: ::std::default::Default::default(),
MediaType: 0,
RecordInhibit: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for MEDIUM_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("MEDIUM_INFO")
.field("MediaPresent", &format_args!("{:?}", self.MediaPresent))
.field("MediaType", &format_args!("{:?}", self.MediaType))
.field("RecordInhibit", &format_args!("{:?}", self.RecordInhibit))
.finish()
}
}
impl ::std::cmp::PartialEq for MEDIUM_INFO {
fn eq(&self, other: &Self) -> bool {
self.MediaPresent == other.MediaPresent
&& self.MediaType == other.MediaType
&& self.RecordInhibit == other.RecordInhibit
}
}
impl ::std::cmp::Eq for MEDIUM_INFO {}
unsafe impl ::windows::Abi for MEDIUM_INFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct TRANSPORT_STATE {
pub Mode: u32,
pub State: u32,
}
impl TRANSPORT_STATE {}
impl ::std::default::Default for TRANSPORT_STATE {
fn default() -> Self {
Self { Mode: 0, State: 0 }
}
}
impl ::std::fmt::Debug for TRANSPORT_STATE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("TRANSPORT_STATE")
.field("Mode", &format_args!("{:?}", self.Mode))
.field("State", &format_args!("{:?}", self.State))
.finish()
}
}
impl ::std::cmp::PartialEq for TRANSPORT_STATE {
fn eq(&self, other: &Self) -> bool {
self.Mode == other.Mode && self.State == other.State
}
}
impl ::std::cmp::Eq for TRANSPORT_STATE {}
unsafe impl ::windows::Abi for TRANSPORT_STATE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_EXTXPORT_NODE_S {
pub NodeProperty: KSP_NODE,
pub u: KSPROPERTY_EXTXPORT_NODE_S_0,
}
impl KSPROPERTY_EXTXPORT_NODE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_EXTXPORT_NODE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSPROPERTY_EXTXPORT_NODE_S_0 {
pub Capabilities: u32,
pub SignalMode: u32,
pub LoadMedium: u32,
pub MediumInfo: MEDIUM_INFO,
pub XPrtState: TRANSPORT_STATE,
pub Timecode: KSPROPERTY_EXTXPORT_NODE_S_0_1,
pub dwTimecode: u32,
pub dwAbsTrackNumber: u32,
pub RawAVC: KSPROPERTY_EXTXPORT_NODE_S_0_0,
}
impl KSPROPERTY_EXTXPORT_NODE_S_0 {}
unsafe impl ::windows::Abi for KSPROPERTY_EXTXPORT_NODE_S_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_EXTXPORT_NODE_S_0_0 {
pub PayloadSize: u32,
pub Payload: [u8; 512],
}
impl KSPROPERTY_EXTXPORT_NODE_S_0_0 {}
impl ::std::default::Default for KSPROPERTY_EXTXPORT_NODE_S_0_0 {
fn default() -> Self {
Self {
PayloadSize: 0,
Payload: [0; 512],
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_EXTXPORT_NODE_S_0_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_RawAVC_e__Struct")
.field("PayloadSize", &format_args!("{:?}", self.PayloadSize))
.field("Payload", &format_args!("{:?}", self.Payload))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_EXTXPORT_NODE_S_0_0 {
fn eq(&self, other: &Self) -> bool {
self.PayloadSize == other.PayloadSize && self.Payload == other.Payload
}
}
impl ::std::cmp::Eq for KSPROPERTY_EXTXPORT_NODE_S_0_0 {}
unsafe impl ::windows::Abi for KSPROPERTY_EXTXPORT_NODE_S_0_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_EXTXPORT_NODE_S_0_1 {
pub frame: u8,
pub second: u8,
pub minute: u8,
pub hour: u8,
}
impl KSPROPERTY_EXTXPORT_NODE_S_0_1 {}
impl ::std::default::Default for KSPROPERTY_EXTXPORT_NODE_S_0_1 {
fn default() -> Self {
Self {
frame: 0,
second: 0,
minute: 0,
hour: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_EXTXPORT_NODE_S_0_1 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Timecode_e__Struct")
.field("frame", &format_args!("{:?}", self.frame))
.field("second", &format_args!("{:?}", self.second))
.field("minute", &format_args!("{:?}", self.minute))
.field("hour", &format_args!("{:?}", self.hour))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_EXTXPORT_NODE_S_0_1 {
fn eq(&self, other: &Self) -> bool {
self.frame == other.frame
&& self.second == other.second
&& self.minute == other.minute
&& self.hour == other.hour
}
}
impl ::std::cmp::Eq for KSPROPERTY_EXTXPORT_NODE_S_0_1 {}
unsafe impl ::windows::Abi for KSPROPERTY_EXTXPORT_NODE_S_0_1 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_EXTXPORT_S {
pub Property: KSIDENTIFIER,
pub u: KSPROPERTY_EXTXPORT_S_0,
}
impl KSPROPERTY_EXTXPORT_S {}
unsafe impl ::windows::Abi for KSPROPERTY_EXTXPORT_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSPROPERTY_EXTXPORT_S_0 {
pub Capabilities: u32,
pub SignalMode: u32,
pub LoadMedium: u32,
pub MediumInfo: MEDIUM_INFO,
pub XPrtState: TRANSPORT_STATE,
pub Timecode: KSPROPERTY_EXTXPORT_S_0_1,
pub dwTimecode: u32,
pub dwAbsTrackNumber: u32,
pub RawAVC: KSPROPERTY_EXTXPORT_S_0_0,
}
impl KSPROPERTY_EXTXPORT_S_0 {}
unsafe impl ::windows::Abi for KSPROPERTY_EXTXPORT_S_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_EXTXPORT_S_0_0 {
pub PayloadSize: u32,
pub Payload: [u8; 512],
}
impl KSPROPERTY_EXTXPORT_S_0_0 {}
impl ::std::default::Default for KSPROPERTY_EXTXPORT_S_0_0 {
fn default() -> Self {
Self {
PayloadSize: 0,
Payload: [0; 512],
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_EXTXPORT_S_0_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_RawAVC_e__Struct")
.field("PayloadSize", &format_args!("{:?}", self.PayloadSize))
.field("Payload", &format_args!("{:?}", self.Payload))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_EXTXPORT_S_0_0 {
fn eq(&self, other: &Self) -> bool {
self.PayloadSize == other.PayloadSize && self.Payload == other.Payload
}
}
impl ::std::cmp::Eq for KSPROPERTY_EXTXPORT_S_0_0 {}
unsafe impl ::windows::Abi for KSPROPERTY_EXTXPORT_S_0_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_EXTXPORT_S_0_1 {
pub frame: u8,
pub second: u8,
pub minute: u8,
pub hour: u8,
}
impl KSPROPERTY_EXTXPORT_S_0_1 {}
impl ::std::default::Default for KSPROPERTY_EXTXPORT_S_0_1 {
fn default() -> Self {
Self {
frame: 0,
second: 0,
minute: 0,
hour: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_EXTXPORT_S_0_1 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Timecode_e__Struct")
.field("frame", &format_args!("{:?}", self.frame))
.field("second", &format_args!("{:?}", self.second))
.field("minute", &format_args!("{:?}", self.minute))
.field("hour", &format_args!("{:?}", self.hour))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_EXTXPORT_S_0_1 {
fn eq(&self, other: &Self) -> bool {
self.frame == other.frame
&& self.second == other.second
&& self.minute == other.minute
&& self.hour == other.hour
}
}
impl ::std::cmp::Eq for KSPROPERTY_EXTXPORT_S_0_1 {}
unsafe impl ::windows::Abi for KSPROPERTY_EXTXPORT_S_0_1 {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_FMRX_CONTROL(pub i32);
impl KSPROPERTY_FMRX_CONTROL {
pub const KSPROPERTY_FMRX_STATE: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_FMRX_CONTROL {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_FMRX_CONTROL {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_FMRX_TOPOLOGY(pub i32);
impl KSPROPERTY_FMRX_TOPOLOGY {
pub const KSPROPERTY_FMRX_ENDPOINTID: Self = Self(0i32);
pub const KSPROPERTY_FMRX_VOLUME: Self = Self(1i32);
pub const KSPROPERTY_FMRX_ANTENNAENDPOINTID: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_FMRX_TOPOLOGY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_FMRX_TOPOLOGY {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_GENERAL(pub i32);
impl KSPROPERTY_GENERAL {
pub const KSPROPERTY_GENERAL_COMPONENTID: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_GENERAL {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_GENERAL {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_HRTF3D(pub i32);
impl KSPROPERTY_HRTF3D {
pub const KSPROPERTY_HRTF3D_PARAMS: Self = Self(0i32);
pub const KSPROPERTY_HRTF3D_INITIALIZE: Self = Self(1i32);
pub const KSPROPERTY_HRTF3D_FILTER_FORMAT: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_HRTF3D {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_HRTF3D {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_INTERLEAVEDAUDIO(pub i32);
impl KSPROPERTY_INTERLEAVEDAUDIO {
pub const KSPROPERTY_INTERLEAVEDAUDIO_FORMATINFORMATION: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_INTERLEAVEDAUDIO {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_INTERLEAVEDAUDIO {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_ITD3D(pub i32);
impl KSPROPERTY_ITD3D {
pub const KSPROPERTY_ITD3D_PARAMS: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_ITD3D {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_ITD3D {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_JACK(pub i32);
impl KSPROPERTY_JACK {
pub const KSPROPERTY_JACK_DESCRIPTION: Self = Self(1i32);
pub const KSPROPERTY_JACK_DESCRIPTION2: Self = Self(2i32);
pub const KSPROPERTY_JACK_SINK_INFO: Self = Self(3i32);
pub const KSPROPERTY_JACK_CONTAINERID: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_JACK {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_JACK {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_MEDIAAVAILABLE {
pub Earliest: i64,
pub Latest: i64,
}
impl KSPROPERTY_MEDIAAVAILABLE {}
impl ::std::default::Default for KSPROPERTY_MEDIAAVAILABLE {
fn default() -> Self {
Self {
Earliest: 0,
Latest: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_MEDIAAVAILABLE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_MEDIAAVAILABLE")
.field("Earliest", &format_args!("{:?}", self.Earliest))
.field("Latest", &format_args!("{:?}", self.Latest))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_MEDIAAVAILABLE {
fn eq(&self, other: &Self) -> bool {
self.Earliest == other.Earliest && self.Latest == other.Latest
}
}
impl ::std::cmp::Eq for KSPROPERTY_MEDIAAVAILABLE {}
unsafe impl ::windows::Abi for KSPROPERTY_MEDIAAVAILABLE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_MEDIASEEKING(pub i32);
impl KSPROPERTY_MEDIASEEKING {
pub const KSPROPERTY_MEDIASEEKING_CAPABILITIES: Self = Self(0i32);
pub const KSPROPERTY_MEDIASEEKING_FORMATS: Self = Self(1i32);
pub const KSPROPERTY_MEDIASEEKING_TIMEFORMAT: Self = Self(2i32);
pub const KSPROPERTY_MEDIASEEKING_POSITION: Self = Self(3i32);
pub const KSPROPERTY_MEDIASEEKING_STOPPOSITION: Self = Self(4i32);
pub const KSPROPERTY_MEDIASEEKING_POSITIONS: Self = Self(5i32);
pub const KSPROPERTY_MEDIASEEKING_DURATION: Self = Self(6i32);
pub const KSPROPERTY_MEDIASEEKING_AVAILABLE: Self = Self(7i32);
pub const KSPROPERTY_MEDIASEEKING_PREROLL: Self = Self(8i32);
pub const KSPROPERTY_MEDIASEEKING_CONVERTTIMEFORMAT: Self = Self(9i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_MEDIASEEKING {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_MEDIASEEKING {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_MEMBERSHEADER {
pub MembersFlags: u32,
pub MembersSize: u32,
pub MembersCount: u32,
pub Flags: u32,
}
impl KSPROPERTY_MEMBERSHEADER {}
impl ::std::default::Default for KSPROPERTY_MEMBERSHEADER {
fn default() -> Self {
Self {
MembersFlags: 0,
MembersSize: 0,
MembersCount: 0,
Flags: 0,
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_MEMBERSHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_MEMBERSHEADER")
.field("MembersFlags", &format_args!("{:?}", self.MembersFlags))
.field("MembersSize", &format_args!("{:?}", self.MembersSize))
.field("MembersCount", &format_args!("{:?}", self.MembersCount))
.field("Flags", &format_args!("{:?}", self.Flags))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_MEMBERSHEADER {
fn eq(&self, other: &Self) -> bool {
self.MembersFlags == other.MembersFlags
&& self.MembersSize == other.MembersSize
&& self.MembersCount == other.MembersCount
&& self.Flags == other.Flags
}
}
impl ::std::cmp::Eq for KSPROPERTY_MEMBERSHEADER {}
unsafe impl ::windows::Abi for KSPROPERTY_MEMBERSHEADER {
type Abi = Self;
}
pub const KSPROPERTY_MEMBER_FLAG_BASICSUPPORT_MULTICHANNEL: u32 = 2u32;
pub const KSPROPERTY_MEMBER_FLAG_BASICSUPPORT_UNIFORM: u32 = 4u32;
pub const KSPROPERTY_MEMBER_FLAG_DEFAULT: u32 = 1u32;
pub const KSPROPERTY_MEMBER_RANGES: u32 = 1u32;
pub const KSPROPERTY_MEMBER_STEPPEDRANGES: u32 = 2u32;
pub const KSPROPERTY_MEMBER_VALUES: u32 = 3u32;
pub const KSPROPERTY_MEMORY_TRANSPORT: i32 = 1i32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_MPEG2VID(pub i32);
impl KSPROPERTY_MPEG2VID {
pub const KSPROPERTY_MPEG2VID_MODES: Self = Self(0i32);
pub const KSPROPERTY_MPEG2VID_CUR_MODE: Self = Self(1i32);
pub const KSPROPERTY_MPEG2VID_4_3_RECT: Self = Self(2i32);
pub const KSPROPERTY_MPEG2VID_16_9_RECT: Self = Self(3i32);
pub const KSPROPERTY_MPEG2VID_16_9_PANSCAN: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_MPEG2VID {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_MPEG2VID {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_MPEG4_MEDIATYPE_ATTRIBUTES(pub i32);
impl KSPROPERTY_MPEG4_MEDIATYPE_ATTRIBUTES {
pub const KSPROPERTY_MPEG4_MEDIATYPE_SD_BOX: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_MPEG4_MEDIATYPE_ATTRIBUTES {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_MPEG4_MEDIATYPE_ATTRIBUTES {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE(pub i32);
impl KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE {
pub const KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE_DISABLE: Self = Self(0i32);
pub const KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE_HOSTNTP: Self = Self(1i32);
pub const KSPROPERYT_NETWORKCAMERACONTROL_NTPINFO_TYPE_CUSTOM: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER {
pub Size: u32,
pub Type: KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_TYPE,
}
impl KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER {}
impl ::std::default::Default for KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER {
fn default() -> Self {
Self {
Size: 0,
Type: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER")
.field("Size", &format_args!("{:?}", self.Size))
.field("Type", &format_args!("{:?}", self.Type))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size && self.Type == other.Type
}
}
impl ::std::cmp::Eq for KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER {}
unsafe impl ::windows::Abi for KSPROPERTY_NETWORKCAMERACONTROL_NTPINFO_HEADER {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_NETWORKCAMERACONTROL_PROPERTY(pub i32);
impl KSPROPERTY_NETWORKCAMERACONTROL_PROPERTY {
pub const KSPROPERTY_NETWORKCAMERACONTROL_NTP: Self = Self(0i32);
pub const KSPROPERTY_NETWORKCAMERACONTROL_URI: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_NETWORKCAMERACONTROL_PROPERTY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_NETWORKCAMERACONTROL_PROPERTY {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_OVERLAYUPDATE(pub i32);
impl KSPROPERTY_OVERLAYUPDATE {
pub const KSPROPERTY_OVERLAYUPDATE_INTERESTS: Self = Self(0i32);
pub const KSPROPERTY_OVERLAYUPDATE_CLIPLIST: Self = Self(1i32);
pub const KSPROPERTY_OVERLAYUPDATE_PALETTE: Self = Self(2i32);
pub const KSPROPERTY_OVERLAYUPDATE_COLORKEY: Self = Self(4i32);
pub const KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION: Self = Self(8i32);
pub const KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE: Self = Self(16i32);
pub const KSPROPERTY_OVERLAYUPDATE_COLORREF: Self = Self(268435456i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_OVERLAYUPDATE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_OVERLAYUPDATE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_PIN(pub i32);
impl KSPROPERTY_PIN {
pub const KSPROPERTY_PIN_CINSTANCES: Self = Self(0i32);
pub const KSPROPERTY_PIN_CTYPES: Self = Self(1i32);
pub const KSPROPERTY_PIN_DATAFLOW: Self = Self(2i32);
pub const KSPROPERTY_PIN_DATARANGES: Self = Self(3i32);
pub const KSPROPERTY_PIN_DATAINTERSECTION: Self = Self(4i32);
pub const KSPROPERTY_PIN_INTERFACES: Self = Self(5i32);
pub const KSPROPERTY_PIN_MEDIUMS: Self = Self(6i32);
pub const KSPROPERTY_PIN_COMMUNICATION: Self = Self(7i32);
pub const KSPROPERTY_PIN_GLOBALCINSTANCES: Self = Self(8i32);
pub const KSPROPERTY_PIN_NECESSARYINSTANCES: Self = Self(9i32);
pub const KSPROPERTY_PIN_PHYSICALCONNECTION: Self = Self(10i32);
pub const KSPROPERTY_PIN_CATEGORY: Self = Self(11i32);
pub const KSPROPERTY_PIN_NAME: Self = Self(12i32);
pub const KSPROPERTY_PIN_CONSTRAINEDDATARANGES: Self = Self(13i32);
pub const KSPROPERTY_PIN_PROPOSEDATAFORMAT: Self = Self(14i32);
pub const KSPROPERTY_PIN_PROPOSEDATAFORMAT2: Self = Self(15i32);
pub const KSPROPERTY_PIN_MODEDATAFORMATS: Self = Self(16i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_PIN {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_PIN {
type Abi = Self;
}
pub const KSPROPERTY_PIN_FLAGS_ATTRIBUTE_RANGE_AWARE: u32 = 1u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_SEEKING_FLAGS(pub i32);
impl KS_SEEKING_FLAGS {
pub const KS_SEEKING_NoPositioning: Self = Self(0i32);
pub const KS_SEEKING_AbsolutePositioning: Self = Self(1i32);
pub const KS_SEEKING_RelativePositioning: Self = Self(2i32);
pub const KS_SEEKING_IncrementalPositioning: Self = Self(3i32);
pub const KS_SEEKING_PositioningBitsMask: Self = Self(3i32);
pub const KS_SEEKING_SeekToKeyFrame: Self = Self(4i32);
pub const KS_SEEKING_ReturnTime: Self = Self(8i32);
}
impl ::std::convert::From<i32> for KS_SEEKING_FLAGS {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_SEEKING_FLAGS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_POSITIONS {
pub Current: i64,
pub Stop: i64,
pub CurrentFlags: KS_SEEKING_FLAGS,
pub StopFlags: KS_SEEKING_FLAGS,
}
impl KSPROPERTY_POSITIONS {}
impl ::std::default::Default for KSPROPERTY_POSITIONS {
fn default() -> Self {
Self {
Current: 0,
Stop: 0,
CurrentFlags: ::std::default::Default::default(),
StopFlags: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_POSITIONS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_POSITIONS")
.field("Current", &format_args!("{:?}", self.Current))
.field("Stop", &format_args!("{:?}", self.Stop))
.field("CurrentFlags", &format_args!("{:?}", self.CurrentFlags))
.field("StopFlags", &format_args!("{:?}", self.StopFlags))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_POSITIONS {
fn eq(&self, other: &Self) -> bool {
self.Current == other.Current
&& self.Stop == other.Stop
&& self.CurrentFlags == other.CurrentFlags
&& self.StopFlags == other.StopFlags
}
}
impl ::std::cmp::Eq for KSPROPERTY_POSITIONS {}
unsafe impl ::windows::Abi for KSPROPERTY_POSITIONS {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_QUALITY(pub i32);
impl KSPROPERTY_QUALITY {
pub const KSPROPERTY_QUALITY_REPORT: Self = Self(0i32);
pub const KSPROPERTY_QUALITY_ERROR: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_QUALITY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_QUALITY {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_RTAUDIO(pub i32);
impl KSPROPERTY_RTAUDIO {
pub const KSPROPERTY_RTAUDIO_GETPOSITIONFUNCTION: Self = Self(0i32);
pub const KSPROPERTY_RTAUDIO_BUFFER: Self = Self(1i32);
pub const KSPROPERTY_RTAUDIO_HWLATENCY: Self = Self(2i32);
pub const KSPROPERTY_RTAUDIO_POSITIONREGISTER: Self = Self(3i32);
pub const KSPROPERTY_RTAUDIO_CLOCKREGISTER: Self = Self(4i32);
pub const KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION: Self = Self(5i32);
pub const KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT: Self = Self(6i32);
pub const KSPROPERTY_RTAUDIO_UNREGISTER_NOTIFICATION_EVENT: Self = Self(7i32);
pub const KSPROPERTY_RTAUDIO_QUERY_NOTIFICATION_SUPPORT: Self = Self(8i32);
pub const KSPROPERTY_RTAUDIO_PACKETCOUNT: Self = Self(9i32);
pub const KSPROPERTY_RTAUDIO_PRESENTATION_POSITION: Self = Self(10i32);
pub const KSPROPERTY_RTAUDIO_GETREADPACKET: Self = Self(11i32);
pub const KSPROPERTY_RTAUDIO_SETWRITEPACKET: Self = Self(12i32);
pub const KSPROPERTY_RTAUDIO_PACKETVREGISTER: Self = Self(13i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_RTAUDIO {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_RTAUDIO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_SELECTOR_NODE_S {
pub NodeProperty: KSP_NODE,
pub Value: i32,
pub Flags: u32,
pub Capabilities: u32,
}
impl KSPROPERTY_SELECTOR_NODE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_SELECTOR_NODE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_SELECTOR_S {
pub Property: KSIDENTIFIER,
pub Value: i32,
pub Flags: u32,
pub Capabilities: u32,
}
impl KSPROPERTY_SELECTOR_S {}
unsafe impl ::windows::Abi for KSPROPERTY_SELECTOR_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_SERIAL {
pub PropTypeSet: KSIDENTIFIER,
pub Id: u32,
pub PropertyLength: u32,
}
impl KSPROPERTY_SERIAL {}
unsafe impl ::windows::Abi for KSPROPERTY_SERIAL {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_SERIALHDR {
pub PropertySet: ::windows::Guid,
pub Count: u32,
}
impl KSPROPERTY_SERIALHDR {}
unsafe impl ::windows::Abi for KSPROPERTY_SERIALHDR {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_SOUNDDETECTOR(pub i32);
impl KSPROPERTY_SOUNDDETECTOR {
pub const KSPROPERTY_SOUNDDETECTOR_SUPPORTEDPATTERNS: Self = Self(1i32);
pub const KSPROPERTY_SOUNDDETECTOR_PATTERNS: Self = Self(2i32);
pub const KSPROPERTY_SOUNDDETECTOR_ARMED: Self = Self(3i32);
pub const KSPROPERTY_SOUNDDETECTOR_MATCHRESULT: Self = Self(4i32);
pub const KSPROPERTY_SOUNDDETECTOR_RESET: Self = Self(5i32);
pub const KSPROPERTY_SOUNDDETECTOR_STREAMINGSUPPORT: Self = Self(6i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_SOUNDDETECTOR {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_SOUNDDETECTOR {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_COLCON {
pub _bitfield1: u8,
pub _bitfield2: u8,
pub _bitfield3: u8,
pub _bitfield4: u8,
}
impl KS_COLCON {}
impl ::std::default::Default for KS_COLCON {
fn default() -> Self {
Self {
_bitfield1: 0,
_bitfield2: 0,
_bitfield3: 0,
_bitfield4: 0,
}
}
}
impl ::std::fmt::Debug for KS_COLCON {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_COLCON")
.field("_bitfield1", &format_args!("{:?}", self._bitfield1))
.field("_bitfield2", &format_args!("{:?}", self._bitfield2))
.field("_bitfield3", &format_args!("{:?}", self._bitfield3))
.field("_bitfield4", &format_args!("{:?}", self._bitfield4))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_COLCON {
fn eq(&self, other: &Self) -> bool {
self._bitfield1 == other._bitfield1
&& self._bitfield2 == other._bitfield2
&& self._bitfield3 == other._bitfield3
&& self._bitfield4 == other._bitfield4
}
}
impl ::std::cmp::Eq for KS_COLCON {}
unsafe impl ::windows::Abi for KS_COLCON {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_SPHLI {
pub HLISS: u16,
pub Reserved: u16,
pub StartPTM: u32,
pub EndPTM: u32,
pub StartX: u16,
pub StartY: u16,
pub StopX: u16,
pub StopY: u16,
pub ColCon: KS_COLCON,
}
impl KSPROPERTY_SPHLI {}
impl ::std::default::Default for KSPROPERTY_SPHLI {
fn default() -> Self {
Self {
HLISS: 0,
Reserved: 0,
StartPTM: 0,
EndPTM: 0,
StartX: 0,
StartY: 0,
StopX: 0,
StopY: 0,
ColCon: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_SPHLI {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_SPHLI")
.field("HLISS", &format_args!("{:?}", self.HLISS))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field("StartPTM", &format_args!("{:?}", self.StartPTM))
.field("EndPTM", &format_args!("{:?}", self.EndPTM))
.field("StartX", &format_args!("{:?}", self.StartX))
.field("StartY", &format_args!("{:?}", self.StartY))
.field("StopX", &format_args!("{:?}", self.StopX))
.field("StopY", &format_args!("{:?}", self.StopY))
.field("ColCon", &format_args!("{:?}", self.ColCon))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_SPHLI {
fn eq(&self, other: &Self) -> bool {
self.HLISS == other.HLISS
&& self.Reserved == other.Reserved
&& self.StartPTM == other.StartPTM
&& self.EndPTM == other.EndPTM
&& self.StartX == other.StartX
&& self.StartY == other.StartY
&& self.StopX == other.StopX
&& self.StopY == other.StopY
&& self.ColCon == other.ColCon
}
}
impl ::std::cmp::Eq for KSPROPERTY_SPHLI {}
unsafe impl ::windows::Abi for KSPROPERTY_SPHLI {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DVD_YUV {
pub Reserved: u8,
pub Y: u8,
pub V: u8,
pub U: u8,
}
impl KS_DVD_YUV {}
impl ::std::default::Default for KS_DVD_YUV {
fn default() -> Self {
Self {
Reserved: 0,
Y: 0,
V: 0,
U: 0,
}
}
}
impl ::std::fmt::Debug for KS_DVD_YUV {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_DVD_YUV")
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field("Y", &format_args!("{:?}", self.Y))
.field("V", &format_args!("{:?}", self.V))
.field("U", &format_args!("{:?}", self.U))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_DVD_YUV {
fn eq(&self, other: &Self) -> bool {
self.Reserved == other.Reserved
&& self.Y == other.Y
&& self.V == other.V
&& self.U == other.U
}
}
impl ::std::cmp::Eq for KS_DVD_YUV {}
unsafe impl ::windows::Abi for KS_DVD_YUV {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_SPPAL {
pub sppal: [KS_DVD_YUV; 16],
}
impl KSPROPERTY_SPPAL {}
impl ::std::default::Default for KSPROPERTY_SPPAL {
fn default() -> Self {
Self {
sppal: [::std::default::Default::default(); 16],
}
}
}
impl ::std::fmt::Debug for KSPROPERTY_SPPAL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSPROPERTY_SPPAL")
.field("sppal", &format_args!("{:?}", self.sppal))
.finish()
}
}
impl ::std::cmp::PartialEq for KSPROPERTY_SPPAL {
fn eq(&self, other: &Self) -> bool {
self.sppal == other.sppal
}
}
impl ::std::cmp::Eq for KSPROPERTY_SPPAL {}
unsafe impl ::windows::Abi for KSPROPERTY_SPPAL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_STEPPING_LONG {
pub SteppingDelta: u32,
pub Reserved: u32,
pub Bounds: KSPROPERTY_BOUNDS_LONG,
}
impl KSPROPERTY_STEPPING_LONG {}
unsafe impl ::windows::Abi for KSPROPERTY_STEPPING_LONG {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_STEPPING_LONGLONG {
pub SteppingDelta: u64,
pub Bounds: KSPROPERTY_BOUNDS_LONGLONG,
}
impl KSPROPERTY_STEPPING_LONGLONG {}
unsafe impl ::windows::Abi for KSPROPERTY_STEPPING_LONGLONG {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_STREAM(pub i32);
impl KSPROPERTY_STREAM {
pub const KSPROPERTY_STREAM_ALLOCATOR: Self = Self(0i32);
pub const KSPROPERTY_STREAM_QUALITY: Self = Self(1i32);
pub const KSPROPERTY_STREAM_DEGRADATION: Self = Self(2i32);
pub const KSPROPERTY_STREAM_MASTERCLOCK: Self = Self(3i32);
pub const KSPROPERTY_STREAM_TIMEFORMAT: Self = Self(4i32);
pub const KSPROPERTY_STREAM_PRESENTATIONTIME: Self = Self(5i32);
pub const KSPROPERTY_STREAM_PRESENTATIONEXTENT: Self = Self(6i32);
pub const KSPROPERTY_STREAM_FRAMETIME: Self = Self(7i32);
pub const KSPROPERTY_STREAM_RATECAPABILITY: Self = Self(8i32);
pub const KSPROPERTY_STREAM_RATE: Self = Self(9i32);
pub const KSPROPERTY_STREAM_PIPE_ID: Self = Self(10i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_STREAM {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_STREAM {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_STREAMINTERFACE(pub i32);
impl KSPROPERTY_STREAMINTERFACE {
pub const KSPROPERTY_STREAMINTERFACE_HEADERSIZE: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_STREAMINTERFACE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_STREAMINTERFACE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_TELEPHONY_CONTROL(pub i32);
impl KSPROPERTY_TELEPHONY_CONTROL {
pub const KSPROPERTY_TELEPHONY_PROVIDERID: Self = Self(0i32);
pub const KSPROPERTY_TELEPHONY_CALLINFO: Self = Self(1i32);
pub const KSPROPERTY_TELEPHONY_CALLCONTROL: Self = Self(2i32);
pub const KSPROPERTY_TELEPHONY_PROVIDERCHANGE: Self = Self(3i32);
pub const KSPROPERTY_TELEPHONY_CALLHOLD: Self = Self(4i32);
pub const KSPROPERTY_TELEPHONY_MUTE_TX: Self = Self(5i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_TELEPHONY_CONTROL {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_TELEPHONY_CONTROL {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_TELEPHONY_TOPOLOGY(pub i32);
impl KSPROPERTY_TELEPHONY_TOPOLOGY {
pub const KSPROPERTY_TELEPHONY_ENDPOINTIDPAIR: Self = Self(0i32);
pub const KSPROPERTY_TELEPHONY_VOLUME: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_TELEPHONY_TOPOLOGY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_TELEPHONY_TOPOLOGY {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_TIMECODE(pub i32);
impl KSPROPERTY_TIMECODE {
pub const KSPROPERTY_TIMECODE_READER: Self = Self(0i32);
pub const KSPROPERTY_ATN_READER: Self = Self(1i32);
pub const KSPROPERTY_RTC_READER: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_TIMECODE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_TIMECODE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TIMECODE_NODE_S {
pub NodeProperty: KSP_NODE,
pub TimecodeSamp: super::DirectShow::TIMECODE_SAMPLE,
}
impl KSPROPERTY_TIMECODE_NODE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TIMECODE_NODE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TIMECODE_S {
pub Property: KSIDENTIFIER,
pub TimecodeSamp: super::DirectShow::TIMECODE_SAMPLE,
}
impl KSPROPERTY_TIMECODE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TIMECODE_S {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_TOPOLOGY(pub i32);
impl KSPROPERTY_TOPOLOGY {
pub const KSPROPERTY_TOPOLOGY_CATEGORIES: Self = Self(0i32);
pub const KSPROPERTY_TOPOLOGY_NODES: Self = Self(1i32);
pub const KSPROPERTY_TOPOLOGY_CONNECTIONS: Self = Self(2i32);
pub const KSPROPERTY_TOPOLOGY_NAME: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_TOPOLOGY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_TOPOLOGY {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_TOPOLOGYNODE(pub i32);
impl KSPROPERTY_TOPOLOGYNODE {
pub const KSPROPERTY_TOPOLOGYNODE_ENABLE: Self = Self(1i32);
pub const KSPROPERTY_TOPOLOGYNODE_RESET: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_TOPOLOGYNODE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_TOPOLOGYNODE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_TUNER(pub i32);
impl KSPROPERTY_TUNER {
pub const KSPROPERTY_TUNER_CAPS: Self = Self(0i32);
pub const KSPROPERTY_TUNER_MODE_CAPS: Self = Self(1i32);
pub const KSPROPERTY_TUNER_MODE: Self = Self(2i32);
pub const KSPROPERTY_TUNER_STANDARD: Self = Self(3i32);
pub const KSPROPERTY_TUNER_FREQUENCY: Self = Self(4i32);
pub const KSPROPERTY_TUNER_INPUT: Self = Self(5i32);
pub const KSPROPERTY_TUNER_STATUS: Self = Self(6i32);
pub const KSPROPERTY_TUNER_IF_MEDIUM: Self = Self(7i32);
pub const KSPROPERTY_TUNER_SCAN_CAPS: Self = Self(8i32);
pub const KSPROPERTY_TUNER_SCAN_STATUS: Self = Self(9i32);
pub const KSPROPERTY_TUNER_STANDARD_MODE: Self = Self(10i32);
pub const KSPROPERTY_TUNER_NETWORKTYPE_SCAN_CAPS: Self = Self(11i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_TUNER {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_CAPS_S {
pub Property: KSIDENTIFIER,
pub ModesSupported: u32,
pub VideoMedium: KSIDENTIFIER,
pub TVAudioMedium: KSIDENTIFIER,
pub RadioAudioMedium: KSIDENTIFIER,
}
impl KSPROPERTY_TUNER_CAPS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_CAPS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_FREQUENCY_S {
pub Property: KSIDENTIFIER,
pub Frequency: u32,
pub LastFrequency: u32,
pub TuningFlags: u32,
pub VideoSubChannel: u32,
pub AudioSubChannel: u32,
pub Channel: u32,
pub Country: u32,
}
impl KSPROPERTY_TUNER_FREQUENCY_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_FREQUENCY_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_IF_MEDIUM_S {
pub Property: KSIDENTIFIER,
pub IFMedium: KSIDENTIFIER,
}
impl KSPROPERTY_TUNER_IF_MEDIUM_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_IF_MEDIUM_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_INPUT_S {
pub Property: KSIDENTIFIER,
pub InputIndex: u32,
}
impl KSPROPERTY_TUNER_INPUT_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_INPUT_S {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_TUNER_MODES(pub i32);
impl KSPROPERTY_TUNER_MODES {
pub const KSPROPERTY_TUNER_MODE_TV: Self = Self(1i32);
pub const KSPROPERTY_TUNER_MODE_FM_RADIO: Self = Self(2i32);
pub const KSPROPERTY_TUNER_MODE_AM_RADIO: Self = Self(4i32);
pub const KSPROPERTY_TUNER_MODE_DSS: Self = Self(8i32);
pub const KSPROPERTY_TUNER_MODE_ATSC: Self = Self(16i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_TUNER_MODES {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_MODES {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_MODE_CAPS_S {
pub Property: KSIDENTIFIER,
pub Mode: u32,
pub StandardsSupported: u32,
pub MinFrequency: u32,
pub MaxFrequency: u32,
pub TuningGranularity: u32,
pub NumberOfInputs: u32,
pub SettlingTime: u32,
pub Strategy: u32,
}
impl KSPROPERTY_TUNER_MODE_CAPS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_MODE_CAPS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_MODE_S {
pub Property: KSIDENTIFIER,
pub Mode: u32,
}
impl KSPROPERTY_TUNER_MODE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_MODE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_NETWORKTYPE_SCAN_CAPS_S {
pub Property: KSIDENTIFIER,
pub NetworkType: ::windows::Guid,
pub BufferSize: u32,
pub NetworkTunerCapabilities: *mut ::std::ffi::c_void,
}
impl KSPROPERTY_TUNER_NETWORKTYPE_SCAN_CAPS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_NETWORKTYPE_SCAN_CAPS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_SCAN_CAPS_S {
pub Property: KSIDENTIFIER,
pub fSupportsHardwareAssistedScanning: super::SystemServices::BOOL,
pub SupportedBroadcastStandards: u32,
pub GUIDBucket: *mut ::std::ffi::c_void,
pub lengthofBucket: u32,
}
impl KSPROPERTY_TUNER_SCAN_CAPS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_SCAN_CAPS_S {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct _TunerDecoderLockType(pub i32);
impl _TunerDecoderLockType {
pub const Tuner_LockType_None: Self = Self(0i32);
pub const Tuner_LockType_Within_Scan_Sensing_Range: Self = Self(1i32);
pub const Tuner_LockType_Locked: Self = Self(2i32);
}
impl ::std::convert::From<i32> for _TunerDecoderLockType {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for _TunerDecoderLockType {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_SCAN_STATUS_S {
pub Property: KSIDENTIFIER,
pub LockStatus: _TunerDecoderLockType,
pub CurrentFrequency: u32,
}
impl KSPROPERTY_TUNER_SCAN_STATUS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_SCAN_STATUS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_STANDARD_MODE_S {
pub Property: KSIDENTIFIER,
pub AutoDetect: super::SystemServices::BOOL,
}
impl KSPROPERTY_TUNER_STANDARD_MODE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_STANDARD_MODE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_STANDARD_S {
pub Property: KSIDENTIFIER,
pub Standard: u32,
}
impl KSPROPERTY_TUNER_STANDARD_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_STANDARD_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TUNER_STATUS_S {
pub Property: KSIDENTIFIER,
pub CurrentFrequency: u32,
pub PLLOffset: u32,
pub SignalStrength: u32,
pub Busy: u32,
}
impl KSPROPERTY_TUNER_STATUS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TUNER_STATUS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TVAUDIO_CAPS_S {
pub Property: KSIDENTIFIER,
pub Capabilities: u32,
pub InputMedium: KSIDENTIFIER,
pub OutputMedium: KSIDENTIFIER,
}
impl KSPROPERTY_TVAUDIO_CAPS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TVAUDIO_CAPS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_TVAUDIO_S {
pub Property: KSIDENTIFIER,
pub Mode: u32,
}
impl KSPROPERTY_TVAUDIO_S {}
unsafe impl ::windows::Abi for KSPROPERTY_TVAUDIO_S {
type Abi = Self;
}
pub const KSPROPERTY_TYPE_BASICSUPPORT: u32 = 512u32;
pub const KSPROPERTY_TYPE_COPYPAYLOAD: u32 = 2147483648u32;
pub const KSPROPERTY_TYPE_DEFAULTVALUES: u32 = 65536u32;
pub const KSPROPERTY_TYPE_FSFILTERSCOPE: u32 = 1073741824u32;
pub const KSPROPERTY_TYPE_GET: u32 = 1u32;
pub const KSPROPERTY_TYPE_GETPAYLOADSIZE: u32 = 4u32;
pub const KSPROPERTY_TYPE_HIGHPRIORITY: u32 = 134217728u32;
pub const KSPROPERTY_TYPE_RELATIONS: u32 = 1024u32;
pub const KSPROPERTY_TYPE_SERIALIZERAW: u32 = 8192u32;
pub const KSPROPERTY_TYPE_SERIALIZESET: u32 = 2048u32;
pub const KSPROPERTY_TYPE_SERIALIZESIZE: u32 = 32768u32;
pub const KSPROPERTY_TYPE_SET: u32 = 2u32;
pub const KSPROPERTY_TYPE_SETSUPPORT: u32 = 256u32;
pub const KSPROPERTY_TYPE_TOPOLOGY: u32 = 268435456u32;
pub const KSPROPERTY_TYPE_UNSERIALIZERAW: u32 = 16384u32;
pub const KSPROPERTY_TYPE_UNSERIALIZESET: u32 = 4096u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VBICAP(pub i32);
impl KSPROPERTY_VBICAP {
pub const KSPROPERTY_VBICAP_PROPERTIES_PROTECTION: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VBICAP {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VBICAP {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VBICODECFILTERING(pub i32);
impl KSPROPERTY_VBICODECFILTERING {
pub const KSPROPERTY_VBICODECFILTERING_SCANLINES_REQUESTED_BIT_ARRAY: Self =
Self(1i32);
pub const KSPROPERTY_VBICODECFILTERING_SCANLINES_DISCOVERED_BIT_ARRAY: Self =
Self(2i32);
pub const KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_REQUESTED_BIT_ARRAY: Self =
Self(3i32);
pub const KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_DISCOVERED_BIT_ARRAY: Self =
Self(4i32);
pub const KSPROPERTY_VBICODECFILTERING_STATISTICS: Self = Self(5i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VBICODECFILTERING {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VBICODECFILTERING {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_CC_SUBSTREAMS {
pub SubstreamMask: u32,
}
impl VBICODECFILTERING_CC_SUBSTREAMS {}
impl ::std::default::Default for VBICODECFILTERING_CC_SUBSTREAMS {
fn default() -> Self {
Self { SubstreamMask: 0 }
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_CC_SUBSTREAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_CC_SUBSTREAMS")
.field("SubstreamMask", &format_args!("{:?}", self.SubstreamMask))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_CC_SUBSTREAMS {
fn eq(&self, other: &Self) -> bool {
self.SubstreamMask == other.SubstreamMask
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_CC_SUBSTREAMS {}
unsafe impl ::windows::Abi for VBICODECFILTERING_CC_SUBSTREAMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S {
pub Property: KSIDENTIFIER,
pub Substreams: VBICODECFILTERING_CC_SUBSTREAMS,
}
impl KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_NABTS_SUBSTREAMS {
pub SubstreamMask: [u32; 128],
}
impl VBICODECFILTERING_NABTS_SUBSTREAMS {}
impl ::std::default::Default for VBICODECFILTERING_NABTS_SUBSTREAMS {
fn default() -> Self {
Self {
SubstreamMask: [0; 128],
}
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_NABTS_SUBSTREAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_NABTS_SUBSTREAMS")
.field("SubstreamMask", &format_args!("{:?}", self.SubstreamMask))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_NABTS_SUBSTREAMS {
fn eq(&self, other: &Self) -> bool {
self.SubstreamMask == other.SubstreamMask
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_NABTS_SUBSTREAMS {}
unsafe impl ::windows::Abi for VBICODECFILTERING_NABTS_SUBSTREAMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S {
pub Property: KSIDENTIFIER,
pub Substreams: VBICODECFILTERING_NABTS_SUBSTREAMS,
}
impl KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VBICODECFILTERING_SCANLINES_S {
pub Property: KSIDENTIFIER,
pub Scanlines: VBICODECFILTERING_SCANLINES,
}
impl KSPROPERTY_VBICODECFILTERING_SCANLINES_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VBICODECFILTERING_SCANLINES_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_STATISTICS_COMMON_PIN {
pub SRBsProcessed: u32,
pub SRBsIgnored: u32,
pub SRBsMissing: u32,
pub InternalErrors: u32,
pub ExternalErrors: u32,
pub Discontinuities: u32,
pub LineConfidenceAvg: u32,
pub BytesOutput: u32,
}
impl VBICODECFILTERING_STATISTICS_COMMON_PIN {}
impl ::std::default::Default for VBICODECFILTERING_STATISTICS_COMMON_PIN {
fn default() -> Self {
Self {
SRBsProcessed: 0,
SRBsIgnored: 0,
SRBsMissing: 0,
InternalErrors: 0,
ExternalErrors: 0,
Discontinuities: 0,
LineConfidenceAvg: 0,
BytesOutput: 0,
}
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_STATISTICS_COMMON_PIN {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_STATISTICS_COMMON_PIN")
.field("SRBsProcessed", &format_args!("{:?}", self.SRBsProcessed))
.field("SRBsIgnored", &format_args!("{:?}", self.SRBsIgnored))
.field("SRBsMissing", &format_args!("{:?}", self.SRBsMissing))
.field("InternalErrors", &format_args!("{:?}", self.InternalErrors))
.field("ExternalErrors", &format_args!("{:?}", self.ExternalErrors))
.field(
"Discontinuities",
&format_args!("{:?}", self.Discontinuities),
)
.field(
"LineConfidenceAvg",
&format_args!("{:?}", self.LineConfidenceAvg),
)
.field("BytesOutput", &format_args!("{:?}", self.BytesOutput))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_STATISTICS_COMMON_PIN {
fn eq(&self, other: &Self) -> bool {
self.SRBsProcessed == other.SRBsProcessed
&& self.SRBsIgnored == other.SRBsIgnored
&& self.SRBsMissing == other.SRBsMissing
&& self.InternalErrors == other.InternalErrors
&& self.ExternalErrors == other.ExternalErrors
&& self.Discontinuities == other.Discontinuities
&& self.LineConfidenceAvg == other.LineConfidenceAvg
&& self.BytesOutput == other.BytesOutput
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_STATISTICS_COMMON_PIN {}
unsafe impl ::windows::Abi for VBICODECFILTERING_STATISTICS_COMMON_PIN {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_STATISTICS_CC_PIN {
pub Common: VBICODECFILTERING_STATISTICS_COMMON_PIN,
}
impl VBICODECFILTERING_STATISTICS_CC_PIN {}
impl ::std::default::Default for VBICODECFILTERING_STATISTICS_CC_PIN {
fn default() -> Self {
Self {
Common: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_STATISTICS_CC_PIN {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_STATISTICS_CC_PIN")
.field("Common", &format_args!("{:?}", self.Common))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_STATISTICS_CC_PIN {
fn eq(&self, other: &Self) -> bool {
self.Common == other.Common
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_STATISTICS_CC_PIN {}
unsafe impl ::windows::Abi for VBICODECFILTERING_STATISTICS_CC_PIN {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S {
pub Property: KSIDENTIFIER,
pub Statistics: VBICODECFILTERING_STATISTICS_CC_PIN,
}
impl KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_STATISTICS_COMMON {
pub InputSRBsProcessed: u32,
pub OutputSRBsProcessed: u32,
pub SRBsIgnored: u32,
pub InputSRBsMissing: u32,
pub OutputSRBsMissing: u32,
pub OutputFailures: u32,
pub InternalErrors: u32,
pub ExternalErrors: u32,
pub InputDiscontinuities: u32,
pub DSPFailures: u32,
pub TvTunerChanges: u32,
pub VBIHeaderChanges: u32,
pub LineConfidenceAvg: u32,
pub BytesOutput: u32,
}
impl VBICODECFILTERING_STATISTICS_COMMON {}
impl ::std::default::Default for VBICODECFILTERING_STATISTICS_COMMON {
fn default() -> Self {
Self {
InputSRBsProcessed: 0,
OutputSRBsProcessed: 0,
SRBsIgnored: 0,
InputSRBsMissing: 0,
OutputSRBsMissing: 0,
OutputFailures: 0,
InternalErrors: 0,
ExternalErrors: 0,
InputDiscontinuities: 0,
DSPFailures: 0,
TvTunerChanges: 0,
VBIHeaderChanges: 0,
LineConfidenceAvg: 0,
BytesOutput: 0,
}
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_STATISTICS_COMMON {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_STATISTICS_COMMON")
.field(
"InputSRBsProcessed",
&format_args!("{:?}", self.InputSRBsProcessed),
)
.field(
"OutputSRBsProcessed",
&format_args!("{:?}", self.OutputSRBsProcessed),
)
.field("SRBsIgnored", &format_args!("{:?}", self.SRBsIgnored))
.field(
"InputSRBsMissing",
&format_args!("{:?}", self.InputSRBsMissing),
)
.field(
"OutputSRBsMissing",
&format_args!("{:?}", self.OutputSRBsMissing),
)
.field("OutputFailures", &format_args!("{:?}", self.OutputFailures))
.field("InternalErrors", &format_args!("{:?}", self.InternalErrors))
.field("ExternalErrors", &format_args!("{:?}", self.ExternalErrors))
.field(
"InputDiscontinuities",
&format_args!("{:?}", self.InputDiscontinuities),
)
.field("DSPFailures", &format_args!("{:?}", self.DSPFailures))
.field("TvTunerChanges", &format_args!("{:?}", self.TvTunerChanges))
.field(
"VBIHeaderChanges",
&format_args!("{:?}", self.VBIHeaderChanges),
)
.field(
"LineConfidenceAvg",
&format_args!("{:?}", self.LineConfidenceAvg),
)
.field("BytesOutput", &format_args!("{:?}", self.BytesOutput))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_STATISTICS_COMMON {
fn eq(&self, other: &Self) -> bool {
self.InputSRBsProcessed == other.InputSRBsProcessed
&& self.OutputSRBsProcessed == other.OutputSRBsProcessed
&& self.SRBsIgnored == other.SRBsIgnored
&& self.InputSRBsMissing == other.InputSRBsMissing
&& self.OutputSRBsMissing == other.OutputSRBsMissing
&& self.OutputFailures == other.OutputFailures
&& self.InternalErrors == other.InternalErrors
&& self.ExternalErrors == other.ExternalErrors
&& self.InputDiscontinuities == other.InputDiscontinuities
&& self.DSPFailures == other.DSPFailures
&& self.TvTunerChanges == other.TvTunerChanges
&& self.VBIHeaderChanges == other.VBIHeaderChanges
&& self.LineConfidenceAvg == other.LineConfidenceAvg
&& self.BytesOutput == other.BytesOutput
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_STATISTICS_COMMON {}
unsafe impl ::windows::Abi for VBICODECFILTERING_STATISTICS_COMMON {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_STATISTICS_CC {
pub Common: VBICODECFILTERING_STATISTICS_COMMON,
}
impl VBICODECFILTERING_STATISTICS_CC {}
impl ::std::default::Default for VBICODECFILTERING_STATISTICS_CC {
fn default() -> Self {
Self {
Common: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_STATISTICS_CC {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_STATISTICS_CC")
.field("Common", &format_args!("{:?}", self.Common))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_STATISTICS_CC {
fn eq(&self, other: &Self) -> bool {
self.Common == other.Common
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_STATISTICS_CC {}
unsafe impl ::windows::Abi for VBICODECFILTERING_STATISTICS_CC {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S {
pub Property: KSIDENTIFIER,
pub Statistics: VBICODECFILTERING_STATISTICS_CC,
}
impl KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S {
pub Property: KSIDENTIFIER,
pub Statistics: VBICODECFILTERING_STATISTICS_COMMON_PIN,
}
impl KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S {
pub Property: KSIDENTIFIER,
pub Statistics: VBICODECFILTERING_STATISTICS_COMMON,
}
impl KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_STATISTICS_NABTS_PIN {
pub Common: VBICODECFILTERING_STATISTICS_COMMON_PIN,
}
impl VBICODECFILTERING_STATISTICS_NABTS_PIN {}
impl ::std::default::Default for VBICODECFILTERING_STATISTICS_NABTS_PIN {
fn default() -> Self {
Self {
Common: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_STATISTICS_NABTS_PIN {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_STATISTICS_NABTS_PIN")
.field("Common", &format_args!("{:?}", self.Common))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_STATISTICS_NABTS_PIN {
fn eq(&self, other: &Self) -> bool {
self.Common == other.Common
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_STATISTICS_NABTS_PIN {}
unsafe impl ::windows::Abi for VBICODECFILTERING_STATISTICS_NABTS_PIN {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S {
pub Property: KSIDENTIFIER,
pub Statistics: VBICODECFILTERING_STATISTICS_NABTS_PIN,
}
impl KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_STATISTICS_NABTS {
pub Common: VBICODECFILTERING_STATISTICS_COMMON,
pub FECBundleBadLines: u32,
pub FECQueueOverflows: u32,
pub FECCorrectedLines: u32,
pub FECUncorrectableLines: u32,
pub BundlesProcessed: u32,
pub BundlesSent2IP: u32,
pub FilteredLines: u32,
}
impl VBICODECFILTERING_STATISTICS_NABTS {}
impl ::std::default::Default for VBICODECFILTERING_STATISTICS_NABTS {
fn default() -> Self {
Self {
Common: ::std::default::Default::default(),
FECBundleBadLines: 0,
FECQueueOverflows: 0,
FECCorrectedLines: 0,
FECUncorrectableLines: 0,
BundlesProcessed: 0,
BundlesSent2IP: 0,
FilteredLines: 0,
}
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_STATISTICS_NABTS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_STATISTICS_NABTS")
.field("Common", &format_args!("{:?}", self.Common))
.field(
"FECBundleBadLines",
&format_args!("{:?}", self.FECBundleBadLines),
)
.field(
"FECQueueOverflows",
&format_args!("{:?}", self.FECQueueOverflows),
)
.field(
"FECCorrectedLines",
&format_args!("{:?}", self.FECCorrectedLines),
)
.field(
"FECUncorrectableLines",
&format_args!("{:?}", self.FECUncorrectableLines),
)
.field(
"BundlesProcessed",
&format_args!("{:?}", self.BundlesProcessed),
)
.field("BundlesSent2IP", &format_args!("{:?}", self.BundlesSent2IP))
.field("FilteredLines", &format_args!("{:?}", self.FilteredLines))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_STATISTICS_NABTS {
fn eq(&self, other: &Self) -> bool {
self.Common == other.Common
&& self.FECBundleBadLines == other.FECBundleBadLines
&& self.FECQueueOverflows == other.FECQueueOverflows
&& self.FECCorrectedLines == other.FECCorrectedLines
&& self.FECUncorrectableLines == other.FECUncorrectableLines
&& self.BundlesProcessed == other.BundlesProcessed
&& self.BundlesSent2IP == other.BundlesSent2IP
&& self.FilteredLines == other.FilteredLines
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_STATISTICS_NABTS {}
unsafe impl ::windows::Abi for VBICODECFILTERING_STATISTICS_NABTS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S {
pub Property: KSIDENTIFIER,
pub Statistics: VBICODECFILTERING_STATISTICS_NABTS,
}
impl KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDCAP_CAMERACONTROL(pub i32);
impl KSPROPERTY_VIDCAP_CAMERACONTROL {
pub const KSPROPERTY_CAMERACONTROL_PAN: Self = Self(0i32);
pub const KSPROPERTY_CAMERACONTROL_TILT: Self = Self(1i32);
pub const KSPROPERTY_CAMERACONTROL_ROLL: Self = Self(2i32);
pub const KSPROPERTY_CAMERACONTROL_ZOOM: Self = Self(3i32);
pub const KSPROPERTY_CAMERACONTROL_EXPOSURE: Self = Self(4i32);
pub const KSPROPERTY_CAMERACONTROL_IRIS: Self = Self(5i32);
pub const KSPROPERTY_CAMERACONTROL_FOCUS: Self = Self(6i32);
pub const KSPROPERTY_CAMERACONTROL_SCANMODE: Self = Self(7i32);
pub const KSPROPERTY_CAMERACONTROL_PRIVACY: Self = Self(8i32);
pub const KSPROPERTY_CAMERACONTROL_PANTILT: Self = Self(9i32);
pub const KSPROPERTY_CAMERACONTROL_PAN_RELATIVE: Self = Self(10i32);
pub const KSPROPERTY_CAMERACONTROL_TILT_RELATIVE: Self = Self(11i32);
pub const KSPROPERTY_CAMERACONTROL_ROLL_RELATIVE: Self = Self(12i32);
pub const KSPROPERTY_CAMERACONTROL_ZOOM_RELATIVE: Self = Self(13i32);
pub const KSPROPERTY_CAMERACONTROL_EXPOSURE_RELATIVE: Self = Self(14i32);
pub const KSPROPERTY_CAMERACONTROL_IRIS_RELATIVE: Self = Self(15i32);
pub const KSPROPERTY_CAMERACONTROL_FOCUS_RELATIVE: Self = Self(16i32);
pub const KSPROPERTY_CAMERACONTROL_PANTILT_RELATIVE: Self = Self(17i32);
pub const KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH: Self = Self(18i32);
pub const KSPROPERTY_CAMERACONTROL_AUTO_EXPOSURE_PRIORITY: Self = Self(19i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDCAP_CAMERACONTROL {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDCAP_CAMERACONTROL {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDCAP_CROSSBAR(pub i32);
impl KSPROPERTY_VIDCAP_CROSSBAR {
pub const KSPROPERTY_CROSSBAR_CAPS: Self = Self(0i32);
pub const KSPROPERTY_CROSSBAR_PININFO: Self = Self(1i32);
pub const KSPROPERTY_CROSSBAR_CAN_ROUTE: Self = Self(2i32);
pub const KSPROPERTY_CROSSBAR_ROUTE: Self = Self(3i32);
pub const KSPROPERTY_CROSSBAR_INPUT_ACTIVE: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDCAP_CROSSBAR {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDCAP_CROSSBAR {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDCAP_DROPPEDFRAMES(pub i32);
impl KSPROPERTY_VIDCAP_DROPPEDFRAMES {
pub const KSPROPERTY_DROPPEDFRAMES_CURRENT: Self = Self(0i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDCAP_DROPPEDFRAMES {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDCAP_DROPPEDFRAMES {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDCAP_SELECTOR(pub i32);
impl KSPROPERTY_VIDCAP_SELECTOR {
pub const KSPROPERTY_SELECTOR_SOURCE_NODE_ID: Self = Self(0i32);
pub const KSPROPERTY_SELECTOR_NUM_SOURCES: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDCAP_SELECTOR {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDCAP_SELECTOR {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDCAP_TVAUDIO(pub i32);
impl KSPROPERTY_VIDCAP_TVAUDIO {
pub const KSPROPERTY_TVAUDIO_CAPS: Self = Self(0i32);
pub const KSPROPERTY_TVAUDIO_MODE: Self = Self(1i32);
pub const KSPROPERTY_TVAUDIO_CURRENTLY_AVAILABLE_MODES: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDCAP_TVAUDIO {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDCAP_TVAUDIO {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDCAP_VIDEOCOMPRESSION(pub i32);
impl KSPROPERTY_VIDCAP_VIDEOCOMPRESSION {
pub const KSPROPERTY_VIDEOCOMPRESSION_GETINFO: Self = Self(0i32);
pub const KSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE: Self = Self(1i32);
pub const KSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME: Self = Self(2i32);
pub const KSPROPERTY_VIDEOCOMPRESSION_QUALITY: Self = Self(3i32);
pub const KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_KEYFRAME: Self = Self(4i32);
pub const KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_FRAME_SIZE: Self = Self(5i32);
pub const KSPROPERTY_VIDEOCOMPRESSION_WINDOWSIZE: Self = Self(6i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDCAP_VIDEOCOMPRESSION {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDCAP_VIDEOCOMPRESSION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDCAP_VIDEOCONTROL(pub i32);
impl KSPROPERTY_VIDCAP_VIDEOCONTROL {
pub const KSPROPERTY_VIDEOCONTROL_CAPS: Self = Self(0i32);
pub const KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE: Self = Self(1i32);
pub const KSPROPERTY_VIDEOCONTROL_FRAME_RATES: Self = Self(2i32);
pub const KSPROPERTY_VIDEOCONTROL_MODE: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDCAP_VIDEOCONTROL {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDCAP_VIDEOCONTROL {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDCAP_VIDEODECODER(pub i32);
impl KSPROPERTY_VIDCAP_VIDEODECODER {
pub const KSPROPERTY_VIDEODECODER_CAPS: Self = Self(0i32);
pub const KSPROPERTY_VIDEODECODER_STANDARD: Self = Self(1i32);
pub const KSPROPERTY_VIDEODECODER_STATUS: Self = Self(2i32);
pub const KSPROPERTY_VIDEODECODER_OUTPUT_ENABLE: Self = Self(3i32);
pub const KSPROPERTY_VIDEODECODER_VCR_TIMING: Self = Self(4i32);
pub const KSPROPERTY_VIDEODECODER_STATUS2: Self = Self(5i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDCAP_VIDEODECODER {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDCAP_VIDEODECODER {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDCAP_VIDEOENCODER(pub i32);
impl KSPROPERTY_VIDCAP_VIDEOENCODER {
pub const KSPROPERTY_VIDEOENCODER_CAPS: Self = Self(0i32);
pub const KSPROPERTY_VIDEOENCODER_STANDARD: Self = Self(1i32);
pub const KSPROPERTY_VIDEOENCODER_COPYPROTECTION: Self = Self(2i32);
pub const KSPROPERTY_VIDEOENCODER_CC_ENABLE: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDCAP_VIDEOENCODER {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDCAP_VIDEOENCODER {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDCAP_VIDEOPROCAMP(pub i32);
impl KSPROPERTY_VIDCAP_VIDEOPROCAMP {
pub const KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS: Self = Self(0i32);
pub const KSPROPERTY_VIDEOPROCAMP_CONTRAST: Self = Self(1i32);
pub const KSPROPERTY_VIDEOPROCAMP_HUE: Self = Self(2i32);
pub const KSPROPERTY_VIDEOPROCAMP_SATURATION: Self = Self(3i32);
pub const KSPROPERTY_VIDEOPROCAMP_SHARPNESS: Self = Self(4i32);
pub const KSPROPERTY_VIDEOPROCAMP_GAMMA: Self = Self(5i32);
pub const KSPROPERTY_VIDEOPROCAMP_COLORENABLE: Self = Self(6i32);
pub const KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE: Self = Self(7i32);
pub const KSPROPERTY_VIDEOPROCAMP_BACKLIGHT_COMPENSATION: Self = Self(8i32);
pub const KSPROPERTY_VIDEOPROCAMP_GAIN: Self = Self(9i32);
pub const KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER: Self = Self(10i32);
pub const KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER_LIMIT: Self = Self(11i32);
pub const KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE_COMPONENT: Self = Self(12i32);
pub const KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY: Self = Self(13i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDCAP_VIDEOPROCAMP {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDCAP_VIDEOPROCAMP {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S {
pub Property: KSIDENTIFIER,
pub StreamIndex: u32,
pub DefaultKeyFrameRate: i32,
pub DefaultPFrameRate: i32,
pub DefaultQuality: i32,
pub NumberOfQualitySettings: i32,
pub Capabilities: i32,
}
impl KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOCOMPRESSION_S {
pub Property: KSIDENTIFIER,
pub StreamIndex: u32,
pub Value: i32,
}
impl KSPROPERTY_VIDEOCOMPRESSION_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOCOMPRESSION_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOCOMPRESSION_S1 {
pub Property: KSIDENTIFIER,
pub StreamIndex: u32,
pub Value: i32,
pub Flags: u32,
}
impl KSPROPERTY_VIDEOCOMPRESSION_S1 {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOCOMPRESSION_S1 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S {
pub Property: KSIDENTIFIER,
pub StreamIndex: u32,
pub RangeIndex: u32,
pub Dimensions: super::DisplayDevices::SIZE,
pub CurrentActualFrameRate: i64,
pub CurrentMaxAvailableFrameRate: i64,
}
impl KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOCONTROL_CAPS_S {
pub Property: KSIDENTIFIER,
pub StreamIndex: u32,
pub VideoControlCaps: u32,
}
impl KSPROPERTY_VIDEOCONTROL_CAPS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOCONTROL_CAPS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S {
pub Property: KSIDENTIFIER,
pub StreamIndex: u32,
pub RangeIndex: u32,
pub Dimensions: super::DisplayDevices::SIZE,
}
impl KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOCONTROL_MODE_S {
pub Property: KSIDENTIFIER,
pub StreamIndex: u32,
pub Mode: i32,
}
impl KSPROPERTY_VIDEOCONTROL_MODE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOCONTROL_MODE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEODECODER_CAPS_S {
pub Property: KSIDENTIFIER,
pub StandardsSupported: u32,
pub Capabilities: u32,
pub SettlingTime: u32,
pub HSyncPerVSync: u32,
}
impl KSPROPERTY_VIDEODECODER_CAPS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEODECODER_CAPS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEODECODER_S {
pub Property: KSIDENTIFIER,
pub Value: u32,
}
impl KSPROPERTY_VIDEODECODER_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEODECODER_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEODECODER_STATUS2_S {
pub Property: KSIDENTIFIER,
pub NumberOfLines: u32,
pub SignalLocked: u32,
pub ChromaLock: u32,
}
impl KSPROPERTY_VIDEODECODER_STATUS2_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEODECODER_STATUS2_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEODECODER_STATUS_S {
pub Property: KSIDENTIFIER,
pub NumberOfLines: u32,
pub SignalLocked: u32,
}
impl KSPROPERTY_VIDEODECODER_STATUS_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEODECODER_STATUS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOENCODER_S {
pub Property: KSIDENTIFIER,
pub Value: i32,
pub Flags: u32,
pub Capabilities: u32,
}
impl KSPROPERTY_VIDEOENCODER_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOENCODER_S {
type Abi = Self;
}
pub const KSPROPERTY_VIDEOPROCAMP_FLAGS_AUTO: i32 = 1i32;
pub const KSPROPERTY_VIDEOPROCAMP_FLAGS_MANUAL: i32 = 2i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOPROCAMP_NODE_S {
pub NodeProperty: KSP_NODE,
pub Value: i32,
pub Flags: u32,
pub Capabilities: u32,
}
impl KSPROPERTY_VIDEOPROCAMP_NODE_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOPROCAMP_NODE_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOPROCAMP_NODE_S2 {
pub NodeProperty: KSP_NODE,
pub Value1: i32,
pub Flags: u32,
pub Capabilities: u32,
pub Value2: i32,
}
impl KSPROPERTY_VIDEOPROCAMP_NODE_S2 {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOPROCAMP_NODE_S2 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOPROCAMP_S {
pub Property: KSIDENTIFIER,
pub Value: i32,
pub Flags: u32,
pub Capabilities: u32,
}
impl KSPROPERTY_VIDEOPROCAMP_S {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOPROCAMP_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSPROPERTY_VIDEOPROCAMP_S2 {
pub Property: KSIDENTIFIER,
pub Value1: i32,
pub Flags: u32,
pub Capabilities: u32,
pub Value2: i32,
}
impl KSPROPERTY_VIDEOPROCAMP_S2 {}
unsafe impl ::windows::Abi for KSPROPERTY_VIDEOPROCAMP_S2 {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VIDMEM_TRANSPORT(pub i32);
impl KSPROPERTY_VIDMEM_TRANSPORT {
pub const KSPROPERTY_DISPLAY_ADAPTER_GUID: Self = Self(1i32);
pub const KSPROPERTY_PREFERRED_CAPTURE_SURFACE: Self = Self(2i32);
pub const KSPROPERTY_CURRENT_CAPTURE_SURFACE: Self = Self(3i32);
pub const KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VIDMEM_TRANSPORT {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VIDMEM_TRANSPORT {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_VPCONFIG(pub i32);
impl KSPROPERTY_VPCONFIG {
pub const KSPROPERTY_VPCONFIG_NUMCONNECTINFO: Self = Self(0i32);
pub const KSPROPERTY_VPCONFIG_GETCONNECTINFO: Self = Self(1i32);
pub const KSPROPERTY_VPCONFIG_SETCONNECTINFO: Self = Self(2i32);
pub const KSPROPERTY_VPCONFIG_VPDATAINFO: Self = Self(3i32);
pub const KSPROPERTY_VPCONFIG_MAXPIXELRATE: Self = Self(4i32);
pub const KSPROPERTY_VPCONFIG_INFORMVPINPUT: Self = Self(5i32);
pub const KSPROPERTY_VPCONFIG_NUMVIDEOFORMAT: Self = Self(6i32);
pub const KSPROPERTY_VPCONFIG_GETVIDEOFORMAT: Self = Self(7i32);
pub const KSPROPERTY_VPCONFIG_SETVIDEOFORMAT: Self = Self(8i32);
pub const KSPROPERTY_VPCONFIG_INVERTPOLARITY: Self = Self(9i32);
pub const KSPROPERTY_VPCONFIG_DECIMATIONCAPABILITY: Self = Self(10i32);
pub const KSPROPERTY_VPCONFIG_SCALEFACTOR: Self = Self(11i32);
pub const KSPROPERTY_VPCONFIG_DDRAWHANDLE: Self = Self(12i32);
pub const KSPROPERTY_VPCONFIG_VIDEOPORTID: Self = Self(13i32);
pub const KSPROPERTY_VPCONFIG_DDRAWSURFACEHANDLE: Self = Self(14i32);
pub const KSPROPERTY_VPCONFIG_SURFACEPARAMS: Self = Self(15i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_VPCONFIG {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_VPCONFIG {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSPROPERTY_WAVE(pub i32);
impl KSPROPERTY_WAVE {
pub const KSPROPERTY_WAVE_COMPATIBLE_CAPABILITIES: Self = Self(0i32);
pub const KSPROPERTY_WAVE_INPUT_CAPABILITIES: Self = Self(1i32);
pub const KSPROPERTY_WAVE_OUTPUT_CAPABILITIES: Self = Self(2i32);
pub const KSPROPERTY_WAVE_BUFFER: Self = Self(3i32);
pub const KSPROPERTY_WAVE_FREQUENCY: Self = Self(4i32);
pub const KSPROPERTY_WAVE_VOLUME: Self = Self(5i32);
pub const KSPROPERTY_WAVE_PAN: Self = Self(6i32);
}
impl ::std::convert::From<i32> for KSPROPERTY_WAVE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSPROPERTY_WAVE {
type Abi = Self;
}
pub const KSPROPERTY_WAVE_QUEUED_POSITION: u32 = 1u32;
pub const KSPROPSETID_AC3: ::windows::Guid = ::windows::Guid::from_values(
3215714080,
28191,
4560,
[188, 242, 68, 69, 83, 84, 0, 0],
);
pub const KSPROPSETID_Audio: ::windows::Guid = ::windows::Guid::from_values(
1174383264,
28187,
4560,
[188, 242, 68, 69, 83, 84, 0, 0],
);
pub const KSPROPSETID_AudioBufferDuration: ::windows::Guid =
::windows::Guid::from_values(
1316208767,
9164,
18773,
[167, 234, 61, 165, 2, 73, 98, 144],
);
pub const KSPROPSETID_AudioDecoderOut: ::windows::Guid = ::windows::Guid::from_values(
1822875680,
17341,
4560,
[189, 106, 0, 53, 5, 193, 3, 169],
);
pub const KSPROPSETID_AudioEngine: ::windows::Guid = ::windows::Guid::from_values(
976192220,
34927,
19370,
[158, 180, 8, 43, 144, 37, 197, 54],
);
pub const KSPROPSETID_AudioModule: ::windows::Guid = ::windows::Guid::from_values(
3224698288,
65397,
18376,
[170, 60, 238, 70, 113, 107, 80, 198],
);
pub const KSPROPSETID_AudioPosture: ::windows::Guid = ::windows::Guid::from_values(
3675580634,
615,
19115,
[135, 89, 186, 200, 142, 70, 182, 83],
);
pub const KSPROPSETID_AudioSignalProcessing: ::windows::Guid =
::windows::Guid::from_values(
1332196648,
12489,
16606,
[178, 251, 133, 157, 221, 31, 52, 112],
);
pub const KSPROPSETID_Bibliographic: ::windows::Guid = ::windows::Guid::from_values(
129635598,
58033,
4560,
[172, 23, 0, 160, 201, 34, 49, 150],
);
pub const KSPROPSETID_BtAudio: ::windows::Guid = ::windows::Guid::from_values(
2141219904,
47350,
19582,
[133, 86, 232, 195, 58, 18, 229, 77],
);
pub const KSPROPSETID_Clock: ::windows::Guid = ::windows::Guid::from_values(
3742540992,
44055,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSPROPSETID_Connection: ::windows::Guid = ::windows::Guid::from_values(
492357920,
44187,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSPROPSETID_CopyProt: ::windows::Guid = ::windows::Guid::from_values(
243927616,
27375,
4560,
[158, 208, 0, 160, 36, 202, 25, 179],
);
pub const KSPROPSETID_Cyclic: ::windows::Guid = ::windows::Guid::from_values(
1073655456,
11246,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSPROPSETID_DirectSound3DBuffer: ::windows::Guid =
::windows::Guid::from_values(
1132147729,
53344,
4560,
[133, 131, 0, 192, 79, 217, 186, 243],
);
pub const KSPROPSETID_DirectSound3DListener: ::windows::Guid =
::windows::Guid::from_values(
1132147732,
53344,
4560,
[133, 131, 0, 192, 79, 217, 186, 243],
);
pub const KSPROPSETID_DrmAudioStream: ::windows::Guid = ::windows::Guid::from_values(
791449053,
16792,
20396,
[186, 41, 97, 187, 5, 183, 222, 6],
);
pub const KSPROPSETID_DvdSubPic: ::windows::Guid = ::windows::Guid::from_values(
2889417824,
17327,
4560,
[189, 106, 0, 53, 5, 193, 3, 169],
);
pub const KSPROPSETID_FMRXControl: ::windows::Guid = ::windows::Guid::from_values(
2491136570,
59630,
18310,
[144, 196, 132, 40, 24, 95, 5, 190],
);
pub const KSPROPSETID_FMRXTopology: ::windows::Guid = ::windows::Guid::from_values(
205966991,
56365,
16900,
[157, 201, 245, 137, 99, 54, 101, 99],
);
pub const KSPROPSETID_General: ::windows::Guid = ::windows::Guid::from_values(
342158757,
27279,
4561,
[154, 167, 0, 160, 201, 34, 49, 150],
);
pub const KSPROPSETID_Hrtf3d: ::windows::Guid = ::windows::Guid::from_values(
3060657328,
41091,
4560,
[133, 30, 0, 192, 79, 217, 186, 243],
);
pub const KSPROPSETID_InterleavedAudio: ::windows::Guid = ::windows::Guid::from_values(
3924550992,
54809,
19466,
[151, 107, 112, 98, 50, 43, 48, 6],
);
pub const KSPROPSETID_Itd3d: ::windows::Guid = ::windows::Guid::from_values(
1680470160,
40921,
4560,
[167, 91, 0, 160, 201, 3, 101, 227],
);
pub const KSPROPSETID_Jack: ::windows::Guid = ::windows::Guid::from_values(
1158281047,
11590,
17975,
[142, 98, 206, 125, 185, 68, 245, 123],
);
pub const KSPROPSETID_MPEG4_MediaType_Attributes: ::windows::Guid =
::windows::Guid::from_values(
4285287418,
1961,
19579,
[162, 55, 103, 47, 157, 104, 6, 95],
);
pub const KSPROPSETID_MediaSeeking: ::windows::Guid = ::windows::Guid::from_values(
4002434828,
53403,
4560,
[171, 233, 0, 160, 201, 34, 49, 150],
);
pub const KSPROPSETID_MemoryTransport: ::windows::Guid = ::windows::Guid::from_values(
171777117,
21059,
18457,
[158, 208, 174, 232, 4, 76, 238, 43],
);
pub const KSPROPSETID_Mpeg2Vid: ::windows::Guid = ::windows::Guid::from_values(
3370195808,
3273,
4560,
[189, 105, 0, 53, 5, 193, 3, 169],
);
pub const KSPROPSETID_OverlayUpdate: ::windows::Guid = ::windows::Guid::from_values(
1225696719,
30337,
4561,
[162, 28, 0, 160, 201, 34, 49, 150],
);
pub const KSPROPSETID_Pin: ::windows::Guid = ::windows::Guid::from_values(
2350074208,
20909,
4559,
[135, 138, 148, 248, 1, 193, 0, 0],
);
pub const KSPROPSETID_PinMDLCacheClearProp: ::windows::Guid =
::windows::Guid::from_values(
3178334843,
38908,
16583,
[136, 206, 211, 255, 6, 245, 91, 22],
);
pub const KSPROPSETID_Quality: ::windows::Guid = ::windows::Guid::from_values(
3513439104,
44058,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSPROPSETID_RtAudio: ::windows::Guid = ::windows::Guid::from_values(
2824184972,
12152,
18217,
[144, 81, 25, 104, 116, 107, 158, 239],
);
pub const KSPROPSETID_SoundDetector: ::windows::Guid = ::windows::Guid::from_values(
289161822,
64791,
16471,
[180, 34, 237, 64, 116, 241, 175, 223],
);
pub const KSPROPSETID_SoundDetector2: ::windows::Guid = ::windows::Guid::from_values(
4261929762,
17676,
19413,
[132, 202, 169, 72, 80, 14, 166, 170],
);
pub const KSPROPSETID_Stream: ::windows::Guid = ::windows::Guid::from_values(
1705687648,
39086,
4559,
[161, 13, 0, 32, 175, 209, 86, 228],
);
pub const KSPROPSETID_StreamAllocator: ::windows::Guid = ::windows::Guid::from_values(
3480109890,
60551,
4559,
[161, 48, 0, 32, 175, 209, 86, 228],
);
pub const KSPROPSETID_StreamInterface: ::windows::Guid = ::windows::Guid::from_values(
534613729,
40147,
4560,
[130, 170, 0, 0, 248, 34, 254, 138],
);
pub const KSPROPSETID_TSRateChange: ::windows::Guid = ::windows::Guid::from_values(
2768487872,
7453,
4561,
[173, 128, 68, 69, 83, 84, 0, 0],
);
pub const KSPROPSETID_TelephonyControl: ::windows::Guid = ::windows::Guid::from_values(
3068100273,
53401,
18591,
[166, 160, 192, 16, 111, 8, 135, 167],
);
pub const KSPROPSETID_TelephonyTopology: ::windows::Guid = ::windows::Guid::from_values(
2884787326,
3684,
20018,
[177, 144, 208, 246, 215, 197, 62, 151],
);
pub const KSPROPSETID_Topology: ::windows::Guid = ::windows::Guid::from_values(
1913473728,
30003,
4560,
[165, 214, 40, 219, 4, 193, 0, 0],
);
pub const KSPROPSETID_TopologyNode: ::windows::Guid = ::windows::Guid::from_values(
1174383265,
28187,
4560,
[188, 242, 68, 69, 83, 84, 0, 0],
);
pub const KSPROPSETID_VBICAP_PROPERTIES: ::windows::Guid = ::windows::Guid::from_values(
4049782279,
31541,
18799,
[173, 127, 45, 202, 59, 70, 183, 24],
);
pub const KSPROPSETID_VBICodecFiltering: ::windows::Guid = ::windows::Guid::from_values(
3405689034,
34581,
4560,
[189, 106, 0, 53, 192, 237, 186, 190],
);
pub const KSPROPSETID_VPConfig: ::windows::Guid = ::windows::Guid::from_values(
3156846176,
12515,
4560,
[158, 105, 0, 192, 79, 215, 193, 91],
);
pub const KSPROPSETID_VPVBIConfig: ::windows::Guid = ::windows::Guid::from_values(
3964836608,
6687,
4561,
[186, 217, 0, 96, 151, 68, 17, 26],
);
pub const KSPROPSETID_VramCapture: ::windows::Guid = ::windows::Guid::from_values(
3879709923,
10368,
18690,
[183, 153, 136, 208, 205, 99, 78, 15],
);
pub const KSPROPSETID_Wave: ::windows::Guid = ::windows::Guid::from_values(
2454607024,
25359,
4559,
[173, 167, 8, 0, 62, 48, 73, 74],
);
pub const KSPROPTYPESETID_General: ::windows::Guid = ::windows::Guid::from_values(
2548669344,
48618,
4559,
[165, 214, 40, 219, 4, 193, 0, 0],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSP_TIMEFORMAT {
pub Property: KSIDENTIFIER,
pub SourceFormat: ::windows::Guid,
pub TargetFormat: ::windows::Guid,
pub Time: i64,
}
impl KSP_TIMEFORMAT {}
unsafe impl ::windows::Abi for KSP_TIMEFORMAT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSQUALITY {
pub Context: *mut ::std::ffi::c_void,
pub Proportion: u32,
pub DeltaTime: i64,
}
impl KSQUALITY {}
impl ::std::default::Default for KSQUALITY {
fn default() -> Self {
Self {
Context: ::std::ptr::null_mut(),
Proportion: 0,
DeltaTime: 0,
}
}
}
impl ::std::fmt::Debug for KSQUALITY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSQUALITY")
.field("Context", &format_args!("{:?}", self.Context))
.field("Proportion", &format_args!("{:?}", self.Proportion))
.field("DeltaTime", &format_args!("{:?}", self.DeltaTime))
.finish()
}
}
impl ::std::cmp::PartialEq for KSQUALITY {
fn eq(&self, other: &Self) -> bool {
self.Context == other.Context
&& self.Proportion == other.Proportion
&& self.DeltaTime == other.DeltaTime
}
}
impl ::std::cmp::Eq for KSQUALITY {}
unsafe impl ::windows::Abi for KSQUALITY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSQUALITY_MANAGER {
pub QualityManager: super::SystemServices::HANDLE,
pub Context: *mut ::std::ffi::c_void,
}
impl KSQUALITY_MANAGER {}
impl ::std::default::Default for KSQUALITY_MANAGER {
fn default() -> Self {
Self {
QualityManager: ::std::default::Default::default(),
Context: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for KSQUALITY_MANAGER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSQUALITY_MANAGER")
.field("QualityManager", &format_args!("{:?}", self.QualityManager))
.field("Context", &format_args!("{:?}", self.Context))
.finish()
}
}
impl ::std::cmp::PartialEq for KSQUALITY_MANAGER {
fn eq(&self, other: &Self) -> bool {
self.QualityManager == other.QualityManager && self.Context == other.Context
}
}
impl ::std::cmp::Eq for KSQUALITY_MANAGER {}
unsafe impl ::windows::Abi for KSQUALITY_MANAGER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSQUERYBUFFER {
pub Event: KSIDENTIFIER,
pub EventData: *mut KSEVENTDATA,
pub Reserved: *mut ::std::ffi::c_void,
}
impl KSQUERYBUFFER {}
unsafe impl ::windows::Abi for KSQUERYBUFFER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRATE {
pub PresentationStart: i64,
pub Duration: i64,
pub Interface: KSIDENTIFIER,
pub Rate: i32,
pub Flags: u32,
}
impl KSRATE {}
unsafe impl ::windows::Abi for KSRATE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRATE_CAPABILITY {
pub Property: KSIDENTIFIER,
pub Rate: KSRATE,
}
impl KSRATE_CAPABILITY {}
unsafe impl ::windows::Abi for KSRATE_CAPABILITY {
type Abi = Self;
}
pub const KSRATE_NOPRESENTATIONDURATION: u32 = 2u32;
pub const KSRATE_NOPRESENTATIONSTART: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRELATIVEEVENT {
pub Size: u32,
pub Flags: u32,
pub Anonymous: KSRELATIVEEVENT_0,
pub Reserved: *mut ::std::ffi::c_void,
pub Event: KSIDENTIFIER,
pub EventData: KSEVENTDATA,
}
impl KSRELATIVEEVENT {}
unsafe impl ::windows::Abi for KSRELATIVEEVENT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSRELATIVEEVENT_0 {
pub ObjectHandle: super::SystemServices::HANDLE,
pub ObjectPointer: *mut ::std::ffi::c_void,
}
impl KSRELATIVEEVENT_0 {}
unsafe impl ::windows::Abi for KSRELATIVEEVENT_0 {
type Abi = Self;
}
pub const KSRELATIVEEVENT_FLAG_HANDLE: u32 = 1u32;
pub const KSRELATIVEEVENT_FLAG_POINTER: u32 = 2u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSRESET(pub i32);
impl KSRESET {
pub const KSRESET_BEGIN: Self = Self(0i32);
pub const KSRESET_END: Self = Self(1i32);
}
impl ::std::convert::From<i32> for KSRESET {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSRESET {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRESOLUTION {
pub Granularity: i64,
pub Error: i64,
}
impl KSRESOLUTION {}
impl ::std::default::Default for KSRESOLUTION {
fn default() -> Self {
Self {
Granularity: 0,
Error: 0,
}
}
}
impl ::std::fmt::Debug for KSRESOLUTION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSRESOLUTION")
.field("Granularity", &format_args!("{:?}", self.Granularity))
.field("Error", &format_args!("{:?}", self.Error))
.finish()
}
}
impl ::std::cmp::PartialEq for KSRESOLUTION {
fn eq(&self, other: &Self) -> bool {
self.Granularity == other.Granularity && self.Error == other.Error
}
}
impl ::std::cmp::Eq for KSRESOLUTION {}
unsafe impl ::windows::Abi for KSRESOLUTION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_BUFFER {
pub BufferAddress: *mut ::std::ffi::c_void,
pub ActualBufferSize: u32,
pub CallMemoryBarrier: super::SystemServices::BOOL,
}
impl KSRTAUDIO_BUFFER {}
impl ::std::default::Default for KSRTAUDIO_BUFFER {
fn default() -> Self {
Self {
BufferAddress: ::std::ptr::null_mut(),
ActualBufferSize: 0,
CallMemoryBarrier: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSRTAUDIO_BUFFER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSRTAUDIO_BUFFER")
.field("BufferAddress", &format_args!("{:?}", self.BufferAddress))
.field(
"ActualBufferSize",
&format_args!("{:?}", self.ActualBufferSize),
)
.field(
"CallMemoryBarrier",
&format_args!("{:?}", self.CallMemoryBarrier),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSRTAUDIO_BUFFER {
fn eq(&self, other: &Self) -> bool {
self.BufferAddress == other.BufferAddress
&& self.ActualBufferSize == other.ActualBufferSize
&& self.CallMemoryBarrier == other.CallMemoryBarrier
}
}
impl ::std::cmp::Eq for KSRTAUDIO_BUFFER {}
unsafe impl ::windows::Abi for KSRTAUDIO_BUFFER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_BUFFER32 {
pub BufferAddress: u32,
pub ActualBufferSize: u32,
pub CallMemoryBarrier: super::SystemServices::BOOL,
}
impl KSRTAUDIO_BUFFER32 {}
impl ::std::default::Default for KSRTAUDIO_BUFFER32 {
fn default() -> Self {
Self {
BufferAddress: 0,
ActualBufferSize: 0,
CallMemoryBarrier: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSRTAUDIO_BUFFER32 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSRTAUDIO_BUFFER32")
.field("BufferAddress", &format_args!("{:?}", self.BufferAddress))
.field(
"ActualBufferSize",
&format_args!("{:?}", self.ActualBufferSize),
)
.field(
"CallMemoryBarrier",
&format_args!("{:?}", self.CallMemoryBarrier),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSRTAUDIO_BUFFER32 {
fn eq(&self, other: &Self) -> bool {
self.BufferAddress == other.BufferAddress
&& self.ActualBufferSize == other.ActualBufferSize
&& self.CallMemoryBarrier == other.CallMemoryBarrier
}
}
impl ::std::cmp::Eq for KSRTAUDIO_BUFFER32 {}
unsafe impl ::windows::Abi for KSRTAUDIO_BUFFER32 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_BUFFER_PROPERTY {
pub Property: KSIDENTIFIER,
pub BaseAddress: *mut ::std::ffi::c_void,
pub RequestedBufferSize: u32,
}
impl KSRTAUDIO_BUFFER_PROPERTY {}
unsafe impl ::windows::Abi for KSRTAUDIO_BUFFER_PROPERTY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_BUFFER_PROPERTY32 {
pub Property: KSIDENTIFIER,
pub BaseAddress: u32,
pub RequestedBufferSize: u32,
}
impl KSRTAUDIO_BUFFER_PROPERTY32 {}
unsafe impl ::windows::Abi for KSRTAUDIO_BUFFER_PROPERTY32 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION {
pub Property: KSIDENTIFIER,
pub BaseAddress: *mut ::std::ffi::c_void,
pub RequestedBufferSize: u32,
pub NotificationCount: u32,
}
impl KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION {}
unsafe impl ::windows::Abi for KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION32 {
pub Property: KSIDENTIFIER,
pub BaseAddress: u32,
pub RequestedBufferSize: u32,
pub NotificationCount: u32,
}
impl KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION32 {}
unsafe impl ::windows::Abi for KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION32 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_GETREADPACKET_INFO {
pub PacketNumber: u32,
pub Flags: u32,
pub PerformanceCounterValue: u64,
pub MoreData: super::SystemServices::BOOL,
}
impl KSRTAUDIO_GETREADPACKET_INFO {}
impl ::std::default::Default for KSRTAUDIO_GETREADPACKET_INFO {
fn default() -> Self {
Self {
PacketNumber: 0,
Flags: 0,
PerformanceCounterValue: 0,
MoreData: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSRTAUDIO_GETREADPACKET_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSRTAUDIO_GETREADPACKET_INFO")
.field("PacketNumber", &format_args!("{:?}", self.PacketNumber))
.field("Flags", &format_args!("{:?}", self.Flags))
.field(
"PerformanceCounterValue",
&format_args!("{:?}", self.PerformanceCounterValue),
)
.field("MoreData", &format_args!("{:?}", self.MoreData))
.finish()
}
}
impl ::std::cmp::PartialEq for KSRTAUDIO_GETREADPACKET_INFO {
fn eq(&self, other: &Self) -> bool {
self.PacketNumber == other.PacketNumber
&& self.Flags == other.Flags
&& self.PerformanceCounterValue == other.PerformanceCounterValue
&& self.MoreData == other.MoreData
}
}
impl ::std::cmp::Eq for KSRTAUDIO_GETREADPACKET_INFO {}
unsafe impl ::windows::Abi for KSRTAUDIO_GETREADPACKET_INFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_HWLATENCY {
pub FifoSize: u32,
pub ChipsetDelay: u32,
pub CodecDelay: u32,
}
impl KSRTAUDIO_HWLATENCY {}
impl ::std::default::Default for KSRTAUDIO_HWLATENCY {
fn default() -> Self {
Self {
FifoSize: 0,
ChipsetDelay: 0,
CodecDelay: 0,
}
}
}
impl ::std::fmt::Debug for KSRTAUDIO_HWLATENCY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSRTAUDIO_HWLATENCY")
.field("FifoSize", &format_args!("{:?}", self.FifoSize))
.field("ChipsetDelay", &format_args!("{:?}", self.ChipsetDelay))
.field("CodecDelay", &format_args!("{:?}", self.CodecDelay))
.finish()
}
}
impl ::std::cmp::PartialEq for KSRTAUDIO_HWLATENCY {
fn eq(&self, other: &Self) -> bool {
self.FifoSize == other.FifoSize
&& self.ChipsetDelay == other.ChipsetDelay
&& self.CodecDelay == other.CodecDelay
}
}
impl ::std::cmp::Eq for KSRTAUDIO_HWLATENCY {}
unsafe impl ::windows::Abi for KSRTAUDIO_HWLATENCY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_HWREGISTER {
pub Register: *mut ::std::ffi::c_void,
pub Width: u32,
pub Numerator: u64,
pub Denominator: u64,
pub Accuracy: u32,
}
impl KSRTAUDIO_HWREGISTER {}
impl ::std::default::Default for KSRTAUDIO_HWREGISTER {
fn default() -> Self {
Self {
Register: ::std::ptr::null_mut(),
Width: 0,
Numerator: 0,
Denominator: 0,
Accuracy: 0,
}
}
}
impl ::std::fmt::Debug for KSRTAUDIO_HWREGISTER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSRTAUDIO_HWREGISTER")
.field("Register", &format_args!("{:?}", self.Register))
.field("Width", &format_args!("{:?}", self.Width))
.field("Numerator", &format_args!("{:?}", self.Numerator))
.field("Denominator", &format_args!("{:?}", self.Denominator))
.field("Accuracy", &format_args!("{:?}", self.Accuracy))
.finish()
}
}
impl ::std::cmp::PartialEq for KSRTAUDIO_HWREGISTER {
fn eq(&self, other: &Self) -> bool {
self.Register == other.Register
&& self.Width == other.Width
&& self.Numerator == other.Numerator
&& self.Denominator == other.Denominator
&& self.Accuracy == other.Accuracy
}
}
impl ::std::cmp::Eq for KSRTAUDIO_HWREGISTER {}
unsafe impl ::windows::Abi for KSRTAUDIO_HWREGISTER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_HWREGISTER32 {
pub Register: u32,
pub Width: u32,
pub Numerator: u64,
pub Denominator: u64,
pub Accuracy: u32,
}
impl KSRTAUDIO_HWREGISTER32 {}
impl ::std::default::Default for KSRTAUDIO_HWREGISTER32 {
fn default() -> Self {
Self {
Register: 0,
Width: 0,
Numerator: 0,
Denominator: 0,
Accuracy: 0,
}
}
}
impl ::std::fmt::Debug for KSRTAUDIO_HWREGISTER32 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSRTAUDIO_HWREGISTER32")
.field("Register", &format_args!("{:?}", self.Register))
.field("Width", &format_args!("{:?}", self.Width))
.field("Numerator", &format_args!("{:?}", self.Numerator))
.field("Denominator", &format_args!("{:?}", self.Denominator))
.field("Accuracy", &format_args!("{:?}", self.Accuracy))
.finish()
}
}
impl ::std::cmp::PartialEq for KSRTAUDIO_HWREGISTER32 {
fn eq(&self, other: &Self) -> bool {
self.Register == other.Register
&& self.Width == other.Width
&& self.Numerator == other.Numerator
&& self.Denominator == other.Denominator
&& self.Accuracy == other.Accuracy
}
}
impl ::std::cmp::Eq for KSRTAUDIO_HWREGISTER32 {}
unsafe impl ::windows::Abi for KSRTAUDIO_HWREGISTER32 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_HWREGISTER_PROPERTY {
pub Property: KSIDENTIFIER,
pub BaseAddress: *mut ::std::ffi::c_void,
}
impl KSRTAUDIO_HWREGISTER_PROPERTY {}
unsafe impl ::windows::Abi for KSRTAUDIO_HWREGISTER_PROPERTY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_HWREGISTER_PROPERTY32 {
pub Property: KSIDENTIFIER,
pub BaseAddress: u32,
}
impl KSRTAUDIO_HWREGISTER_PROPERTY32 {}
unsafe impl ::windows::Abi for KSRTAUDIO_HWREGISTER_PROPERTY32 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY {
pub Property: KSIDENTIFIER,
pub NotificationEvent: super::SystemServices::HANDLE,
}
impl KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY {}
unsafe impl ::windows::Abi for KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY32 {
pub Property: KSIDENTIFIER,
pub NotificationEvent: u32,
}
impl KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY32 {}
unsafe impl ::windows::Abi for KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY32 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_PACKETVREGISTER {
pub CompletedPacketCount: *mut u64,
pub CompletedPacketQPC: *mut u64,
pub CompletedPacketHash: *mut u64,
}
impl KSRTAUDIO_PACKETVREGISTER {}
impl ::std::default::Default for KSRTAUDIO_PACKETVREGISTER {
fn default() -> Self {
Self {
CompletedPacketCount: ::std::ptr::null_mut(),
CompletedPacketQPC: ::std::ptr::null_mut(),
CompletedPacketHash: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for KSRTAUDIO_PACKETVREGISTER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSRTAUDIO_PACKETVREGISTER")
.field(
"CompletedPacketCount",
&format_args!("{:?}", self.CompletedPacketCount),
)
.field(
"CompletedPacketQPC",
&format_args!("{:?}", self.CompletedPacketQPC),
)
.field(
"CompletedPacketHash",
&format_args!("{:?}", self.CompletedPacketHash),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSRTAUDIO_PACKETVREGISTER {
fn eq(&self, other: &Self) -> bool {
self.CompletedPacketCount == other.CompletedPacketCount
&& self.CompletedPacketQPC == other.CompletedPacketQPC
&& self.CompletedPacketHash == other.CompletedPacketHash
}
}
impl ::std::cmp::Eq for KSRTAUDIO_PACKETVREGISTER {}
unsafe impl ::windows::Abi for KSRTAUDIO_PACKETVREGISTER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_PACKETVREGISTER_PROPERTY {
pub Property: KSIDENTIFIER,
pub BaseAddress: *mut ::std::ffi::c_void,
}
impl KSRTAUDIO_PACKETVREGISTER_PROPERTY {}
unsafe impl ::windows::Abi for KSRTAUDIO_PACKETVREGISTER_PROPERTY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSRTAUDIO_SETWRITEPACKET_INFO {
pub PacketNumber: u32,
pub Flags: u32,
pub EosPacketLength: u32,
}
impl KSRTAUDIO_SETWRITEPACKET_INFO {}
impl ::std::default::Default for KSRTAUDIO_SETWRITEPACKET_INFO {
fn default() -> Self {
Self {
PacketNumber: 0,
Flags: 0,
EosPacketLength: 0,
}
}
}
impl ::std::fmt::Debug for KSRTAUDIO_SETWRITEPACKET_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSRTAUDIO_SETWRITEPACKET_INFO")
.field("PacketNumber", &format_args!("{:?}", self.PacketNumber))
.field("Flags", &format_args!("{:?}", self.Flags))
.field(
"EosPacketLength",
&format_args!("{:?}", self.EosPacketLength),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSRTAUDIO_SETWRITEPACKET_INFO {
fn eq(&self, other: &Self) -> bool {
self.PacketNumber == other.PacketNumber
&& self.Flags == other.Flags
&& self.EosPacketLength == other.EosPacketLength
}
}
impl ::std::cmp::Eq for KSRTAUDIO_SETWRITEPACKET_INFO {}
unsafe impl ::windows::Abi for KSRTAUDIO_SETWRITEPACKET_INFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSSOUNDDETECTORPROPERTY {
pub Property: KSIDENTIFIER,
pub EventId: ::windows::Guid,
}
impl KSSOUNDDETECTORPROPERTY {}
unsafe impl ::windows::Abi for KSSOUNDDETECTORPROPERTY {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KSSTATE(pub i32);
impl KSSTATE {
pub const KSSTATE_STOP: Self = Self(0i32);
pub const KSSTATE_ACQUIRE: Self = Self(1i32);
pub const KSSTATE_PAUSE: Self = Self(2i32);
pub const KSSTATE_RUN: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KSSTATE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KSSTATE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSSTREAMALLOCATOR_STATUS {
pub Framing: KSALLOCATOR_FRAMING,
pub AllocatedFrames: u32,
pub Reserved: u32,
}
impl KSSTREAMALLOCATOR_STATUS {}
unsafe impl ::windows::Abi for KSSTREAMALLOCATOR_STATUS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSSTREAMALLOCATOR_STATUS_EX {
pub Framing: KSALLOCATOR_FRAMING_EX,
pub AllocatedFrames: u32,
pub Reserved: u32,
}
impl KSSTREAMALLOCATOR_STATUS_EX {}
unsafe impl ::windows::Abi for KSSTREAMALLOCATOR_STATUS_EX {
type Abi = Self;
}
pub const KSSTREAM_FAILUREEXCEPTION: u32 = 8192u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSTIME {
pub Time: i64,
pub Numerator: u32,
pub Denominator: u32,
}
impl KSTIME {}
impl ::std::default::Default for KSTIME {
fn default() -> Self {
Self {
Time: 0,
Numerator: 0,
Denominator: 0,
}
}
}
impl ::std::fmt::Debug for KSTIME {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSTIME")
.field("Time", &format_args!("{:?}", self.Time))
.field("Numerator", &format_args!("{:?}", self.Numerator))
.field("Denominator", &format_args!("{:?}", self.Denominator))
.finish()
}
}
impl ::std::cmp::PartialEq for KSTIME {
fn eq(&self, other: &Self) -> bool {
self.Time == other.Time
&& self.Numerator == other.Numerator
&& self.Denominator == other.Denominator
}
}
impl ::std::cmp::Eq for KSTIME {}
unsafe impl ::windows::Abi for KSTIME {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSSTREAM_HEADER {
pub Size: u32,
pub TypeSpecificFlags: u32,
pub PresentationTime: KSTIME,
pub Duration: i64,
pub FrameExtent: u32,
pub DataUsed: u32,
pub Data: *mut ::std::ffi::c_void,
pub OptionsFlags: u32,
pub Reserved: u32,
}
impl KSSTREAM_HEADER {}
impl ::std::default::Default for KSSTREAM_HEADER {
fn default() -> Self {
Self {
Size: 0,
TypeSpecificFlags: 0,
PresentationTime: ::std::default::Default::default(),
Duration: 0,
FrameExtent: 0,
DataUsed: 0,
Data: ::std::ptr::null_mut(),
OptionsFlags: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSSTREAM_HEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSSTREAM_HEADER")
.field("Size", &format_args!("{:?}", self.Size))
.field(
"TypeSpecificFlags",
&format_args!("{:?}", self.TypeSpecificFlags),
)
.field(
"PresentationTime",
&format_args!("{:?}", self.PresentationTime),
)
.field("Duration", &format_args!("{:?}", self.Duration))
.field("FrameExtent", &format_args!("{:?}", self.FrameExtent))
.field("DataUsed", &format_args!("{:?}", self.DataUsed))
.field("Data", &format_args!("{:?}", self.Data))
.field("OptionsFlags", &format_args!("{:?}", self.OptionsFlags))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSSTREAM_HEADER {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.TypeSpecificFlags == other.TypeSpecificFlags
&& self.PresentationTime == other.PresentationTime
&& self.Duration == other.Duration
&& self.FrameExtent == other.FrameExtent
&& self.DataUsed == other.DataUsed
&& self.Data == other.Data
&& self.OptionsFlags == other.OptionsFlags
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSSTREAM_HEADER {}
unsafe impl ::windows::Abi for KSSTREAM_HEADER {
type Abi = Self;
}
pub const KSSTREAM_HEADER_OPTIONSF_BUFFEREDTRANSFER: u32 = 1024u32;
pub const KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY: u32 = 4u32;
pub const KSSTREAM_HEADER_OPTIONSF_DURATIONVALID: u32 = 256u32;
pub const KSSTREAM_HEADER_OPTIONSF_ENDOFPHOTOSEQUENCE: u32 = 8192u32;
pub const KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM: u32 = 512u32;
pub const KSSTREAM_HEADER_OPTIONSF_FLUSHONPAUSE: u32 = 128u32;
pub const KSSTREAM_HEADER_OPTIONSF_FRAMEINFO: u32 = 16384u32;
pub const KSSTREAM_HEADER_OPTIONSF_LOOPEDDATA: u32 = 2147483648u32;
pub const KSSTREAM_HEADER_OPTIONSF_METADATA: u32 = 4096u32;
pub const KSSTREAM_HEADER_OPTIONSF_PERSIST_SAMPLE: u32 = 32768u32;
pub const KSSTREAM_HEADER_OPTIONSF_PREROLL: u32 = 2u32;
pub const KSSTREAM_HEADER_OPTIONSF_SAMPLE_PERSISTED: u32 = 65536u32;
pub const KSSTREAM_HEADER_OPTIONSF_SECUREBUFFERTRANSFER: u32 = 262144u32;
pub const KSSTREAM_HEADER_OPTIONSF_SPLICEPOINT: u32 = 1u32;
pub const KSSTREAM_HEADER_OPTIONSF_TIMEDISCONTINUITY: u32 = 64u32;
pub const KSSTREAM_HEADER_OPTIONSF_TIMEVALID: u32 = 16u32;
pub const KSSTREAM_HEADER_OPTIONSF_TYPECHANGED: u32 = 8u32;
pub const KSSTREAM_HEADER_OPTIONSF_VRAM_DATA_TRANSFER: u32 = 2048u32;
pub const KSSTREAM_HEADER_TRACK_COMPLETION_NUMBERS: u32 = 131072u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSSTREAM_METADATA_INFO {
pub BufferSize: u32,
pub UsedSize: u32,
pub Data: *mut ::std::ffi::c_void,
pub SystemVa: *mut ::std::ffi::c_void,
pub Flags: u32,
pub Reserved: u32,
}
impl KSSTREAM_METADATA_INFO {}
impl ::std::default::Default for KSSTREAM_METADATA_INFO {
fn default() -> Self {
Self {
BufferSize: 0,
UsedSize: 0,
Data: ::std::ptr::null_mut(),
SystemVa: ::std::ptr::null_mut(),
Flags: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSSTREAM_METADATA_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSSTREAM_METADATA_INFO")
.field("BufferSize", &format_args!("{:?}", self.BufferSize))
.field("UsedSize", &format_args!("{:?}", self.UsedSize))
.field("Data", &format_args!("{:?}", self.Data))
.field("SystemVa", &format_args!("{:?}", self.SystemVa))
.field("Flags", &format_args!("{:?}", self.Flags))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSSTREAM_METADATA_INFO {
fn eq(&self, other: &Self) -> bool {
self.BufferSize == other.BufferSize
&& self.UsedSize == other.UsedSize
&& self.Data == other.Data
&& self.SystemVa == other.SystemVa
&& self.Flags == other.Flags
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSSTREAM_METADATA_INFO {}
unsafe impl ::windows::Abi for KSSTREAM_METADATA_INFO {
type Abi = Self;
}
pub const KSSTREAM_NONPAGED_DATA: u32 = 256u32;
pub const KSSTREAM_PAGED_DATA: u32 = 0u32;
pub const KSSTREAM_SYNCHRONOUS: u32 = 4096u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSSTREAM_UVC_METADATATYPE_TIMESTAMP {
pub PresentationTimeStamp: u32,
pub SourceClockReference: u32,
pub Anonymous: KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0,
pub Reserved0: u16,
pub Reserved1: u32,
}
impl KSSTREAM_UVC_METADATATYPE_TIMESTAMP {}
unsafe impl ::windows::Abi for KSSTREAM_UVC_METADATATYPE_TIMESTAMP {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0 {
pub Anonymous: KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0,
pub SCRToken: u16,
}
impl KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0 {}
unsafe impl ::windows::Abi for KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0 {
pub _bitfield: u16,
}
impl KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0 {}
impl ::std::default::Default for KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0 {
fn default() -> Self {
Self { _bitfield: 0 }
}
}
impl ::std::fmt::Debug for KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous_e__Struct")
.field("_bitfield", &format_args!("{:?}", self._bitfield))
.finish()
}
}
impl ::std::cmp::PartialEq for KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0 {
fn eq(&self, other: &Self) -> bool {
self._bitfield == other._bitfield
}
}
impl ::std::cmp::Eq for KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0 {}
unsafe impl ::windows::Abi for KSSTREAM_UVC_METADATATYPE_TIMESTAMP_0_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSSTREAM_UVC_METADATA {
pub StartOfFrameTimestamp: KSSTREAM_UVC_METADATATYPE_TIMESTAMP,
pub EndOfFrameTimestamp: KSSTREAM_UVC_METADATATYPE_TIMESTAMP,
}
impl KSSTREAM_UVC_METADATA {}
unsafe impl ::windows::Abi for KSSTREAM_UVC_METADATA {
type Abi = Self;
}
pub const KSSTREAM_UVC_SECURE_ATTRIBUTE_SIZE: u32 = 8192u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct TELEPHONY_CALLTYPE(pub i32);
impl TELEPHONY_CALLTYPE {
pub const TELEPHONY_CALLTYPE_CIRCUITSWITCHED: Self = Self(0i32);
pub const TELEPHONY_CALLTYPE_PACKETSWITCHED_LTE: Self = Self(1i32);
pub const TELEPHONY_CALLTYPE_PACKETSWITCHED_WLAN: Self = Self(2i32);
}
impl ::std::convert::From<i32> for TELEPHONY_CALLTYPE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for TELEPHONY_CALLTYPE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct TELEPHONY_CALLCONTROLOP(pub i32);
impl TELEPHONY_CALLCONTROLOP {
pub const TELEPHONY_CALLCONTROLOP_DISABLE: Self = Self(0i32);
pub const TELEPHONY_CALLCONTROLOP_ENABLE: Self = Self(1i32);
}
impl ::std::convert::From<i32> for TELEPHONY_CALLCONTROLOP {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for TELEPHONY_CALLCONTROLOP {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSTELEPHONY_CALLCONTROL {
pub CallType: TELEPHONY_CALLTYPE,
pub CallControlOp: TELEPHONY_CALLCONTROLOP,
}
impl KSTELEPHONY_CALLCONTROL {}
impl ::std::default::Default for KSTELEPHONY_CALLCONTROL {
fn default() -> Self {
Self {
CallType: ::std::default::Default::default(),
CallControlOp: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSTELEPHONY_CALLCONTROL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSTELEPHONY_CALLCONTROL")
.field("CallType", &format_args!("{:?}", self.CallType))
.field("CallControlOp", &format_args!("{:?}", self.CallControlOp))
.finish()
}
}
impl ::std::cmp::PartialEq for KSTELEPHONY_CALLCONTROL {
fn eq(&self, other: &Self) -> bool {
self.CallType == other.CallType && self.CallControlOp == other.CallControlOp
}
}
impl ::std::cmp::Eq for KSTELEPHONY_CALLCONTROL {}
unsafe impl ::windows::Abi for KSTELEPHONY_CALLCONTROL {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct TELEPHONY_CALLSTATE(pub i32);
impl TELEPHONY_CALLSTATE {
pub const TELEPHONY_CALLSTATE_DISABLED: Self = Self(0i32);
pub const TELEPHONY_CALLSTATE_ENABLED: Self = Self(1i32);
pub const TELEPHONY_CALLSTATE_HOLD: Self = Self(2i32);
pub const TELEPHONY_CALLSTATE_PROVIDERTRANSITION: Self = Self(3i32);
}
impl ::std::convert::From<i32> for TELEPHONY_CALLSTATE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for TELEPHONY_CALLSTATE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSTELEPHONY_CALLINFO {
pub CallType: TELEPHONY_CALLTYPE,
pub CallState: TELEPHONY_CALLSTATE,
}
impl KSTELEPHONY_CALLINFO {}
impl ::std::default::Default for KSTELEPHONY_CALLINFO {
fn default() -> Self {
Self {
CallType: ::std::default::Default::default(),
CallState: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSTELEPHONY_CALLINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSTELEPHONY_CALLINFO")
.field("CallType", &format_args!("{:?}", self.CallType))
.field("CallState", &format_args!("{:?}", self.CallState))
.finish()
}
}
impl ::std::cmp::PartialEq for KSTELEPHONY_CALLINFO {
fn eq(&self, other: &Self) -> bool {
self.CallType == other.CallType && self.CallState == other.CallState
}
}
impl ::std::cmp::Eq for KSTELEPHONY_CALLINFO {}
unsafe impl ::windows::Abi for KSTELEPHONY_CALLINFO {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct TELEPHONY_PROVIDERCHANGEOP(pub i32);
impl TELEPHONY_PROVIDERCHANGEOP {
pub const TELEPHONY_PROVIDERCHANGEOP_END: Self = Self(0i32);
pub const TELEPHONY_PROVIDERCHANGEOP_BEGIN: Self = Self(1i32);
pub const TELEPHONY_PROVIDERCHANGEOP_CANCEL: Self = Self(2i32);
}
impl ::std::convert::From<i32> for TELEPHONY_PROVIDERCHANGEOP {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for TELEPHONY_PROVIDERCHANGEOP {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSTELEPHONY_PROVIDERCHANGE {
pub CallType: TELEPHONY_CALLTYPE,
pub ProviderChangeOp: TELEPHONY_PROVIDERCHANGEOP,
}
impl KSTELEPHONY_PROVIDERCHANGE {}
impl ::std::default::Default for KSTELEPHONY_PROVIDERCHANGE {
fn default() -> Self {
Self {
CallType: ::std::default::Default::default(),
ProviderChangeOp: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSTELEPHONY_PROVIDERCHANGE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSTELEPHONY_PROVIDERCHANGE")
.field("CallType", &format_args!("{:?}", self.CallType))
.field(
"ProviderChangeOp",
&format_args!("{:?}", self.ProviderChangeOp),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSTELEPHONY_PROVIDERCHANGE {
fn eq(&self, other: &Self) -> bool {
self.CallType == other.CallType
&& self.ProviderChangeOp == other.ProviderChangeOp
}
}
impl ::std::cmp::Eq for KSTELEPHONY_PROVIDERCHANGE {}
unsafe impl ::windows::Abi for KSTELEPHONY_PROVIDERCHANGE {
type Abi = Self;
}
pub const KSTIME_FORMAT_BYTE: ::windows::Guid = ::windows::Guid::from_values(
2071483761,
35970,
4559,
[188, 12, 0, 170, 0, 172, 116, 246],
);
pub const KSTIME_FORMAT_FIELD: ::windows::Guid = ::windows::Guid::from_values(
2071483763,
35970,
4559,
[188, 12, 0, 170, 0, 172, 116, 246],
);
pub const KSTIME_FORMAT_FRAME: ::windows::Guid = ::windows::Guid::from_values(
2071483760,
35970,
4559,
[188, 12, 0, 170, 0, 172, 116, 246],
);
pub const KSTIME_FORMAT_MEDIA_TIME: ::windows::Guid = ::windows::Guid::from_values(
2071483764,
35970,
4559,
[188, 12, 0, 170, 0, 172, 116, 246],
);
pub const KSTIME_FORMAT_SAMPLE: ::windows::Guid = ::windows::Guid::from_values(
2071483762,
35970,
4559,
[188, 12, 0, 170, 0, 172, 116, 246],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSTOPOLOGY {
pub CategoriesCount: u32,
pub Categories: *mut ::windows::Guid,
pub TopologyNodesCount: u32,
pub TopologyNodes: *mut ::windows::Guid,
pub TopologyConnectionsCount: u32,
pub TopologyConnections: *mut super::DirectShow::KSTOPOLOGY_CONNECTION,
pub TopologyNodesNames: *mut ::windows::Guid,
pub Reserved: u32,
}
impl KSTOPOLOGY {}
impl ::std::default::Default for KSTOPOLOGY {
fn default() -> Self {
Self {
CategoriesCount: 0,
Categories: ::std::ptr::null_mut(),
TopologyNodesCount: 0,
TopologyNodes: ::std::ptr::null_mut(),
TopologyConnectionsCount: 0,
TopologyConnections: ::std::ptr::null_mut(),
TopologyNodesNames: ::std::ptr::null_mut(),
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSTOPOLOGY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSTOPOLOGY")
.field(
"CategoriesCount",
&format_args!("{:?}", self.CategoriesCount),
)
.field("Categories", &format_args!("{:?}", self.Categories))
.field(
"TopologyNodesCount",
&format_args!("{:?}", self.TopologyNodesCount),
)
.field("TopologyNodes", &format_args!("{:?}", self.TopologyNodes))
.field(
"TopologyConnectionsCount",
&format_args!("{:?}", self.TopologyConnectionsCount),
)
.field(
"TopologyConnections",
&format_args!("{:?}", self.TopologyConnections),
)
.field(
"TopologyNodesNames",
&format_args!("{:?}", self.TopologyNodesNames),
)
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSTOPOLOGY {
fn eq(&self, other: &Self) -> bool {
self.CategoriesCount == other.CategoriesCount
&& self.Categories == other.Categories
&& self.TopologyNodesCount == other.TopologyNodesCount
&& self.TopologyNodes == other.TopologyNodes
&& self.TopologyConnectionsCount == other.TopologyConnectionsCount
&& self.TopologyConnections == other.TopologyConnections
&& self.TopologyNodesNames == other.TopologyNodesNames
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSTOPOLOGY {}
unsafe impl ::windows::Abi for KSTOPOLOGY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSTOPOLOGY_ENDPOINTID {
pub TopologyName: [u16; 260],
pub PinId: u32,
}
impl KSTOPOLOGY_ENDPOINTID {}
impl ::std::default::Default for KSTOPOLOGY_ENDPOINTID {
fn default() -> Self {
Self {
TopologyName: [0; 260],
PinId: 0,
}
}
}
impl ::std::fmt::Debug for KSTOPOLOGY_ENDPOINTID {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSTOPOLOGY_ENDPOINTID")
.field("TopologyName", &format_args!("{:?}", self.TopologyName))
.field("PinId", &format_args!("{:?}", self.PinId))
.finish()
}
}
impl ::std::cmp::PartialEq for KSTOPOLOGY_ENDPOINTID {
fn eq(&self, other: &Self) -> bool {
self.TopologyName == other.TopologyName && self.PinId == other.PinId
}
}
impl ::std::cmp::Eq for KSTOPOLOGY_ENDPOINTID {}
unsafe impl ::windows::Abi for KSTOPOLOGY_ENDPOINTID {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSTOPOLOGY_ENDPOINTIDPAIR {
pub RenderEndpoint: KSTOPOLOGY_ENDPOINTID,
pub CaptureEndpoint: KSTOPOLOGY_ENDPOINTID,
}
impl KSTOPOLOGY_ENDPOINTIDPAIR {}
impl ::std::default::Default for KSTOPOLOGY_ENDPOINTIDPAIR {
fn default() -> Self {
Self {
RenderEndpoint: ::std::default::Default::default(),
CaptureEndpoint: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KSTOPOLOGY_ENDPOINTIDPAIR {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSTOPOLOGY_ENDPOINTIDPAIR")
.field("RenderEndpoint", &format_args!("{:?}", self.RenderEndpoint))
.field(
"CaptureEndpoint",
&format_args!("{:?}", self.CaptureEndpoint),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSTOPOLOGY_ENDPOINTIDPAIR {
fn eq(&self, other: &Self) -> bool {
self.RenderEndpoint == other.RenderEndpoint
&& self.CaptureEndpoint == other.CaptureEndpoint
}
}
impl ::std::cmp::Eq for KSTOPOLOGY_ENDPOINTIDPAIR {}
unsafe impl ::windows::Abi for KSTOPOLOGY_ENDPOINTIDPAIR {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_AMVPSIZE {
pub dwWidth: u32,
pub dwHeight: u32,
}
impl KS_AMVPSIZE {}
impl ::std::default::Default for KS_AMVPSIZE {
fn default() -> Self {
Self {
dwWidth: 0,
dwHeight: 0,
}
}
}
impl ::std::fmt::Debug for KS_AMVPSIZE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_AMVPSIZE")
.field("dwWidth", &format_args!("{:?}", self.dwWidth))
.field("dwHeight", &format_args!("{:?}", self.dwHeight))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_AMVPSIZE {
fn eq(&self, other: &Self) -> bool {
self.dwWidth == other.dwWidth && self.dwHeight == other.dwHeight
}
}
impl ::std::cmp::Eq for KS_AMVPSIZE {}
unsafe impl ::windows::Abi for KS_AMVPSIZE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSVPMAXPIXELRATE {
pub Size: KS_AMVPSIZE,
pub MaxPixelsPerSecond: u32,
pub Reserved: u32,
}
impl KSVPMAXPIXELRATE {}
impl ::std::default::Default for KSVPMAXPIXELRATE {
fn default() -> Self {
Self {
Size: ::std::default::Default::default(),
MaxPixelsPerSecond: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for KSVPMAXPIXELRATE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSVPMAXPIXELRATE")
.field("Size", &format_args!("{:?}", self.Size))
.field(
"MaxPixelsPerSecond",
&format_args!("{:?}", self.MaxPixelsPerSecond),
)
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KSVPMAXPIXELRATE {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size
&& self.MaxPixelsPerSecond == other.MaxPixelsPerSecond
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KSVPMAXPIXELRATE {}
unsafe impl ::windows::Abi for KSVPMAXPIXELRATE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSVPSIZE_PROP {
pub Property: KSIDENTIFIER,
pub Size: KS_AMVPSIZE,
}
impl KSVPSIZE_PROP {}
unsafe impl ::windows::Abi for KSVPSIZE_PROP {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSVPSURFACEPARAMS {
pub dwPitch: u32,
pub dwXOrigin: u32,
pub dwYOrigin: u32,
}
impl KSVPSURFACEPARAMS {}
impl ::std::default::Default for KSVPSURFACEPARAMS {
fn default() -> Self {
Self {
dwPitch: 0,
dwXOrigin: 0,
dwYOrigin: 0,
}
}
}
impl ::std::fmt::Debug for KSVPSURFACEPARAMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSVPSURFACEPARAMS")
.field("dwPitch", &format_args!("{:?}", self.dwPitch))
.field("dwXOrigin", &format_args!("{:?}", self.dwXOrigin))
.field("dwYOrigin", &format_args!("{:?}", self.dwYOrigin))
.finish()
}
}
impl ::std::cmp::PartialEq for KSVPSURFACEPARAMS {
fn eq(&self, other: &Self) -> bool {
self.dwPitch == other.dwPitch
&& self.dwXOrigin == other.dwXOrigin
&& self.dwYOrigin == other.dwYOrigin
}
}
impl ::std::cmp::Eq for KSVPSURFACEPARAMS {}
unsafe impl ::windows::Abi for KSVPSURFACEPARAMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSWAVETABLE_WAVE_DESC {
pub Identifier: KSIDENTIFIER,
pub Size: u32,
pub Looped: super::SystemServices::BOOL,
pub LoopPoint: u32,
pub InROM: super::SystemServices::BOOL,
pub Format: KSDATAFORMAT,
}
impl KSWAVETABLE_WAVE_DESC {}
unsafe impl ::windows::Abi for KSWAVETABLE_WAVE_DESC {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSWAVE_BUFFER {
pub Attributes: u32,
pub BufferSize: u32,
pub BufferAddress: *mut ::std::ffi::c_void,
}
impl KSWAVE_BUFFER {}
impl ::std::default::Default for KSWAVE_BUFFER {
fn default() -> Self {
Self {
Attributes: 0,
BufferSize: 0,
BufferAddress: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for KSWAVE_BUFFER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSWAVE_BUFFER")
.field("Attributes", &format_args!("{:?}", self.Attributes))
.field("BufferSize", &format_args!("{:?}", self.BufferSize))
.field("BufferAddress", &format_args!("{:?}", self.BufferAddress))
.finish()
}
}
impl ::std::cmp::PartialEq for KSWAVE_BUFFER {
fn eq(&self, other: &Self) -> bool {
self.Attributes == other.Attributes
&& self.BufferSize == other.BufferSize
&& self.BufferAddress == other.BufferAddress
}
}
impl ::std::cmp::Eq for KSWAVE_BUFFER {}
unsafe impl ::windows::Abi for KSWAVE_BUFFER {
type Abi = Self;
}
pub const KSWAVE_BUFFER_ATTRIBUTEF_LOOPING: u32 = 1u32;
pub const KSWAVE_BUFFER_ATTRIBUTEF_STATIC: u32 = 2u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSWAVE_COMPATCAPS {
pub ulDeviceType: u32,
}
impl KSWAVE_COMPATCAPS {}
impl ::std::default::Default for KSWAVE_COMPATCAPS {
fn default() -> Self {
Self { ulDeviceType: 0 }
}
}
impl ::std::fmt::Debug for KSWAVE_COMPATCAPS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSWAVE_COMPATCAPS")
.field("ulDeviceType", &format_args!("{:?}", self.ulDeviceType))
.finish()
}
}
impl ::std::cmp::PartialEq for KSWAVE_COMPATCAPS {
fn eq(&self, other: &Self) -> bool {
self.ulDeviceType == other.ulDeviceType
}
}
impl ::std::cmp::Eq for KSWAVE_COMPATCAPS {}
unsafe impl ::windows::Abi for KSWAVE_COMPATCAPS {
type Abi = Self;
}
pub const KSWAVE_COMPATCAPS_INPUT: u32 = 0u32;
pub const KSWAVE_COMPATCAPS_OUTPUT: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSWAVE_INPUT_CAPABILITIES {
pub MaximumChannelsPerConnection: u32,
pub MinimumBitsPerSample: u32,
pub MaximumBitsPerSample: u32,
pub MinimumSampleFrequency: u32,
pub MaximumSampleFrequency: u32,
pub TotalConnections: u32,
pub ActiveConnections: u32,
}
impl KSWAVE_INPUT_CAPABILITIES {}
impl ::std::default::Default for KSWAVE_INPUT_CAPABILITIES {
fn default() -> Self {
Self {
MaximumChannelsPerConnection: 0,
MinimumBitsPerSample: 0,
MaximumBitsPerSample: 0,
MinimumSampleFrequency: 0,
MaximumSampleFrequency: 0,
TotalConnections: 0,
ActiveConnections: 0,
}
}
}
impl ::std::fmt::Debug for KSWAVE_INPUT_CAPABILITIES {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSWAVE_INPUT_CAPABILITIES")
.field(
"MaximumChannelsPerConnection",
&format_args!("{:?}", self.MaximumChannelsPerConnection),
)
.field(
"MinimumBitsPerSample",
&format_args!("{:?}", self.MinimumBitsPerSample),
)
.field(
"MaximumBitsPerSample",
&format_args!("{:?}", self.MaximumBitsPerSample),
)
.field(
"MinimumSampleFrequency",
&format_args!("{:?}", self.MinimumSampleFrequency),
)
.field(
"MaximumSampleFrequency",
&format_args!("{:?}", self.MaximumSampleFrequency),
)
.field(
"TotalConnections",
&format_args!("{:?}", self.TotalConnections),
)
.field(
"ActiveConnections",
&format_args!("{:?}", self.ActiveConnections),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSWAVE_INPUT_CAPABILITIES {
fn eq(&self, other: &Self) -> bool {
self.MaximumChannelsPerConnection == other.MaximumChannelsPerConnection
&& self.MinimumBitsPerSample == other.MinimumBitsPerSample
&& self.MaximumBitsPerSample == other.MaximumBitsPerSample
&& self.MinimumSampleFrequency == other.MinimumSampleFrequency
&& self.MaximumSampleFrequency == other.MaximumSampleFrequency
&& self.TotalConnections == other.TotalConnections
&& self.ActiveConnections == other.ActiveConnections
}
}
impl ::std::cmp::Eq for KSWAVE_INPUT_CAPABILITIES {}
unsafe impl ::windows::Abi for KSWAVE_INPUT_CAPABILITIES {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSWAVE_OUTPUT_CAPABILITIES {
pub MaximumChannelsPerConnection: u32,
pub MinimumBitsPerSample: u32,
pub MaximumBitsPerSample: u32,
pub MinimumSampleFrequency: u32,
pub MaximumSampleFrequency: u32,
pub TotalConnections: u32,
pub StaticConnections: u32,
pub StreamingConnections: u32,
pub ActiveConnections: u32,
pub ActiveStaticConnections: u32,
pub ActiveStreamingConnections: u32,
pub Total3DConnections: u32,
pub Static3DConnections: u32,
pub Streaming3DConnections: u32,
pub Active3DConnections: u32,
pub ActiveStatic3DConnections: u32,
pub ActiveStreaming3DConnections: u32,
pub TotalSampleMemory: u32,
pub FreeSampleMemory: u32,
pub LargestFreeContiguousSampleMemory: u32,
}
impl KSWAVE_OUTPUT_CAPABILITIES {}
impl ::std::default::Default for KSWAVE_OUTPUT_CAPABILITIES {
fn default() -> Self {
Self {
MaximumChannelsPerConnection: 0,
MinimumBitsPerSample: 0,
MaximumBitsPerSample: 0,
MinimumSampleFrequency: 0,
MaximumSampleFrequency: 0,
TotalConnections: 0,
StaticConnections: 0,
StreamingConnections: 0,
ActiveConnections: 0,
ActiveStaticConnections: 0,
ActiveStreamingConnections: 0,
Total3DConnections: 0,
Static3DConnections: 0,
Streaming3DConnections: 0,
Active3DConnections: 0,
ActiveStatic3DConnections: 0,
ActiveStreaming3DConnections: 0,
TotalSampleMemory: 0,
FreeSampleMemory: 0,
LargestFreeContiguousSampleMemory: 0,
}
}
}
impl ::std::fmt::Debug for KSWAVE_OUTPUT_CAPABILITIES {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSWAVE_OUTPUT_CAPABILITIES")
.field(
"MaximumChannelsPerConnection",
&format_args!("{:?}", self.MaximumChannelsPerConnection),
)
.field(
"MinimumBitsPerSample",
&format_args!("{:?}", self.MinimumBitsPerSample),
)
.field(
"MaximumBitsPerSample",
&format_args!("{:?}", self.MaximumBitsPerSample),
)
.field(
"MinimumSampleFrequency",
&format_args!("{:?}", self.MinimumSampleFrequency),
)
.field(
"MaximumSampleFrequency",
&format_args!("{:?}", self.MaximumSampleFrequency),
)
.field(
"TotalConnections",
&format_args!("{:?}", self.TotalConnections),
)
.field(
"StaticConnections",
&format_args!("{:?}", self.StaticConnections),
)
.field(
"StreamingConnections",
&format_args!("{:?}", self.StreamingConnections),
)
.field(
"ActiveConnections",
&format_args!("{:?}", self.ActiveConnections),
)
.field(
"ActiveStaticConnections",
&format_args!("{:?}", self.ActiveStaticConnections),
)
.field(
"ActiveStreamingConnections",
&format_args!("{:?}", self.ActiveStreamingConnections),
)
.field(
"Total3DConnections",
&format_args!("{:?}", self.Total3DConnections),
)
.field(
"Static3DConnections",
&format_args!("{:?}", self.Static3DConnections),
)
.field(
"Streaming3DConnections",
&format_args!("{:?}", self.Streaming3DConnections),
)
.field(
"Active3DConnections",
&format_args!("{:?}", self.Active3DConnections),
)
.field(
"ActiveStatic3DConnections",
&format_args!("{:?}", self.ActiveStatic3DConnections),
)
.field(
"ActiveStreaming3DConnections",
&format_args!("{:?}", self.ActiveStreaming3DConnections),
)
.field(
"TotalSampleMemory",
&format_args!("{:?}", self.TotalSampleMemory),
)
.field(
"FreeSampleMemory",
&format_args!("{:?}", self.FreeSampleMemory),
)
.field(
"LargestFreeContiguousSampleMemory",
&format_args!("{:?}", self.LargestFreeContiguousSampleMemory),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSWAVE_OUTPUT_CAPABILITIES {
fn eq(&self, other: &Self) -> bool {
self.MaximumChannelsPerConnection == other.MaximumChannelsPerConnection
&& self.MinimumBitsPerSample == other.MinimumBitsPerSample
&& self.MaximumBitsPerSample == other.MaximumBitsPerSample
&& self.MinimumSampleFrequency == other.MinimumSampleFrequency
&& self.MaximumSampleFrequency == other.MaximumSampleFrequency
&& self.TotalConnections == other.TotalConnections
&& self.StaticConnections == other.StaticConnections
&& self.StreamingConnections == other.StreamingConnections
&& self.ActiveConnections == other.ActiveConnections
&& self.ActiveStaticConnections == other.ActiveStaticConnections
&& self.ActiveStreamingConnections == other.ActiveStreamingConnections
&& self.Total3DConnections == other.Total3DConnections
&& self.Static3DConnections == other.Static3DConnections
&& self.Streaming3DConnections == other.Streaming3DConnections
&& self.Active3DConnections == other.Active3DConnections
&& self.ActiveStatic3DConnections == other.ActiveStatic3DConnections
&& self.ActiveStreaming3DConnections == other.ActiveStreaming3DConnections
&& self.TotalSampleMemory == other.TotalSampleMemory
&& self.FreeSampleMemory == other.FreeSampleMemory
&& self.LargestFreeContiguousSampleMemory
== other.LargestFreeContiguousSampleMemory
}
}
impl ::std::cmp::Eq for KSWAVE_OUTPUT_CAPABILITIES {}
unsafe impl ::windows::Abi for KSWAVE_OUTPUT_CAPABILITIES {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSWAVE_VOLUME {
pub LeftAttenuation: i32,
pub RightAttenuation: i32,
}
impl KSWAVE_VOLUME {}
impl ::std::default::Default for KSWAVE_VOLUME {
fn default() -> Self {
Self {
LeftAttenuation: 0,
RightAttenuation: 0,
}
}
}
impl ::std::fmt::Debug for KSWAVE_VOLUME {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSWAVE_VOLUME")
.field(
"LeftAttenuation",
&format_args!("{:?}", self.LeftAttenuation),
)
.field(
"RightAttenuation",
&format_args!("{:?}", self.RightAttenuation),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KSWAVE_VOLUME {
fn eq(&self, other: &Self) -> bool {
self.LeftAttenuation == other.LeftAttenuation
&& self.RightAttenuation == other.RightAttenuation
}
}
impl ::std::cmp::Eq for KSWAVE_VOLUME {}
unsafe impl ::windows::Abi for KSWAVE_VOLUME {
type Abi = Self;
}
pub const KS_AMCONTROL_COLORINFO_PRESENT: u32 = 128u32;
pub const KS_AMCONTROL_PAD_TO_16x9: u32 = 4u32;
pub const KS_AMCONTROL_PAD_TO_4x3: u32 = 2u32;
pub const KS_AMCONTROL_USED: u32 = 1u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_AMPixAspectRatio(pub i32);
impl KS_AMPixAspectRatio {
pub const KS_PixAspectRatio_NTSC4x3: Self = Self(0i32);
pub const KS_PixAspectRatio_NTSC16x9: Self = Self(1i32);
pub const KS_PixAspectRatio_PAL4x3: Self = Self(2i32);
pub const KS_PixAspectRatio_PAL16x9: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KS_AMPixAspectRatio {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_AMPixAspectRatio {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_AMVPDIMINFO {
pub dwFieldWidth: u32,
pub dwFieldHeight: u32,
pub dwVBIWidth: u32,
pub dwVBIHeight: u32,
pub rcValidRegion: super::DisplayDevices::RECT,
}
impl KS_AMVPDIMINFO {}
impl ::std::default::Default for KS_AMVPDIMINFO {
fn default() -> Self {
Self {
dwFieldWidth: 0,
dwFieldHeight: 0,
dwVBIWidth: 0,
dwVBIHeight: 0,
rcValidRegion: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KS_AMVPDIMINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_AMVPDIMINFO")
.field("dwFieldWidth", &format_args!("{:?}", self.dwFieldWidth))
.field("dwFieldHeight", &format_args!("{:?}", self.dwFieldHeight))
.field("dwVBIWidth", &format_args!("{:?}", self.dwVBIWidth))
.field("dwVBIHeight", &format_args!("{:?}", self.dwVBIHeight))
.field("rcValidRegion", &format_args!("{:?}", self.rcValidRegion))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_AMVPDIMINFO {
fn eq(&self, other: &Self) -> bool {
self.dwFieldWidth == other.dwFieldWidth
&& self.dwFieldHeight == other.dwFieldHeight
&& self.dwVBIWidth == other.dwVBIWidth
&& self.dwVBIHeight == other.dwVBIHeight
&& self.rcValidRegion == other.rcValidRegion
}
}
impl ::std::cmp::Eq for KS_AMVPDIMINFO {}
unsafe impl ::windows::Abi for KS_AMVPDIMINFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_AMVPDATAINFO {
pub dwSize: u32,
pub dwMicrosecondsPerField: u32,
pub amvpDimInfo: KS_AMVPDIMINFO,
pub dwPictAspectRatioX: u32,
pub dwPictAspectRatioY: u32,
pub bEnableDoubleClock: super::SystemServices::BOOL,
pub bEnableVACT: super::SystemServices::BOOL,
pub bDataIsInterlaced: super::SystemServices::BOOL,
pub lHalfLinesOdd: i32,
pub bFieldPolarityInverted: super::SystemServices::BOOL,
pub dwNumLinesInVREF: u32,
pub lHalfLinesEven: i32,
pub dwReserved1: u32,
}
impl KS_AMVPDATAINFO {}
impl ::std::default::Default for KS_AMVPDATAINFO {
fn default() -> Self {
Self {
dwSize: 0,
dwMicrosecondsPerField: 0,
amvpDimInfo: ::std::default::Default::default(),
dwPictAspectRatioX: 0,
dwPictAspectRatioY: 0,
bEnableDoubleClock: ::std::default::Default::default(),
bEnableVACT: ::std::default::Default::default(),
bDataIsInterlaced: ::std::default::Default::default(),
lHalfLinesOdd: 0,
bFieldPolarityInverted: ::std::default::Default::default(),
dwNumLinesInVREF: 0,
lHalfLinesEven: 0,
dwReserved1: 0,
}
}
}
impl ::std::fmt::Debug for KS_AMVPDATAINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_AMVPDATAINFO")
.field("dwSize", &format_args!("{:?}", self.dwSize))
.field(
"dwMicrosecondsPerField",
&format_args!("{:?}", self.dwMicrosecondsPerField),
)
.field("amvpDimInfo", &format_args!("{:?}", self.amvpDimInfo))
.field(
"dwPictAspectRatioX",
&format_args!("{:?}", self.dwPictAspectRatioX),
)
.field(
"dwPictAspectRatioY",
&format_args!("{:?}", self.dwPictAspectRatioY),
)
.field(
"bEnableDoubleClock",
&format_args!("{:?}", self.bEnableDoubleClock),
)
.field("bEnableVACT", &format_args!("{:?}", self.bEnableVACT))
.field(
"bDataIsInterlaced",
&format_args!("{:?}", self.bDataIsInterlaced),
)
.field("lHalfLinesOdd", &format_args!("{:?}", self.lHalfLinesOdd))
.field(
"bFieldPolarityInverted",
&format_args!("{:?}", self.bFieldPolarityInverted),
)
.field(
"dwNumLinesInVREF",
&format_args!("{:?}", self.dwNumLinesInVREF),
)
.field("lHalfLinesEven", &format_args!("{:?}", self.lHalfLinesEven))
.field("dwReserved1", &format_args!("{:?}", self.dwReserved1))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_AMVPDATAINFO {
fn eq(&self, other: &Self) -> bool {
self.dwSize == other.dwSize
&& self.dwMicrosecondsPerField == other.dwMicrosecondsPerField
&& self.amvpDimInfo == other.amvpDimInfo
&& self.dwPictAspectRatioX == other.dwPictAspectRatioX
&& self.dwPictAspectRatioY == other.dwPictAspectRatioY
&& self.bEnableDoubleClock == other.bEnableDoubleClock
&& self.bEnableVACT == other.bEnableVACT
&& self.bDataIsInterlaced == other.bDataIsInterlaced
&& self.lHalfLinesOdd == other.lHalfLinesOdd
&& self.bFieldPolarityInverted == other.bFieldPolarityInverted
&& self.dwNumLinesInVREF == other.dwNumLinesInVREF
&& self.lHalfLinesEven == other.lHalfLinesEven
&& self.dwReserved1 == other.dwReserved1
}
}
impl ::std::cmp::Eq for KS_AMVPDATAINFO {}
unsafe impl ::windows::Abi for KS_AMVPDATAINFO {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_AMVP_MODE(pub i32);
impl KS_AMVP_MODE {
pub const KS_AMVP_MODE_WEAVE: Self = Self(0i32);
pub const KS_AMVP_MODE_BOBINTERLEAVED: Self = Self(1i32);
pub const KS_AMVP_MODE_BOBNONINTERLEAVED: Self = Self(2i32);
pub const KS_AMVP_MODE_SKIPEVEN: Self = Self(3i32);
pub const KS_AMVP_MODE_SKIPODD: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KS_AMVP_MODE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_AMVP_MODE {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_AMVP_SELECTFORMATBY(pub i32);
impl KS_AMVP_SELECTFORMATBY {
pub const KS_AMVP_DO_NOT_CARE: Self = Self(0i32);
pub const KS_AMVP_BEST_BANDWIDTH: Self = Self(1i32);
pub const KS_AMVP_INPUT_SAME_AS_OUTPUT: Self = Self(2i32);
}
impl ::std::convert::From<i32> for KS_AMVP_SELECTFORMATBY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_AMVP_SELECTFORMATBY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_AM_ExactRateChange {
pub OutputZeroTime: i64,
pub Rate: i32,
}
impl KS_AM_ExactRateChange {}
impl ::std::default::Default for KS_AM_ExactRateChange {
fn default() -> Self {
Self {
OutputZeroTime: 0,
Rate: 0,
}
}
}
impl ::std::fmt::Debug for KS_AM_ExactRateChange {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_AM_ExactRateChange")
.field("OutputZeroTime", &format_args!("{:?}", self.OutputZeroTime))
.field("Rate", &format_args!("{:?}", self.Rate))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_AM_ExactRateChange {
fn eq(&self, other: &Self) -> bool {
self.OutputZeroTime == other.OutputZeroTime && self.Rate == other.Rate
}
}
impl ::std::cmp::Eq for KS_AM_ExactRateChange {}
unsafe impl ::windows::Abi for KS_AM_ExactRateChange {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_AM_PROPERTY_TS_RATE_CHANGE(pub i32);
impl KS_AM_PROPERTY_TS_RATE_CHANGE {
pub const KS_AM_RATE_SimpleRateChange: Self = Self(1i32);
pub const KS_AM_RATE_ExactRateChange: Self = Self(2i32);
pub const KS_AM_RATE_MaxFullDataRate: Self = Self(3i32);
pub const KS_AM_RATE_Step: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KS_AM_PROPERTY_TS_RATE_CHANGE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_AM_PROPERTY_TS_RATE_CHANGE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_AM_SimpleRateChange {
pub StartTime: i64,
pub Rate: i32,
}
impl KS_AM_SimpleRateChange {}
impl ::std::default::Default for KS_AM_SimpleRateChange {
fn default() -> Self {
Self {
StartTime: 0,
Rate: 0,
}
}
}
impl ::std::fmt::Debug for KS_AM_SimpleRateChange {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_AM_SimpleRateChange")
.field("StartTime", &format_args!("{:?}", self.StartTime))
.field("Rate", &format_args!("{:?}", self.Rate))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_AM_SimpleRateChange {
fn eq(&self, other: &Self) -> bool {
self.StartTime == other.StartTime && self.Rate == other.Rate
}
}
impl ::std::cmp::Eq for KS_AM_SimpleRateChange {}
unsafe impl ::windows::Abi for KS_AM_SimpleRateChange {
type Abi = Self;
}
pub const KS_AM_UseNewCSSKey: i32 = 1i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_AnalogVideoInfo {
pub rcSource: super::DisplayDevices::RECT,
pub rcTarget: super::DisplayDevices::RECT,
pub dwActiveWidth: u32,
pub dwActiveHeight: u32,
pub AvgTimePerFrame: i64,
}
impl KS_AnalogVideoInfo {}
impl ::std::default::Default for KS_AnalogVideoInfo {
fn default() -> Self {
Self {
rcSource: ::std::default::Default::default(),
rcTarget: ::std::default::Default::default(),
dwActiveWidth: 0,
dwActiveHeight: 0,
AvgTimePerFrame: 0,
}
}
}
impl ::std::fmt::Debug for KS_AnalogVideoInfo {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_AnalogVideoInfo")
.field("rcSource", &format_args!("{:?}", self.rcSource))
.field("rcTarget", &format_args!("{:?}", self.rcTarget))
.field("dwActiveWidth", &format_args!("{:?}", self.dwActiveWidth))
.field("dwActiveHeight", &format_args!("{:?}", self.dwActiveHeight))
.field(
"AvgTimePerFrame",
&format_args!("{:?}", self.AvgTimePerFrame),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KS_AnalogVideoInfo {
fn eq(&self, other: &Self) -> bool {
self.rcSource == other.rcSource
&& self.rcTarget == other.rcTarget
&& self.dwActiveWidth == other.dwActiveWidth
&& self.dwActiveHeight == other.dwActiveHeight
&& self.AvgTimePerFrame == other.AvgTimePerFrame
}
}
impl ::std::cmp::Eq for KS_AnalogVideoInfo {}
unsafe impl ::windows::Abi for KS_AnalogVideoInfo {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_AnalogVideoStandard(pub i32);
impl KS_AnalogVideoStandard {
pub const KS_AnalogVideo_None: Self = Self(0i32);
pub const KS_AnalogVideo_NTSC_M: Self = Self(1i32);
pub const KS_AnalogVideo_NTSC_M_J: Self = Self(2i32);
pub const KS_AnalogVideo_NTSC_433: Self = Self(4i32);
pub const KS_AnalogVideo_PAL_B: Self = Self(16i32);
pub const KS_AnalogVideo_PAL_D: Self = Self(32i32);
pub const KS_AnalogVideo_PAL_G: Self = Self(64i32);
pub const KS_AnalogVideo_PAL_H: Self = Self(128i32);
pub const KS_AnalogVideo_PAL_I: Self = Self(256i32);
pub const KS_AnalogVideo_PAL_M: Self = Self(512i32);
pub const KS_AnalogVideo_PAL_N: Self = Self(1024i32);
pub const KS_AnalogVideo_PAL_60: Self = Self(2048i32);
pub const KS_AnalogVideo_SECAM_B: Self = Self(4096i32);
pub const KS_AnalogVideo_SECAM_D: Self = Self(8192i32);
pub const KS_AnalogVideo_SECAM_G: Self = Self(16384i32);
pub const KS_AnalogVideo_SECAM_H: Self = Self(32768i32);
pub const KS_AnalogVideo_SECAM_K: Self = Self(65536i32);
pub const KS_AnalogVideo_SECAM_K1: Self = Self(131072i32);
pub const KS_AnalogVideo_SECAM_L: Self = Self(262144i32);
pub const KS_AnalogVideo_SECAM_L1: Self = Self(524288i32);
pub const KS_AnalogVideo_PAL_N_COMBO: Self = Self(1048576i32);
}
impl ::std::convert::From<i32> for KS_AnalogVideoStandard {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_AnalogVideoStandard {
type Abi = Self;
}
pub const KS_AnalogVideo_NTSC_Mask: u32 = 7u32;
pub const KS_AnalogVideo_PAL_Mask: u32 = 1052656u32;
pub const KS_AnalogVideo_SECAM_Mask: u32 = 1044480u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_BITMAPINFOHEADER {
pub biSize: u32,
pub biWidth: i32,
pub biHeight: i32,
pub biPlanes: u16,
pub biBitCount: u16,
pub biCompression: u32,
pub biSizeImage: u32,
pub biXPelsPerMeter: i32,
pub biYPelsPerMeter: i32,
pub biClrUsed: u32,
pub biClrImportant: u32,
}
impl KS_BITMAPINFOHEADER {}
impl ::std::default::Default for KS_BITMAPINFOHEADER {
fn default() -> Self {
Self {
biSize: 0,
biWidth: 0,
biHeight: 0,
biPlanes: 0,
biBitCount: 0,
biCompression: 0,
biSizeImage: 0,
biXPelsPerMeter: 0,
biYPelsPerMeter: 0,
biClrUsed: 0,
biClrImportant: 0,
}
}
}
impl ::std::fmt::Debug for KS_BITMAPINFOHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_BITMAPINFOHEADER")
.field("biSize", &format_args!("{:?}", self.biSize))
.field("biWidth", &format_args!("{:?}", self.biWidth))
.field("biHeight", &format_args!("{:?}", self.biHeight))
.field("biPlanes", &format_args!("{:?}", self.biPlanes))
.field("biBitCount", &format_args!("{:?}", self.biBitCount))
.field("biCompression", &format_args!("{:?}", self.biCompression))
.field("biSizeImage", &format_args!("{:?}", self.biSizeImage))
.field(
"biXPelsPerMeter",
&format_args!("{:?}", self.biXPelsPerMeter),
)
.field(
"biYPelsPerMeter",
&format_args!("{:?}", self.biYPelsPerMeter),
)
.field("biClrUsed", &format_args!("{:?}", self.biClrUsed))
.field("biClrImportant", &format_args!("{:?}", self.biClrImportant))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_BITMAPINFOHEADER {
fn eq(&self, other: &Self) -> bool {
self.biSize == other.biSize
&& self.biWidth == other.biWidth
&& self.biHeight == other.biHeight
&& self.biPlanes == other.biPlanes
&& self.biBitCount == other.biBitCount
&& self.biCompression == other.biCompression
&& self.biSizeImage == other.biSizeImage
&& self.biXPelsPerMeter == other.biXPelsPerMeter
&& self.biYPelsPerMeter == other.biYPelsPerMeter
&& self.biClrUsed == other.biClrUsed
&& self.biClrImportant == other.biClrImportant
}
}
impl ::std::cmp::Eq for KS_BITMAPINFOHEADER {}
unsafe impl ::windows::Abi for KS_BITMAPINFOHEADER {
type Abi = Self;
}
pub const KS_BI_BITFIELDS: i32 = 3i32;
pub const KS_BI_JPEG: i32 = 4i32;
pub const KS_BI_RGB: i32 = 0i32;
pub const KS_BI_RLE4: i32 = 2i32;
pub const KS_BI_RLE8: i32 = 1i32;
pub const KS_CC_SUBSTREAM_EVEN: i32 = 2i32;
pub const KS_CC_SUBSTREAM_FIELD1_MASK: i32 = 240i32;
pub const KS_CC_SUBSTREAM_FIELD2_MASK: i32 = 7936i32;
pub const KS_CC_SUBSTREAM_ODD: i32 = 1i32;
pub const KS_CC_SUBSTREAM_SERVICE_CC1: i32 = 16i32;
pub const KS_CC_SUBSTREAM_SERVICE_CC2: i32 = 32i32;
pub const KS_CC_SUBSTREAM_SERVICE_CC3: i32 = 256i32;
pub const KS_CC_SUBSTREAM_SERVICE_CC4: i32 = 512i32;
pub const KS_CC_SUBSTREAM_SERVICE_T1: i32 = 64i32;
pub const KS_CC_SUBSTREAM_SERVICE_T2: i32 = 128i32;
pub const KS_CC_SUBSTREAM_SERVICE_T3: i32 = 1024i32;
pub const KS_CC_SUBSTREAM_SERVICE_T4: i32 = 2048i32;
pub const KS_CC_SUBSTREAM_SERVICE_XDS: i32 = 4096i32;
pub const KS_COPYPROTECT_RestrictDuplication: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_COPY_MACROVISION {
pub MACROVISIONLevel: u32,
}
impl KS_COPY_MACROVISION {}
impl ::std::default::Default for KS_COPY_MACROVISION {
fn default() -> Self {
Self {
MACROVISIONLevel: 0,
}
}
}
impl ::std::fmt::Debug for KS_COPY_MACROVISION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_COPY_MACROVISION")
.field(
"MACROVISIONLevel",
&format_args!("{:?}", self.MACROVISIONLevel),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KS_COPY_MACROVISION {
fn eq(&self, other: &Self) -> bool {
self.MACROVISIONLevel == other.MACROVISIONLevel
}
}
impl ::std::cmp::Eq for KS_COPY_MACROVISION {}
unsafe impl ::windows::Abi for KS_COPY_MACROVISION {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_COPY_MACROVISION_LEVEL(pub i32);
impl KS_COPY_MACROVISION_LEVEL {
pub const KS_MACROVISION_DISABLED: Self = Self(0i32);
pub const KS_MACROVISION_LEVEL1: Self = Self(1i32);
pub const KS_MACROVISION_LEVEL2: Self = Self(2i32);
pub const KS_MACROVISION_LEVEL3: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KS_COPY_MACROVISION_LEVEL {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_COPY_MACROVISION_LEVEL {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_CameraControlAsyncOperation(pub i32);
impl KS_CameraControlAsyncOperation {
pub const KS_CAMERACONTROL_ASYNC_START: Self = Self(1i32);
pub const KS_CAMERACONTROL_ASYNC_STOP: Self = Self(2i32);
pub const KS_CAMERACONTROL_ASYNC_RESET: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KS_CameraControlAsyncOperation {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_CameraControlAsyncOperation {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_CompressionCaps(pub i32);
impl KS_CompressionCaps {
pub const KS_CompressionCaps_CanQuality: Self = Self(1i32);
pub const KS_CompressionCaps_CanCrunch: Self = Self(2i32);
pub const KS_CompressionCaps_CanKeyFrame: Self = Self(4i32);
pub const KS_CompressionCaps_CanBFrame: Self = Self(8i32);
pub const KS_CompressionCaps_CanWindow: Self = Self(16i32);
}
impl ::std::convert::From<i32> for KS_CompressionCaps {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_CompressionCaps {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_H264VIDEOINFO {
pub wWidth: u16,
pub wHeight: u16,
pub wSARwidth: u16,
pub wSARheight: u16,
pub wProfile: u16,
pub bLevelIDC: u8,
pub wConstrainedToolset: u16,
pub bmSupportedUsages: u32,
pub bmCapabilities: u16,
pub bmSVCCapabilities: u32,
pub bmMVCCapabilities: u32,
pub dwFrameInterval: u32,
pub bMaxCodecConfigDelay: u8,
pub bmSupportedSliceModes: u8,
pub bmSupportedSyncFrameTypes: u8,
pub bResolutionScaling: u8,
pub bSimulcastSupport: u8,
pub bmSupportedRateControlModes: u8,
pub wMaxMBperSecOneResolutionNoScalability: u16,
pub wMaxMBperSecTwoResolutionsNoScalability: u16,
pub wMaxMBperSecThreeResolutionsNoScalability: u16,
pub wMaxMBperSecFourResolutionsNoScalability: u16,
pub wMaxMBperSecOneResolutionTemporalScalability: u16,
pub wMaxMBperSecTwoResolutionsTemporalScalablility: u16,
pub wMaxMBperSecThreeResolutionsTemporalScalability: u16,
pub wMaxMBperSecFourResolutionsTemporalScalability: u16,
pub wMaxMBperSecOneResolutionTemporalQualityScalability: u16,
pub wMaxMBperSecTwoResolutionsTemporalQualityScalability: u16,
pub wMaxMBperSecThreeResolutionsTemporalQualityScalablity: u16,
pub wMaxMBperSecFourResolutionsTemporalQualityScalability: u16,
pub wMaxMBperSecOneResolutionTemporalSpatialScalability: u16,
pub wMaxMBperSecTwoResolutionsTemporalSpatialScalability: u16,
pub wMaxMBperSecThreeResolutionsTemporalSpatialScalablity: u16,
pub wMaxMBperSecFourResolutionsTemporalSpatialScalability: u16,
pub wMaxMBperSecOneResolutionFullScalability: u16,
pub wMaxMBperSecTwoResolutionsFullScalability: u16,
pub wMaxMBperSecThreeResolutionsFullScalability: u16,
pub wMaxMBperSecFourResolutionsFullScalability: u16,
}
impl KS_H264VIDEOINFO {}
impl ::std::default::Default for KS_H264VIDEOINFO {
fn default() -> Self {
Self {
wWidth: 0,
wHeight: 0,
wSARwidth: 0,
wSARheight: 0,
wProfile: 0,
bLevelIDC: 0,
wConstrainedToolset: 0,
bmSupportedUsages: 0,
bmCapabilities: 0,
bmSVCCapabilities: 0,
bmMVCCapabilities: 0,
dwFrameInterval: 0,
bMaxCodecConfigDelay: 0,
bmSupportedSliceModes: 0,
bmSupportedSyncFrameTypes: 0,
bResolutionScaling: 0,
bSimulcastSupport: 0,
bmSupportedRateControlModes: 0,
wMaxMBperSecOneResolutionNoScalability: 0,
wMaxMBperSecTwoResolutionsNoScalability: 0,
wMaxMBperSecThreeResolutionsNoScalability: 0,
wMaxMBperSecFourResolutionsNoScalability: 0,
wMaxMBperSecOneResolutionTemporalScalability: 0,
wMaxMBperSecTwoResolutionsTemporalScalablility: 0,
wMaxMBperSecThreeResolutionsTemporalScalability: 0,
wMaxMBperSecFourResolutionsTemporalScalability: 0,
wMaxMBperSecOneResolutionTemporalQualityScalability: 0,
wMaxMBperSecTwoResolutionsTemporalQualityScalability: 0,
wMaxMBperSecThreeResolutionsTemporalQualityScalablity: 0,
wMaxMBperSecFourResolutionsTemporalQualityScalability: 0,
wMaxMBperSecOneResolutionTemporalSpatialScalability: 0,
wMaxMBperSecTwoResolutionsTemporalSpatialScalability: 0,
wMaxMBperSecThreeResolutionsTemporalSpatialScalablity: 0,
wMaxMBperSecFourResolutionsTemporalSpatialScalability: 0,
wMaxMBperSecOneResolutionFullScalability: 0,
wMaxMBperSecTwoResolutionsFullScalability: 0,
wMaxMBperSecThreeResolutionsFullScalability: 0,
wMaxMBperSecFourResolutionsFullScalability: 0,
}
}
}
impl ::std::fmt::Debug for KS_H264VIDEOINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_H264VIDEOINFO")
.field("wWidth", &format_args!("{:?}", self.wWidth))
.field("wHeight", &format_args!("{:?}", self.wHeight))
.field("wSARwidth", &format_args!("{:?}", self.wSARwidth))
.field("wSARheight", &format_args!("{:?}", self.wSARheight))
.field("wProfile", &format_args!("{:?}", self.wProfile))
.field("bLevelIDC", &format_args!("{:?}", self.bLevelIDC))
.field(
"wConstrainedToolset",
&format_args!("{:?}", self.wConstrainedToolset),
)
.field(
"bmSupportedUsages",
&format_args!("{:?}", self.bmSupportedUsages),
)
.field("bmCapabilities", &format_args!("{:?}", self.bmCapabilities))
.field(
"bmSVCCapabilities",
&format_args!("{:?}", self.bmSVCCapabilities),
)
.field(
"bmMVCCapabilities",
&format_args!("{:?}", self.bmMVCCapabilities),
)
.field(
"dwFrameInterval",
&format_args!("{:?}", self.dwFrameInterval),
)
.field(
"bMaxCodecConfigDelay",
&format_args!("{:?}", self.bMaxCodecConfigDelay),
)
.field(
"bmSupportedSliceModes",
&format_args!("{:?}", self.bmSupportedSliceModes),
)
.field(
"bmSupportedSyncFrameTypes",
&format_args!("{:?}", self.bmSupportedSyncFrameTypes),
)
.field(
"bResolutionScaling",
&format_args!("{:?}", self.bResolutionScaling),
)
.field(
"bSimulcastSupport",
&format_args!("{:?}", self.bSimulcastSupport),
)
.field(
"bmSupportedRateControlModes",
&format_args!("{:?}", self.bmSupportedRateControlModes),
)
.field(
"wMaxMBperSecOneResolutionNoScalability",
&format_args!("{:?}", self.wMaxMBperSecOneResolutionNoScalability),
)
.field(
"wMaxMBperSecTwoResolutionsNoScalability",
&format_args!("{:?}", self.wMaxMBperSecTwoResolutionsNoScalability),
)
.field(
"wMaxMBperSecThreeResolutionsNoScalability",
&format_args!("{:?}", self.wMaxMBperSecThreeResolutionsNoScalability),
)
.field(
"wMaxMBperSecFourResolutionsNoScalability",
&format_args!("{:?}", self.wMaxMBperSecFourResolutionsNoScalability),
)
.field(
"wMaxMBperSecOneResolutionTemporalScalability",
&format_args!(
"{:?}",
self.wMaxMBperSecOneResolutionTemporalScalability
),
)
.field(
"wMaxMBperSecTwoResolutionsTemporalScalablility",
&format_args!(
"{:?}",
self.wMaxMBperSecTwoResolutionsTemporalScalablility
),
)
.field(
"wMaxMBperSecThreeResolutionsTemporalScalability",
&format_args!(
"{:?}",
self.wMaxMBperSecThreeResolutionsTemporalScalability
),
)
.field(
"wMaxMBperSecFourResolutionsTemporalScalability",
&format_args!(
"{:?}",
self.wMaxMBperSecFourResolutionsTemporalScalability
),
)
.field(
"wMaxMBperSecOneResolutionTemporalQualityScalability",
&format_args!(
"{:?}",
self.wMaxMBperSecOneResolutionTemporalQualityScalability
),
)
.field(
"wMaxMBperSecTwoResolutionsTemporalQualityScalability",
&format_args!(
"{:?}",
self.wMaxMBperSecTwoResolutionsTemporalQualityScalability
),
)
.field(
"wMaxMBperSecThreeResolutionsTemporalQualityScalablity",
&format_args!(
"{:?}",
self.wMaxMBperSecThreeResolutionsTemporalQualityScalablity
),
)
.field(
"wMaxMBperSecFourResolutionsTemporalQualityScalability",
&format_args!(
"{:?}",
self.wMaxMBperSecFourResolutionsTemporalQualityScalability
),
)
.field(
"wMaxMBperSecOneResolutionTemporalSpatialScalability",
&format_args!(
"{:?}",
self.wMaxMBperSecOneResolutionTemporalSpatialScalability
),
)
.field(
"wMaxMBperSecTwoResolutionsTemporalSpatialScalability",
&format_args!(
"{:?}",
self.wMaxMBperSecTwoResolutionsTemporalSpatialScalability
),
)
.field(
"wMaxMBperSecThreeResolutionsTemporalSpatialScalablity",
&format_args!(
"{:?}",
self.wMaxMBperSecThreeResolutionsTemporalSpatialScalablity
),
)
.field(
"wMaxMBperSecFourResolutionsTemporalSpatialScalability",
&format_args!(
"{:?}",
self.wMaxMBperSecFourResolutionsTemporalSpatialScalability
),
)
.field(
"wMaxMBperSecOneResolutionFullScalability",
&format_args!("{:?}", self.wMaxMBperSecOneResolutionFullScalability),
)
.field(
"wMaxMBperSecTwoResolutionsFullScalability",
&format_args!("{:?}", self.wMaxMBperSecTwoResolutionsFullScalability),
)
.field(
"wMaxMBperSecThreeResolutionsFullScalability",
&format_args!("{:?}", self.wMaxMBperSecThreeResolutionsFullScalability),
)
.field(
"wMaxMBperSecFourResolutionsFullScalability",
&format_args!("{:?}", self.wMaxMBperSecFourResolutionsFullScalability),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KS_H264VIDEOINFO {
fn eq(&self, other: &Self) -> bool {
self.wWidth == other.wWidth
&& self.wHeight == other.wHeight
&& self.wSARwidth == other.wSARwidth
&& self.wSARheight == other.wSARheight
&& self.wProfile == other.wProfile
&& self.bLevelIDC == other.bLevelIDC
&& self.wConstrainedToolset == other.wConstrainedToolset
&& self.bmSupportedUsages == other.bmSupportedUsages
&& self.bmCapabilities == other.bmCapabilities
&& self.bmSVCCapabilities == other.bmSVCCapabilities
&& self.bmMVCCapabilities == other.bmMVCCapabilities
&& self.dwFrameInterval == other.dwFrameInterval
&& self.bMaxCodecConfigDelay == other.bMaxCodecConfigDelay
&& self.bmSupportedSliceModes == other.bmSupportedSliceModes
&& self.bmSupportedSyncFrameTypes == other.bmSupportedSyncFrameTypes
&& self.bResolutionScaling == other.bResolutionScaling
&& self.bSimulcastSupport == other.bSimulcastSupport
&& self.bmSupportedRateControlModes == other.bmSupportedRateControlModes
&& self.wMaxMBperSecOneResolutionNoScalability
== other.wMaxMBperSecOneResolutionNoScalability
&& self.wMaxMBperSecTwoResolutionsNoScalability
== other.wMaxMBperSecTwoResolutionsNoScalability
&& self.wMaxMBperSecThreeResolutionsNoScalability
== other.wMaxMBperSecThreeResolutionsNoScalability
&& self.wMaxMBperSecFourResolutionsNoScalability
== other.wMaxMBperSecFourResolutionsNoScalability
&& self.wMaxMBperSecOneResolutionTemporalScalability
== other.wMaxMBperSecOneResolutionTemporalScalability
&& self.wMaxMBperSecTwoResolutionsTemporalScalablility
== other.wMaxMBperSecTwoResolutionsTemporalScalablility
&& self.wMaxMBperSecThreeResolutionsTemporalScalability
== other.wMaxMBperSecThreeResolutionsTemporalScalability
&& self.wMaxMBperSecFourResolutionsTemporalScalability
== other.wMaxMBperSecFourResolutionsTemporalScalability
&& self.wMaxMBperSecOneResolutionTemporalQualityScalability
== other.wMaxMBperSecOneResolutionTemporalQualityScalability
&& self.wMaxMBperSecTwoResolutionsTemporalQualityScalability
== other.wMaxMBperSecTwoResolutionsTemporalQualityScalability
&& self.wMaxMBperSecThreeResolutionsTemporalQualityScalablity
== other.wMaxMBperSecThreeResolutionsTemporalQualityScalablity
&& self.wMaxMBperSecFourResolutionsTemporalQualityScalability
== other.wMaxMBperSecFourResolutionsTemporalQualityScalability
&& self.wMaxMBperSecOneResolutionTemporalSpatialScalability
== other.wMaxMBperSecOneResolutionTemporalSpatialScalability
&& self.wMaxMBperSecTwoResolutionsTemporalSpatialScalability
== other.wMaxMBperSecTwoResolutionsTemporalSpatialScalability
&& self.wMaxMBperSecThreeResolutionsTemporalSpatialScalablity
== other.wMaxMBperSecThreeResolutionsTemporalSpatialScalablity
&& self.wMaxMBperSecFourResolutionsTemporalSpatialScalability
== other.wMaxMBperSecFourResolutionsTemporalSpatialScalability
&& self.wMaxMBperSecOneResolutionFullScalability
== other.wMaxMBperSecOneResolutionFullScalability
&& self.wMaxMBperSecTwoResolutionsFullScalability
== other.wMaxMBperSecTwoResolutionsFullScalability
&& self.wMaxMBperSecThreeResolutionsFullScalability
== other.wMaxMBperSecThreeResolutionsFullScalability
&& self.wMaxMBperSecFourResolutionsFullScalability
== other.wMaxMBperSecFourResolutionsFullScalability
}
}
impl ::std::cmp::Eq for KS_H264VIDEOINFO {}
unsafe impl ::windows::Abi for KS_H264VIDEOINFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATAFORMAT_H264VIDEOINFO {
pub DataFormat: KSDATAFORMAT,
pub H264VideoInfoHeader: KS_H264VIDEOINFO,
}
impl KS_DATAFORMAT_H264VIDEOINFO {}
unsafe impl ::windows::Abi for KS_DATAFORMAT_H264VIDEOINFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATAFORMAT_IMAGEINFO {
pub DataFormat: KSDATAFORMAT,
pub ImageInfoHeader: KS_BITMAPINFOHEADER,
}
impl KS_DATAFORMAT_IMAGEINFO {}
unsafe impl ::windows::Abi for KS_DATAFORMAT_IMAGEINFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_VIDEOINFOHEADER2 {
pub rcSource: super::DisplayDevices::RECT,
pub rcTarget: super::DisplayDevices::RECT,
pub dwBitRate: u32,
pub dwBitErrorRate: u32,
pub AvgTimePerFrame: i64,
pub dwInterlaceFlags: u32,
pub dwCopyProtectFlags: u32,
pub dwPictAspectRatioX: u32,
pub dwPictAspectRatioY: u32,
pub Anonymous: KS_VIDEOINFOHEADER2_0,
pub dwReserved2: u32,
pub bmiHeader: KS_BITMAPINFOHEADER,
}
impl KS_VIDEOINFOHEADER2 {}
unsafe impl ::windows::Abi for KS_VIDEOINFOHEADER2 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KS_VIDEOINFOHEADER2_0 {
pub dwControlFlags: u32,
pub dwReserved1: u32,
}
impl KS_VIDEOINFOHEADER2_0 {}
unsafe impl ::windows::Abi for KS_VIDEOINFOHEADER2_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_MPEGVIDEOINFO2 {
pub hdr: KS_VIDEOINFOHEADER2,
pub dwStartTimeCode: u32,
pub cbSequenceHeader: u32,
pub dwProfile: u32,
pub dwLevel: u32,
pub dwFlags: u32,
pub bSequenceHeader: [u32; 1],
}
impl KS_MPEGVIDEOINFO2 {}
unsafe impl ::windows::Abi for KS_MPEGVIDEOINFO2 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATAFORMAT_MPEGVIDEOINFO2 {
pub DataFormat: KSDATAFORMAT,
pub MpegVideoInfoHeader2: KS_MPEGVIDEOINFO2,
}
impl KS_DATAFORMAT_MPEGVIDEOINFO2 {}
unsafe impl ::windows::Abi for KS_DATAFORMAT_MPEGVIDEOINFO2 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_VBIINFOHEADER {
pub StartLine: u32,
pub EndLine: u32,
pub SamplingFrequency: u32,
pub MinLineStartTime: u32,
pub MaxLineStartTime: u32,
pub ActualLineStartTime: u32,
pub ActualLineEndTime: u32,
pub VideoStandard: u32,
pub SamplesPerLine: u32,
pub StrideInBytes: u32,
pub BufferSize: u32,
}
impl KS_VBIINFOHEADER {}
impl ::std::default::Default for KS_VBIINFOHEADER {
fn default() -> Self {
Self {
StartLine: 0,
EndLine: 0,
SamplingFrequency: 0,
MinLineStartTime: 0,
MaxLineStartTime: 0,
ActualLineStartTime: 0,
ActualLineEndTime: 0,
VideoStandard: 0,
SamplesPerLine: 0,
StrideInBytes: 0,
BufferSize: 0,
}
}
}
impl ::std::fmt::Debug for KS_VBIINFOHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_VBIINFOHEADER")
.field("StartLine", &format_args!("{:?}", self.StartLine))
.field("EndLine", &format_args!("{:?}", self.EndLine))
.field(
"SamplingFrequency",
&format_args!("{:?}", self.SamplingFrequency),
)
.field(
"MinLineStartTime",
&format_args!("{:?}", self.MinLineStartTime),
)
.field(
"MaxLineStartTime",
&format_args!("{:?}", self.MaxLineStartTime),
)
.field(
"ActualLineStartTime",
&format_args!("{:?}", self.ActualLineStartTime),
)
.field(
"ActualLineEndTime",
&format_args!("{:?}", self.ActualLineEndTime),
)
.field("VideoStandard", &format_args!("{:?}", self.VideoStandard))
.field("SamplesPerLine", &format_args!("{:?}", self.SamplesPerLine))
.field("StrideInBytes", &format_args!("{:?}", self.StrideInBytes))
.field("BufferSize", &format_args!("{:?}", self.BufferSize))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_VBIINFOHEADER {
fn eq(&self, other: &Self) -> bool {
self.StartLine == other.StartLine
&& self.EndLine == other.EndLine
&& self.SamplingFrequency == other.SamplingFrequency
&& self.MinLineStartTime == other.MinLineStartTime
&& self.MaxLineStartTime == other.MaxLineStartTime
&& self.ActualLineStartTime == other.ActualLineStartTime
&& self.ActualLineEndTime == other.ActualLineEndTime
&& self.VideoStandard == other.VideoStandard
&& self.SamplesPerLine == other.SamplesPerLine
&& self.StrideInBytes == other.StrideInBytes
&& self.BufferSize == other.BufferSize
}
}
impl ::std::cmp::Eq for KS_VBIINFOHEADER {}
unsafe impl ::windows::Abi for KS_VBIINFOHEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATAFORMAT_VBIINFOHEADER {
pub DataFormat: KSDATAFORMAT,
pub VBIInfoHeader: KS_VBIINFOHEADER,
}
impl KS_DATAFORMAT_VBIINFOHEADER {}
unsafe impl ::windows::Abi for KS_DATAFORMAT_VBIINFOHEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_VIDEOINFOHEADER {
pub rcSource: super::DisplayDevices::RECT,
pub rcTarget: super::DisplayDevices::RECT,
pub dwBitRate: u32,
pub dwBitErrorRate: u32,
pub AvgTimePerFrame: i64,
pub bmiHeader: KS_BITMAPINFOHEADER,
}
impl KS_VIDEOINFOHEADER {}
impl ::std::default::Default for KS_VIDEOINFOHEADER {
fn default() -> Self {
Self {
rcSource: ::std::default::Default::default(),
rcTarget: ::std::default::Default::default(),
dwBitRate: 0,
dwBitErrorRate: 0,
AvgTimePerFrame: 0,
bmiHeader: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KS_VIDEOINFOHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_VIDEOINFOHEADER")
.field("rcSource", &format_args!("{:?}", self.rcSource))
.field("rcTarget", &format_args!("{:?}", self.rcTarget))
.field("dwBitRate", &format_args!("{:?}", self.dwBitRate))
.field("dwBitErrorRate", &format_args!("{:?}", self.dwBitErrorRate))
.field(
"AvgTimePerFrame",
&format_args!("{:?}", self.AvgTimePerFrame),
)
.field("bmiHeader", &format_args!("{:?}", self.bmiHeader))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_VIDEOINFOHEADER {
fn eq(&self, other: &Self) -> bool {
self.rcSource == other.rcSource
&& self.rcTarget == other.rcTarget
&& self.dwBitRate == other.dwBitRate
&& self.dwBitErrorRate == other.dwBitErrorRate
&& self.AvgTimePerFrame == other.AvgTimePerFrame
&& self.bmiHeader == other.bmiHeader
}
}
impl ::std::cmp::Eq for KS_VIDEOINFOHEADER {}
unsafe impl ::windows::Abi for KS_VIDEOINFOHEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATAFORMAT_VIDEOINFOHEADER {
pub DataFormat: KSDATAFORMAT,
pub VideoInfoHeader: KS_VIDEOINFOHEADER,
}
impl KS_DATAFORMAT_VIDEOINFOHEADER {}
unsafe impl ::windows::Abi for KS_DATAFORMAT_VIDEOINFOHEADER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATAFORMAT_VIDEOINFOHEADER2 {
pub DataFormat: KSDATAFORMAT,
pub VideoInfoHeader2: KS_VIDEOINFOHEADER2,
}
impl KS_DATAFORMAT_VIDEOINFOHEADER2 {}
unsafe impl ::windows::Abi for KS_DATAFORMAT_VIDEOINFOHEADER2 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_RGBQUAD {
pub rgbBlue: u8,
pub rgbGreen: u8,
pub rgbRed: u8,
pub rgbReserved: u8,
}
impl KS_RGBQUAD {}
impl ::std::default::Default for KS_RGBQUAD {
fn default() -> Self {
Self {
rgbBlue: 0,
rgbGreen: 0,
rgbRed: 0,
rgbReserved: 0,
}
}
}
impl ::std::fmt::Debug for KS_RGBQUAD {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_RGBQUAD")
.field("rgbBlue", &format_args!("{:?}", self.rgbBlue))
.field("rgbGreen", &format_args!("{:?}", self.rgbGreen))
.field("rgbRed", &format_args!("{:?}", self.rgbRed))
.field("rgbReserved", &format_args!("{:?}", self.rgbReserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_RGBQUAD {
fn eq(&self, other: &Self) -> bool {
self.rgbBlue == other.rgbBlue
&& self.rgbGreen == other.rgbGreen
&& self.rgbRed == other.rgbRed
&& self.rgbReserved == other.rgbReserved
}
}
impl ::std::cmp::Eq for KS_RGBQUAD {}
unsafe impl ::windows::Abi for KS_RGBQUAD {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_TRUECOLORINFO {
pub dwBitMasks: [u32; 3],
pub bmiColors: [KS_RGBQUAD; 256],
}
impl KS_TRUECOLORINFO {}
impl ::std::default::Default for KS_TRUECOLORINFO {
fn default() -> Self {
Self {
dwBitMasks: [0; 3],
bmiColors: [::std::default::Default::default(); 256],
}
}
}
impl ::std::fmt::Debug for KS_TRUECOLORINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_TRUECOLORINFO")
.field("dwBitMasks", &format_args!("{:?}", self.dwBitMasks))
.field("bmiColors", &format_args!("{:?}", self.bmiColors))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_TRUECOLORINFO {
fn eq(&self, other: &Self) -> bool {
self.dwBitMasks == other.dwBitMasks && self.bmiColors == other.bmiColors
}
}
impl ::std::cmp::Eq for KS_TRUECOLORINFO {}
unsafe impl ::windows::Abi for KS_TRUECOLORINFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_VIDEOINFO {
pub rcSource: super::DisplayDevices::RECT,
pub rcTarget: super::DisplayDevices::RECT,
pub dwBitRate: u32,
pub dwBitErrorRate: u32,
pub AvgTimePerFrame: i64,
pub bmiHeader: KS_BITMAPINFOHEADER,
pub Anonymous: KS_VIDEOINFO_0,
}
impl KS_VIDEOINFO {}
unsafe impl ::windows::Abi for KS_VIDEOINFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KS_VIDEOINFO_0 {
pub bmiColors: [KS_RGBQUAD; 256],
pub dwBitMasks: [u32; 3],
pub TrueColorInfo: KS_TRUECOLORINFO,
}
impl KS_VIDEOINFO_0 {}
unsafe impl ::windows::Abi for KS_VIDEOINFO_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATAFORMAT_VIDEOINFO_PALETTE {
pub DataFormat: KSDATAFORMAT,
pub VideoInfo: KS_VIDEOINFO,
}
impl KS_DATAFORMAT_VIDEOINFO_PALETTE {}
unsafe impl ::windows::Abi for KS_DATAFORMAT_VIDEOINFO_PALETTE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATARANGE_ANALOGVIDEO {
pub DataRange: KSDATAFORMAT,
pub AnalogVideoInfo: KS_AnalogVideoInfo,
}
impl KS_DATARANGE_ANALOGVIDEO {}
unsafe impl ::windows::Abi for KS_DATARANGE_ANALOGVIDEO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_VIDEO_STREAM_CONFIG_CAPS {
pub guid: ::windows::Guid,
pub VideoStandard: u32,
pub InputSize: super::DisplayDevices::SIZE,
pub MinCroppingSize: super::DisplayDevices::SIZE,
pub MaxCroppingSize: super::DisplayDevices::SIZE,
pub CropGranularityX: i32,
pub CropGranularityY: i32,
pub CropAlignX: i32,
pub CropAlignY: i32,
pub MinOutputSize: super::DisplayDevices::SIZE,
pub MaxOutputSize: super::DisplayDevices::SIZE,
pub OutputGranularityX: i32,
pub OutputGranularityY: i32,
pub StretchTapsX: i32,
pub StretchTapsY: i32,
pub ShrinkTapsX: i32,
pub ShrinkTapsY: i32,
pub MinFrameInterval: i64,
pub MaxFrameInterval: i64,
pub MinBitsPerSecond: i32,
pub MaxBitsPerSecond: i32,
}
impl KS_VIDEO_STREAM_CONFIG_CAPS {}
impl ::std::default::Default for KS_VIDEO_STREAM_CONFIG_CAPS {
fn default() -> Self {
Self {
guid: ::std::default::Default::default(),
VideoStandard: 0,
InputSize: ::std::default::Default::default(),
MinCroppingSize: ::std::default::Default::default(),
MaxCroppingSize: ::std::default::Default::default(),
CropGranularityX: 0,
CropGranularityY: 0,
CropAlignX: 0,
CropAlignY: 0,
MinOutputSize: ::std::default::Default::default(),
MaxOutputSize: ::std::default::Default::default(),
OutputGranularityX: 0,
OutputGranularityY: 0,
StretchTapsX: 0,
StretchTapsY: 0,
ShrinkTapsX: 0,
ShrinkTapsY: 0,
MinFrameInterval: 0,
MaxFrameInterval: 0,
MinBitsPerSecond: 0,
MaxBitsPerSecond: 0,
}
}
}
impl ::std::fmt::Debug for KS_VIDEO_STREAM_CONFIG_CAPS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_VIDEO_STREAM_CONFIG_CAPS")
.field("guid", &format_args!("{:?}", self.guid))
.field("VideoStandard", &format_args!("{:?}", self.VideoStandard))
.field("InputSize", &format_args!("{:?}", self.InputSize))
.field(
"MinCroppingSize",
&format_args!("{:?}", self.MinCroppingSize),
)
.field(
"MaxCroppingSize",
&format_args!("{:?}", self.MaxCroppingSize),
)
.field(
"CropGranularityX",
&format_args!("{:?}", self.CropGranularityX),
)
.field(
"CropGranularityY",
&format_args!("{:?}", self.CropGranularityY),
)
.field("CropAlignX", &format_args!("{:?}", self.CropAlignX))
.field("CropAlignY", &format_args!("{:?}", self.CropAlignY))
.field("MinOutputSize", &format_args!("{:?}", self.MinOutputSize))
.field("MaxOutputSize", &format_args!("{:?}", self.MaxOutputSize))
.field(
"OutputGranularityX",
&format_args!("{:?}", self.OutputGranularityX),
)
.field(
"OutputGranularityY",
&format_args!("{:?}", self.OutputGranularityY),
)
.field("StretchTapsX", &format_args!("{:?}", self.StretchTapsX))
.field("StretchTapsY", &format_args!("{:?}", self.StretchTapsY))
.field("ShrinkTapsX", &format_args!("{:?}", self.ShrinkTapsX))
.field("ShrinkTapsY", &format_args!("{:?}", self.ShrinkTapsY))
.field(
"MinFrameInterval",
&format_args!("{:?}", self.MinFrameInterval),
)
.field(
"MaxFrameInterval",
&format_args!("{:?}", self.MaxFrameInterval),
)
.field(
"MinBitsPerSecond",
&format_args!("{:?}", self.MinBitsPerSecond),
)
.field(
"MaxBitsPerSecond",
&format_args!("{:?}", self.MaxBitsPerSecond),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KS_VIDEO_STREAM_CONFIG_CAPS {
fn eq(&self, other: &Self) -> bool {
self.guid == other.guid
&& self.VideoStandard == other.VideoStandard
&& self.InputSize == other.InputSize
&& self.MinCroppingSize == other.MinCroppingSize
&& self.MaxCroppingSize == other.MaxCroppingSize
&& self.CropGranularityX == other.CropGranularityX
&& self.CropGranularityY == other.CropGranularityY
&& self.CropAlignX == other.CropAlignX
&& self.CropAlignY == other.CropAlignY
&& self.MinOutputSize == other.MinOutputSize
&& self.MaxOutputSize == other.MaxOutputSize
&& self.OutputGranularityX == other.OutputGranularityX
&& self.OutputGranularityY == other.OutputGranularityY
&& self.StretchTapsX == other.StretchTapsX
&& self.StretchTapsY == other.StretchTapsY
&& self.ShrinkTapsX == other.ShrinkTapsX
&& self.ShrinkTapsY == other.ShrinkTapsY
&& self.MinFrameInterval == other.MinFrameInterval
&& self.MaxFrameInterval == other.MaxFrameInterval
&& self.MinBitsPerSecond == other.MinBitsPerSecond
&& self.MaxBitsPerSecond == other.MaxBitsPerSecond
}
}
impl ::std::cmp::Eq for KS_VIDEO_STREAM_CONFIG_CAPS {}
unsafe impl ::windows::Abi for KS_VIDEO_STREAM_CONFIG_CAPS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATARANGE_H264_VIDEO {
pub DataRange: KSDATAFORMAT,
pub bFixedSizeSamples: super::SystemServices::BOOL,
pub bTemporalCompression: super::SystemServices::BOOL,
pub StreamDescriptionFlags: u32,
pub MemoryAllocationFlags: u32,
pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS,
pub VideoInfoHeader: KS_H264VIDEOINFO,
}
impl KS_DATARANGE_H264_VIDEO {}
unsafe impl ::windows::Abi for KS_DATARANGE_H264_VIDEO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATARANGE_IMAGE {
pub DataRange: KSDATAFORMAT,
pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS,
pub ImageInfoHeader: KS_BITMAPINFOHEADER,
}
impl KS_DATARANGE_IMAGE {}
unsafe impl ::windows::Abi for KS_DATARANGE_IMAGE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_MPEG1VIDEOINFO {
pub hdr: KS_VIDEOINFOHEADER,
pub dwStartTimeCode: u32,
pub cbSequenceHeader: u32,
pub bSequenceHeader: [u8; 1],
}
impl KS_MPEG1VIDEOINFO {}
impl ::std::default::Default for KS_MPEG1VIDEOINFO {
fn default() -> Self {
Self {
hdr: ::std::default::Default::default(),
dwStartTimeCode: 0,
cbSequenceHeader: 0,
bSequenceHeader: [0; 1],
}
}
}
impl ::std::fmt::Debug for KS_MPEG1VIDEOINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_MPEG1VIDEOINFO")
.field("hdr", &format_args!("{:?}", self.hdr))
.field(
"dwStartTimeCode",
&format_args!("{:?}", self.dwStartTimeCode),
)
.field(
"cbSequenceHeader",
&format_args!("{:?}", self.cbSequenceHeader),
)
.field(
"bSequenceHeader",
&format_args!("{:?}", self.bSequenceHeader),
)
.finish()
}
}
impl ::std::cmp::PartialEq for KS_MPEG1VIDEOINFO {
fn eq(&self, other: &Self) -> bool {
self.hdr == other.hdr
&& self.dwStartTimeCode == other.dwStartTimeCode
&& self.cbSequenceHeader == other.cbSequenceHeader
&& self.bSequenceHeader == other.bSequenceHeader
}
}
impl ::std::cmp::Eq for KS_MPEG1VIDEOINFO {}
unsafe impl ::windows::Abi for KS_MPEG1VIDEOINFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATARANGE_MPEG1_VIDEO {
pub DataRange: KSDATAFORMAT,
pub bFixedSizeSamples: super::SystemServices::BOOL,
pub bTemporalCompression: super::SystemServices::BOOL,
pub StreamDescriptionFlags: u32,
pub MemoryAllocationFlags: u32,
pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS,
pub VideoInfoHeader: KS_MPEG1VIDEOINFO,
}
impl KS_DATARANGE_MPEG1_VIDEO {}
unsafe impl ::windows::Abi for KS_DATARANGE_MPEG1_VIDEO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATARANGE_MPEG2_VIDEO {
pub DataRange: KSDATAFORMAT,
pub bFixedSizeSamples: super::SystemServices::BOOL,
pub bTemporalCompression: super::SystemServices::BOOL,
pub StreamDescriptionFlags: u32,
pub MemoryAllocationFlags: u32,
pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS,
pub VideoInfoHeader: KS_MPEGVIDEOINFO2,
}
impl KS_DATARANGE_MPEG2_VIDEO {}
unsafe impl ::windows::Abi for KS_DATARANGE_MPEG2_VIDEO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATARANGE_VIDEO {
pub DataRange: KSDATAFORMAT,
pub bFixedSizeSamples: super::SystemServices::BOOL,
pub bTemporalCompression: super::SystemServices::BOOL,
pub StreamDescriptionFlags: u32,
pub MemoryAllocationFlags: u32,
pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS,
pub VideoInfoHeader: KS_VIDEOINFOHEADER,
}
impl KS_DATARANGE_VIDEO {}
unsafe impl ::windows::Abi for KS_DATARANGE_VIDEO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATARANGE_VIDEO2 {
pub DataRange: KSDATAFORMAT,
pub bFixedSizeSamples: super::SystemServices::BOOL,
pub bTemporalCompression: super::SystemServices::BOOL,
pub StreamDescriptionFlags: u32,
pub MemoryAllocationFlags: u32,
pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS,
pub VideoInfoHeader: KS_VIDEOINFOHEADER2,
}
impl KS_DATARANGE_VIDEO2 {}
unsafe impl ::windows::Abi for KS_DATARANGE_VIDEO2 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATARANGE_VIDEO_PALETTE {
pub DataRange: KSDATAFORMAT,
pub bFixedSizeSamples: super::SystemServices::BOOL,
pub bTemporalCompression: super::SystemServices::BOOL,
pub StreamDescriptionFlags: u32,
pub MemoryAllocationFlags: u32,
pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS,
pub VideoInfo: KS_VIDEOINFO,
}
impl KS_DATARANGE_VIDEO_PALETTE {}
unsafe impl ::windows::Abi for KS_DATARANGE_VIDEO_PALETTE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DATARANGE_VIDEO_VBI {
pub DataRange: KSDATAFORMAT,
pub bFixedSizeSamples: super::SystemServices::BOOL,
pub bTemporalCompression: super::SystemServices::BOOL,
pub StreamDescriptionFlags: u32,
pub MemoryAllocationFlags: u32,
pub ConfigCaps: KS_VIDEO_STREAM_CONFIG_CAPS,
pub VBIInfoHeader: KS_VBIINFOHEADER,
}
impl KS_DATARANGE_VIDEO_VBI {}
unsafe impl ::windows::Abi for KS_DATARANGE_VIDEO_VBI {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_DVDCOPYSTATE(pub i32);
impl KS_DVDCOPYSTATE {
pub const KS_DVDCOPYSTATE_INITIALIZE: Self = Self(0i32);
pub const KS_DVDCOPYSTATE_INITIALIZE_TITLE: Self = Self(1i32);
pub const KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED: Self = Self(2i32);
pub const KS_DVDCOPYSTATE_AUTHENTICATION_REQUIRED: Self = Self(3i32);
pub const KS_DVDCOPYSTATE_DONE: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KS_DVDCOPYSTATE {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_DVDCOPYSTATE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DVDCOPY_BUSKEY {
pub BusKey: [u8; 5],
pub Reserved: [u8; 1],
}
impl KS_DVDCOPY_BUSKEY {}
impl ::std::default::Default for KS_DVDCOPY_BUSKEY {
fn default() -> Self {
Self {
BusKey: [0; 5],
Reserved: [0; 1],
}
}
}
impl ::std::fmt::Debug for KS_DVDCOPY_BUSKEY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_DVDCOPY_BUSKEY")
.field("BusKey", &format_args!("{:?}", self.BusKey))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_DVDCOPY_BUSKEY {
fn eq(&self, other: &Self) -> bool {
self.BusKey == other.BusKey && self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KS_DVDCOPY_BUSKEY {}
unsafe impl ::windows::Abi for KS_DVDCOPY_BUSKEY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DVDCOPY_CHLGKEY {
pub ChlgKey: [u8; 10],
pub Reserved: [u8; 2],
}
impl KS_DVDCOPY_CHLGKEY {}
impl ::std::default::Default for KS_DVDCOPY_CHLGKEY {
fn default() -> Self {
Self {
ChlgKey: [0; 10],
Reserved: [0; 2],
}
}
}
impl ::std::fmt::Debug for KS_DVDCOPY_CHLGKEY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_DVDCOPY_CHLGKEY")
.field("ChlgKey", &format_args!("{:?}", self.ChlgKey))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_DVDCOPY_CHLGKEY {
fn eq(&self, other: &Self) -> bool {
self.ChlgKey == other.ChlgKey && self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KS_DVDCOPY_CHLGKEY {}
unsafe impl ::windows::Abi for KS_DVDCOPY_CHLGKEY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DVDCOPY_DISCKEY {
pub DiscKey: [u8; 2048],
}
impl KS_DVDCOPY_DISCKEY {}
impl ::std::default::Default for KS_DVDCOPY_DISCKEY {
fn default() -> Self {
Self { DiscKey: [0; 2048] }
}
}
impl ::std::fmt::Debug for KS_DVDCOPY_DISCKEY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_DVDCOPY_DISCKEY")
.field("DiscKey", &format_args!("{:?}", self.DiscKey))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_DVDCOPY_DISCKEY {
fn eq(&self, other: &Self) -> bool {
self.DiscKey == other.DiscKey
}
}
impl ::std::cmp::Eq for KS_DVDCOPY_DISCKEY {}
unsafe impl ::windows::Abi for KS_DVDCOPY_DISCKEY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DVDCOPY_REGION {
pub Reserved: u8,
pub RegionData: u8,
pub Reserved2: [u8; 2],
}
impl KS_DVDCOPY_REGION {}
impl ::std::default::Default for KS_DVDCOPY_REGION {
fn default() -> Self {
Self {
Reserved: 0,
RegionData: 0,
Reserved2: [0; 2],
}
}
}
impl ::std::fmt::Debug for KS_DVDCOPY_REGION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_DVDCOPY_REGION")
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field("RegionData", &format_args!("{:?}", self.RegionData))
.field("Reserved2", &format_args!("{:?}", self.Reserved2))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_DVDCOPY_REGION {
fn eq(&self, other: &Self) -> bool {
self.Reserved == other.Reserved
&& self.RegionData == other.RegionData
&& self.Reserved2 == other.Reserved2
}
}
impl ::std::cmp::Eq for KS_DVDCOPY_REGION {}
unsafe impl ::windows::Abi for KS_DVDCOPY_REGION {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DVDCOPY_SET_COPY_STATE {
pub DVDCopyState: u32,
}
impl KS_DVDCOPY_SET_COPY_STATE {}
impl ::std::default::Default for KS_DVDCOPY_SET_COPY_STATE {
fn default() -> Self {
Self { DVDCopyState: 0 }
}
}
impl ::std::fmt::Debug for KS_DVDCOPY_SET_COPY_STATE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_DVDCOPY_SET_COPY_STATE")
.field("DVDCopyState", &format_args!("{:?}", self.DVDCopyState))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_DVDCOPY_SET_COPY_STATE {
fn eq(&self, other: &Self) -> bool {
self.DVDCopyState == other.DVDCopyState
}
}
impl ::std::cmp::Eq for KS_DVDCOPY_SET_COPY_STATE {}
unsafe impl ::windows::Abi for KS_DVDCOPY_SET_COPY_STATE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DVDCOPY_TITLEKEY {
pub KeyFlags: u32,
pub ReservedNT: [u32; 2],
pub TitleKey: [u8; 6],
pub Reserved: [u8; 2],
}
impl KS_DVDCOPY_TITLEKEY {}
impl ::std::default::Default for KS_DVDCOPY_TITLEKEY {
fn default() -> Self {
Self {
KeyFlags: 0,
ReservedNT: [0; 2],
TitleKey: [0; 6],
Reserved: [0; 2],
}
}
}
impl ::std::fmt::Debug for KS_DVDCOPY_TITLEKEY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_DVDCOPY_TITLEKEY")
.field("KeyFlags", &format_args!("{:?}", self.KeyFlags))
.field("ReservedNT", &format_args!("{:?}", self.ReservedNT))
.field("TitleKey", &format_args!("{:?}", self.TitleKey))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_DVDCOPY_TITLEKEY {
fn eq(&self, other: &Self) -> bool {
self.KeyFlags == other.KeyFlags
&& self.ReservedNT == other.ReservedNT
&& self.TitleKey == other.TitleKey
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for KS_DVDCOPY_TITLEKEY {}
unsafe impl ::windows::Abi for KS_DVDCOPY_TITLEKEY {
type Abi = Self;
}
pub const KS_DVD_CGMS_COPY_ONCE: u32 = 16u32;
pub const KS_DVD_CGMS_COPY_PERMITTED: u32 = 0u32;
pub const KS_DVD_CGMS_COPY_PROTECT_MASK: u32 = 24u32;
pub const KS_DVD_CGMS_NO_COPY: u32 = 24u32;
pub const KS_DVD_CGMS_RESERVED_MASK: u32 = 120u32;
pub const KS_DVD_COPYRIGHTED: u32 = 64u32;
pub const KS_DVD_COPYRIGHT_MASK: u32 = 64u32;
pub const KS_DVD_NOT_COPYRIGHTED: u32 = 0u32;
pub const KS_DVD_SECTOR_NOT_PROTECTED: u32 = 0u32;
pub const KS_DVD_SECTOR_PROTECTED: u32 = 32u32;
pub const KS_DVD_SECTOR_PROTECT_MASK: u32 = 32u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_DVD_YCrCb {
pub Reserved: u8,
pub Y: u8,
pub Cr: u8,
pub Cb: u8,
}
impl KS_DVD_YCrCb {}
impl ::std::default::Default for KS_DVD_YCrCb {
fn default() -> Self {
Self {
Reserved: 0,
Y: 0,
Cr: 0,
Cb: 0,
}
}
}
impl ::std::fmt::Debug for KS_DVD_YCrCb {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_DVD_YCrCb")
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field("Y", &format_args!("{:?}", self.Y))
.field("Cr", &format_args!("{:?}", self.Cr))
.field("Cb", &format_args!("{:?}", self.Cb))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_DVD_YCrCb {
fn eq(&self, other: &Self) -> bool {
self.Reserved == other.Reserved
&& self.Y == other.Y
&& self.Cr == other.Cr
&& self.Cb == other.Cb
}
}
impl ::std::cmp::Eq for KS_DVD_YCrCb {}
unsafe impl ::windows::Abi for KS_DVD_YCrCb {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_FRAME_INFO {
pub ExtendedHeaderSize: u32,
pub dwFrameFlags: u32,
pub PictureNumber: i64,
pub DropCount: i64,
pub hDirectDraw: super::SystemServices::HANDLE,
pub hSurfaceHandle: super::SystemServices::HANDLE,
pub DirectDrawRect: super::DisplayDevices::RECT,
pub Anonymous1: KS_FRAME_INFO_0,
pub Reserved2: u32,
pub Anonymous2: KS_FRAME_INFO_1,
}
impl KS_FRAME_INFO {}
unsafe impl ::windows::Abi for KS_FRAME_INFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KS_FRAME_INFO_0 {
pub lSurfacePitch: i32,
pub Reserved1: u32,
}
impl KS_FRAME_INFO_0 {}
unsafe impl ::windows::Abi for KS_FRAME_INFO_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union KS_FRAME_INFO_1 {
pub Anonymous: KS_FRAME_INFO_1_0,
pub FrameCompletionNumber: u64,
}
impl KS_FRAME_INFO_1 {}
unsafe impl ::windows::Abi for KS_FRAME_INFO_1 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_FRAME_INFO_1_0 {
pub Reserved3: u32,
pub Reserved4: u32,
}
impl KS_FRAME_INFO_1_0 {}
impl ::std::default::Default for KS_FRAME_INFO_1_0 {
fn default() -> Self {
Self {
Reserved3: 0,
Reserved4: 0,
}
}
}
impl ::std::fmt::Debug for KS_FRAME_INFO_1_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous_e__Struct")
.field("Reserved3", &format_args!("{:?}", self.Reserved3))
.field("Reserved4", &format_args!("{:?}", self.Reserved4))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_FRAME_INFO_1_0 {
fn eq(&self, other: &Self) -> bool {
self.Reserved3 == other.Reserved3 && self.Reserved4 == other.Reserved4
}
}
impl ::std::cmp::Eq for KS_FRAME_INFO_1_0 {}
unsafe impl ::windows::Abi for KS_FRAME_INFO_1_0 {
type Abi = Self;
}
pub const KS_INTERLACE_1FieldPerSample: u32 = 2u32;
pub const KS_INTERLACE_DisplayModeBobOnly: u32 = 0u32;
pub const KS_INTERLACE_DisplayModeBobOrWeave: u32 = 128u32;
pub const KS_INTERLACE_DisplayModeMask: u32 = 192u32;
pub const KS_INTERLACE_DisplayModeWeaveOnly: u32 = 64u32;
pub const KS_INTERLACE_Field1First: u32 = 4u32;
pub const KS_INTERLACE_FieldPatBothIrregular: u32 = 48u32;
pub const KS_INTERLACE_FieldPatBothRegular: u32 = 32u32;
pub const KS_INTERLACE_FieldPatField1Only: u32 = 0u32;
pub const KS_INTERLACE_FieldPatField2Only: u32 = 16u32;
pub const KS_INTERLACE_FieldPatternMask: u32 = 48u32;
pub const KS_INTERLACE_IsInterlaced: u32 = 1u32;
pub const KS_INTERLACE_UNUSED: u32 = 8u32;
pub const KS_MAX_SIZE_MPEG1_SEQUENCE_INFO: u32 = 140u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_MPEAUDIOINFO {
pub dwFlags: u32,
pub dwReserved1: u32,
pub dwReserved2: u32,
pub dwReserved3: u32,
}
impl KS_MPEAUDIOINFO {}
impl ::std::default::Default for KS_MPEAUDIOINFO {
fn default() -> Self {
Self {
dwFlags: 0,
dwReserved1: 0,
dwReserved2: 0,
dwReserved3: 0,
}
}
}
impl ::std::fmt::Debug for KS_MPEAUDIOINFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_MPEAUDIOINFO")
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("dwReserved1", &format_args!("{:?}", self.dwReserved1))
.field("dwReserved2", &format_args!("{:?}", self.dwReserved2))
.field("dwReserved3", &format_args!("{:?}", self.dwReserved3))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_MPEAUDIOINFO {
fn eq(&self, other: &Self) -> bool {
self.dwFlags == other.dwFlags
&& self.dwReserved1 == other.dwReserved1
&& self.dwReserved2 == other.dwReserved2
&& self.dwReserved3 == other.dwReserved3
}
}
impl ::std::cmp::Eq for KS_MPEAUDIOINFO {}
unsafe impl ::windows::Abi for KS_MPEAUDIOINFO {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_MPEG2Level(pub i32);
impl KS_MPEG2Level {
pub const KS_MPEG2Level_Low: Self = Self(0i32);
pub const KS_MPEG2Level_Main: Self = Self(1i32);
pub const KS_MPEG2Level_High1440: Self = Self(2i32);
pub const KS_MPEG2Level_High: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KS_MPEG2Level {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_MPEG2Level {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_MPEG2Profile(pub i32);
impl KS_MPEG2Profile {
pub const KS_MPEG2Profile_Simple: Self = Self(0i32);
pub const KS_MPEG2Profile_Main: Self = Self(1i32);
pub const KS_MPEG2Profile_SNRScalable: Self = Self(2i32);
pub const KS_MPEG2Profile_SpatiallyScalable: Self = Self(3i32);
pub const KS_MPEG2Profile_High: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KS_MPEG2Profile {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_MPEG2Profile {
type Abi = Self;
}
pub const KS_MPEG2_27MhzTimebase: u32 = 256u32;
pub const KS_MPEG2_DSS_UserData: u32 = 64u32;
pub const KS_MPEG2_DVB_UserData: u32 = 128u32;
pub const KS_MPEG2_DVDLine21Field1: u32 = 2u32;
pub const KS_MPEG2_DVDLine21Field2: u32 = 4u32;
pub const KS_MPEG2_DoPanScan: u32 = 1u32;
pub const KS_MPEG2_FilmCameraMode: u32 = 16u32;
pub const KS_MPEG2_LetterboxAnalogOut: u32 = 32u32;
pub const KS_MPEG2_SourceIsLetterboxed: u32 = 8u32;
pub const KS_MPEG2_WidescreenAnalogOut: u32 = 512u32;
pub const KS_MPEGAUDIOINFO_27MhzTimebase: u32 = 1u32;
pub const KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_ADVERTISER_BASE: u32 = 2224u32;
pub const KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_CONTENT_BASE: u32 = 2208u32;
pub const KS_NABTS_GROUPID_MICROSOFT_RESERVED_TEST_DATA_BASE: u32 = 2288u32;
pub const KS_NABTS_GROUPID_NETWORK_WIDE_ADVERTISER_BASE: u32 = 2160u32;
pub const KS_NABTS_GROUPID_NETWORK_WIDE_CONTENT_BASE: u32 = 2144u32;
pub const KS_NABTS_GROUPID_ORIGINAL_CONTENT_ADVERTISER_BASE: u32 = 2064u32;
pub const KS_NABTS_GROUPID_ORIGINAL_CONTENT_BASE: u32 = 2048u32;
pub const KS_NABTS_GROUPID_PRODUCTION_COMPANY_ADVERTISER_BASE: u32 = 2096u32;
pub const KS_NABTS_GROUPID_PRODUCTION_COMPANY_CONTENT_BASE: u32 = 2080u32;
pub const KS_NABTS_GROUPID_SYNDICATED_SHOW_ADVERTISER_BASE: u32 = 2128u32;
pub const KS_NABTS_GROUPID_SYNDICATED_SHOW_CONTENT_BASE: u32 = 2112u32;
pub const KS_NABTS_GROUPID_TELEVISION_STATION_ADVERTISER_BASE: u32 = 2192u32;
pub const KS_NABTS_GROUPID_TELEVISION_STATION_CONTENT_BASE: u32 = 2176u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_PhysicalConnectorType(pub i32);
impl KS_PhysicalConnectorType {
pub const KS_PhysConn_Video_Tuner: Self = Self(1i32);
pub const KS_PhysConn_Video_Composite: Self = Self(2i32);
pub const KS_PhysConn_Video_SVideo: Self = Self(3i32);
pub const KS_PhysConn_Video_RGB: Self = Self(4i32);
pub const KS_PhysConn_Video_YRYBY: Self = Self(5i32);
pub const KS_PhysConn_Video_SerialDigital: Self = Self(6i32);
pub const KS_PhysConn_Video_ParallelDigital: Self = Self(7i32);
pub const KS_PhysConn_Video_SCSI: Self = Self(8i32);
pub const KS_PhysConn_Video_AUX: Self = Self(9i32);
pub const KS_PhysConn_Video_1394: Self = Self(10i32);
pub const KS_PhysConn_Video_USB: Self = Self(11i32);
pub const KS_PhysConn_Video_VideoDecoder: Self = Self(12i32);
pub const KS_PhysConn_Video_VideoEncoder: Self = Self(13i32);
pub const KS_PhysConn_Video_SCART: Self = Self(14i32);
pub const KS_PhysConn_Audio_Tuner: Self = Self(4096i32);
pub const KS_PhysConn_Audio_Line: Self = Self(4097i32);
pub const KS_PhysConn_Audio_Mic: Self = Self(4098i32);
pub const KS_PhysConn_Audio_AESDigital: Self = Self(4099i32);
pub const KS_PhysConn_Audio_SPDIFDigital: Self = Self(4100i32);
pub const KS_PhysConn_Audio_SCSI: Self = Self(4101i32);
pub const KS_PhysConn_Audio_AUX: Self = Self(4102i32);
pub const KS_PhysConn_Audio_1394: Self = Self(4103i32);
pub const KS_PhysConn_Audio_USB: Self = Self(4104i32);
pub const KS_PhysConn_Audio_AudioDecoder: Self = Self(4105i32);
}
impl ::std::convert::From<i32> for KS_PhysicalConnectorType {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_PhysicalConnectorType {
type Abi = Self;
}
pub const KS_SECURE_CAMERA_SCENARIO_ID: ::windows::Guid = ::windows::Guid::from_values(
2924739694,
36233,
17544,
[157, 46, 77, 0, 135, 49, 197, 253],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_SEEKING_CAPABILITIES(pub i32);
impl KS_SEEKING_CAPABILITIES {
pub const KS_SEEKING_CanSeekAbsolute: Self = Self(1i32);
pub const KS_SEEKING_CanSeekForwards: Self = Self(2i32);
pub const KS_SEEKING_CanSeekBackwards: Self = Self(4i32);
pub const KS_SEEKING_CanGetCurrentPos: Self = Self(8i32);
pub const KS_SEEKING_CanGetStopPos: Self = Self(16i32);
pub const KS_SEEKING_CanGetDuration: Self = Self(32i32);
pub const KS_SEEKING_CanPlayBackwards: Self = Self(64i32);
}
impl ::std::convert::From<i32> for KS_SEEKING_CAPABILITIES {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_SEEKING_CAPABILITIES {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_TUNER_STRATEGY(pub i32);
impl KS_TUNER_STRATEGY {
pub const KS_TUNER_STRATEGY_PLL: Self = Self(1i32);
pub const KS_TUNER_STRATEGY_SIGNAL_STRENGTH: Self = Self(2i32);
pub const KS_TUNER_STRATEGY_DRIVER_TUNES: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KS_TUNER_STRATEGY {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_TUNER_STRATEGY {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_TUNER_TUNING_FLAGS(pub i32);
impl KS_TUNER_TUNING_FLAGS {
pub const KS_TUNER_TUNING_EXACT: Self = Self(1i32);
pub const KS_TUNER_TUNING_FINE: Self = Self(2i32);
pub const KS_TUNER_TUNING_COARSE: Self = Self(3i32);
}
impl ::std::convert::From<i32> for KS_TUNER_TUNING_FLAGS {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_TUNER_TUNING_FLAGS {
type Abi = Self;
}
pub const KS_TVAUDIO_MODE_LANG_A: u32 = 16u32;
pub const KS_TVAUDIO_MODE_LANG_B: u32 = 32u32;
pub const KS_TVAUDIO_MODE_LANG_C: u32 = 64u32;
pub const KS_TVAUDIO_MODE_MONO: u32 = 1u32;
pub const KS_TVAUDIO_MODE_STEREO: u32 = 2u32;
pub const KS_TVAUDIO_PRESET_LANG_A: u32 = 4096u32;
pub const KS_TVAUDIO_PRESET_LANG_B: u32 = 8192u32;
pub const KS_TVAUDIO_PRESET_LANG_C: u32 = 16384u32;
pub const KS_TVAUDIO_PRESET_STEREO: u32 = 512u32;
pub const KS_TVTUNER_CHANGE_BEGIN_TUNE: i32 = 1i32;
pub const KS_TVTUNER_CHANGE_END_TUNE: i32 = 2i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_TVTUNER_CHANGE_INFO {
pub dwFlags: u32,
pub dwCountryCode: u32,
pub dwAnalogVideoStandard: u32,
pub dwChannel: u32,
}
impl KS_TVTUNER_CHANGE_INFO {}
impl ::std::default::Default for KS_TVTUNER_CHANGE_INFO {
fn default() -> Self {
Self {
dwFlags: 0,
dwCountryCode: 0,
dwAnalogVideoStandard: 0,
dwChannel: 0,
}
}
}
impl ::std::fmt::Debug for KS_TVTUNER_CHANGE_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_TVTUNER_CHANGE_INFO")
.field("dwFlags", &format_args!("{:?}", self.dwFlags))
.field("dwCountryCode", &format_args!("{:?}", self.dwCountryCode))
.field(
"dwAnalogVideoStandard",
&format_args!("{:?}", self.dwAnalogVideoStandard),
)
.field("dwChannel", &format_args!("{:?}", self.dwChannel))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_TVTUNER_CHANGE_INFO {
fn eq(&self, other: &Self) -> bool {
self.dwFlags == other.dwFlags
&& self.dwCountryCode == other.dwCountryCode
&& self.dwAnalogVideoStandard == other.dwAnalogVideoStandard
&& self.dwChannel == other.dwChannel
}
}
impl ::std::cmp::Eq for KS_TVTUNER_CHANGE_INFO {}
unsafe impl ::windows::Abi for KS_TVTUNER_CHANGE_INFO {
type Abi = Self;
}
pub const KS_VBICAP_PROTECTION_MV_DETECTED: i32 = 4i32;
pub const KS_VBICAP_PROTECTION_MV_HARDWARE: i32 = 2i32;
pub const KS_VBICAP_PROTECTION_MV_PRESENT: i32 = 1i32;
pub const KS_VBIDATARATE_CC: i32 = 503493i32;
pub const KS_VBIDATARATE_NABTS: i32 = 5727272i32;
pub const KS_VBI_FLAG_FIELD1: i32 = 1i32;
pub const KS_VBI_FLAG_FIELD2: i32 = 2i32;
pub const KS_VBI_FLAG_FRAME: i32 = 0i32;
pub const KS_VBI_FLAG_MV_DETECTED: i32 = 1024i32;
pub const KS_VBI_FLAG_MV_HARDWARE: i32 = 512i32;
pub const KS_VBI_FLAG_MV_PRESENT: i32 = 256i32;
pub const KS_VBI_FLAG_TVTUNER_CHANGE: i32 = 16i32;
pub const KS_VBI_FLAG_VBIINFOHEADER_CHANGE: i32 = 32i32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KS_VBI_FRAME_INFO {
pub ExtendedHeaderSize: u32,
pub dwFrameFlags: u32,
pub PictureNumber: i64,
pub DropCount: i64,
pub dwSamplingFrequency: u32,
pub TvTunerChangeInfo: KS_TVTUNER_CHANGE_INFO,
pub VBIInfoHeader: KS_VBIINFOHEADER,
}
impl KS_VBI_FRAME_INFO {}
impl ::std::default::Default for KS_VBI_FRAME_INFO {
fn default() -> Self {
Self {
ExtendedHeaderSize: 0,
dwFrameFlags: 0,
PictureNumber: 0,
DropCount: 0,
dwSamplingFrequency: 0,
TvTunerChangeInfo: ::std::default::Default::default(),
VBIInfoHeader: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for KS_VBI_FRAME_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KS_VBI_FRAME_INFO")
.field(
"ExtendedHeaderSize",
&format_args!("{:?}", self.ExtendedHeaderSize),
)
.field("dwFrameFlags", &format_args!("{:?}", self.dwFrameFlags))
.field("PictureNumber", &format_args!("{:?}", self.PictureNumber))
.field("DropCount", &format_args!("{:?}", self.DropCount))
.field(
"dwSamplingFrequency",
&format_args!("{:?}", self.dwSamplingFrequency),
)
.field(
"TvTunerChangeInfo",
&format_args!("{:?}", self.TvTunerChangeInfo),
)
.field("VBIInfoHeader", &format_args!("{:?}", self.VBIInfoHeader))
.finish()
}
}
impl ::std::cmp::PartialEq for KS_VBI_FRAME_INFO {
fn eq(&self, other: &Self) -> bool {
self.ExtendedHeaderSize == other.ExtendedHeaderSize
&& self.dwFrameFlags == other.dwFrameFlags
&& self.PictureNumber == other.PictureNumber
&& self.DropCount == other.DropCount
&& self.dwSamplingFrequency == other.dwSamplingFrequency
&& self.TvTunerChangeInfo == other.TvTunerChangeInfo
&& self.VBIInfoHeader == other.VBIInfoHeader
}
}
impl ::std::cmp::Eq for KS_VBI_FRAME_INFO {}
unsafe impl ::windows::Abi for KS_VBI_FRAME_INFO {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_VIDEODECODER_FLAGS(pub i32);
impl KS_VIDEODECODER_FLAGS {
pub const KS_VIDEODECODER_FLAGS_CAN_DISABLE_OUTPUT: Self = Self(1i32);
pub const KS_VIDEODECODER_FLAGS_CAN_USE_VCR_LOCKING: Self = Self(2i32);
pub const KS_VIDEODECODER_FLAGS_CAN_INDICATE_LOCKED: Self = Self(4i32);
}
impl ::std::convert::From<i32> for KS_VIDEODECODER_FLAGS {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_VIDEODECODER_FLAGS {
type Abi = Self;
}
pub const KS_VIDEOSTREAM_CAPTURE: u32 = 2u32;
pub const KS_VIDEOSTREAM_CC: u32 = 256u32;
pub const KS_VIDEOSTREAM_EDS: u32 = 512u32;
pub const KS_VIDEOSTREAM_IS_VPE: u32 = 32768u32;
pub const KS_VIDEOSTREAM_NABTS: u32 = 32u32;
pub const KS_VIDEOSTREAM_PREVIEW: u32 = 1u32;
pub const KS_VIDEOSTREAM_STILL: u32 = 4096u32;
pub const KS_VIDEOSTREAM_TELETEXT: u32 = 1024u32;
pub const KS_VIDEOSTREAM_VBI: u32 = 16u32;
pub const KS_VIDEO_ALLOC_VPE_AGP: u32 = 4u32;
pub const KS_VIDEO_ALLOC_VPE_DISPLAY: u32 = 2u32;
pub const KS_VIDEO_ALLOC_VPE_SYSTEM: u32 = 1u32;
pub const KS_VIDEO_FLAG_B_FRAME: i32 = 32i32;
pub const KS_VIDEO_FLAG_FIELD1: i32 = 1i32;
pub const KS_VIDEO_FLAG_FIELD1FIRST: i32 = 4i32;
pub const KS_VIDEO_FLAG_FIELD2: i32 = 2i32;
pub const KS_VIDEO_FLAG_FIELD_MASK: i32 = 3i32;
pub const KS_VIDEO_FLAG_FRAME: i32 = 0i32;
pub const KS_VIDEO_FLAG_IPB_MASK: i32 = 48i32;
pub const KS_VIDEO_FLAG_I_FRAME: i32 = 0i32;
pub const KS_VIDEO_FLAG_P_FRAME: i32 = 16i32;
pub const KS_VIDEO_FLAG_REPEAT_FIELD: i32 = 64i32;
pub const KS_VIDEO_FLAG_WEAVE: i32 = 8i32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_VideoControlFlags(pub i32);
impl KS_VideoControlFlags {
pub const KS_VideoControlFlag_FlipHorizontal: Self = Self(1i32);
pub const KS_VideoControlFlag_FlipVertical: Self = Self(2i32);
pub const KS_Obsolete_VideoControlFlag_ExternalTriggerEnable: Self = Self(16i32);
pub const KS_Obsolete_VideoControlFlag_Trigger: Self = Self(32i32);
pub const KS_VideoControlFlag_ExternalTriggerEnable: Self = Self(4i32);
pub const KS_VideoControlFlag_Trigger: Self = Self(8i32);
pub const KS_VideoControlFlag_IndependentImagePin: Self = Self(64i32);
pub const KS_VideoControlFlag_StillCapturePreviewFrame: Self = Self(128i32);
pub const KS_VideoControlFlag_StartPhotoSequenceCapture: Self = Self(256i32);
pub const KS_VideoControlFlag_StopPhotoSequenceCapture: Self = Self(512i32);
}
impl ::std::convert::From<i32> for KS_VideoControlFlags {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_VideoControlFlags {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct KS_VideoStreamingHints(pub i32);
impl KS_VideoStreamingHints {
pub const KS_StreamingHint_FrameInterval: Self = Self(256i32);
pub const KS_StreamingHint_KeyFrameRate: Self = Self(512i32);
pub const KS_StreamingHint_PFrameRate: Self = Self(1024i32);
pub const KS_StreamingHint_CompQuality: Self = Self(2048i32);
pub const KS_StreamingHint_CompWindowSize: Self = Self(4096i32);
}
impl ::std::convert::From<i32> for KS_VideoStreamingHints {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for KS_VideoStreamingHints {
type Abi = Self;
}
pub const KS_iBLUE: u32 = 2u32;
pub const KS_iEGA_COLORS: u32 = 16u32;
pub const KS_iGREEN: u32 = 1u32;
pub const KS_iMASK_COLORS: u32 = 3u32;
pub const KS_iMAXBITS: u32 = 8u32;
pub const KS_iPALETTE: u32 = 8u32;
pub const KS_iPALETTE_COLORS: u32 = 256u32;
pub const KS_iRED: u32 = 0u32;
pub const KS_iTRUECOLOR: u32 = 16u32;
pub unsafe fn KsCreateAllocator<'a>(
connectionhandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
allocatorframing: *mut KSALLOCATOR_FRAMING,
allocatorhandle: *mut super::SystemServices::HANDLE,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn KsCreateAllocator2<'a>(
connectionhandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
allocatorframing: *mut KSALLOCATOR_FRAMING,
allocatorhandle: *mut super::SystemServices::HANDLE,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
pub unsafe fn KsCreateClock<'a>(
connectionhandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
clockcreate: *mut KSCLOCK_CREATE,
clockhandle: *mut super::SystemServices::HANDLE,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn KsCreateClock2<'a>(
connectionhandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
clockcreate: *mut KSCLOCK_CREATE,
clockhandle: *mut super::SystemServices::HANDLE,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
pub unsafe fn KsCreatePin<'a>(
filterhandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
connect: *mut KSPIN_CONNECT,
desiredaccess: u32,
connectionhandle: *mut super::SystemServices::HANDLE,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn KsCreatePin2<'a>(
filterhandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
connect: *mut KSPIN_CONNECT,
desiredaccess: u32,
connectionhandle: *mut super::SystemServices::HANDLE,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
pub unsafe fn KsCreateTopologyNode<'a>(
parenthandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
nodecreate: *mut KSNODE_CREATE,
desiredaccess: u32,
nodehandle: *mut super::SystemServices::HANDLE,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn KsCreateTopologyNode2<'a>(
parenthandle: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
nodecreate: *mut KSNODE_CREATE,
desiredaccess: u32,
nodehandle: *mut super::SystemServices::HANDLE,
) -> ::windows::HRESULT {
panic!("Unsupported target OS");
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct LOOPEDSTREAMING_POSITION_EVENT_DATA {
pub KsEventData: KSEVENTDATA,
pub Position: u64,
}
impl LOOPEDSTREAMING_POSITION_EVENT_DATA {}
unsafe impl ::windows::Abi for LOOPEDSTREAMING_POSITION_EVENT_DATA {
type Abi = Self;
}
pub const MAX_NABTS_VBI_LINES_PER_FIELD: u32 = 11u32;
pub const MAX_SINK_DESCRIPTION_NAME_LENGTH: u32 = 32u32;
pub const MAX_WST_VBI_LINES_PER_FIELD: u32 = 17u32;
pub const MCIERR_BAD_CONSTANT: u32 = 290u32;
pub const MCIERR_BAD_INTEGER: u32 = 270u32;
pub const MCIERR_BAD_TIME_FORMAT: u32 = 293u32;
pub const MCIERR_CANNOT_LOAD_DRIVER: u32 = 266u32;
pub const MCIERR_CANNOT_USE_ALL: u32 = 279u32;
pub const MCIERR_CREATEWINDOW: u32 = 347u32;
pub const MCIERR_CUSTOM_DRIVER_BASE: u32 = 512u32;
pub const MCIERR_DEVICE_LENGTH: u32 = 310u32;
pub const MCIERR_DEVICE_LOCKED: u32 = 288u32;
pub const MCIERR_DEVICE_NOT_INSTALLED: u32 = 306u32;
pub const MCIERR_DEVICE_NOT_READY: u32 = 276u32;
pub const MCIERR_DEVICE_OPEN: u32 = 265u32;
pub const MCIERR_DEVICE_ORD_LENGTH: u32 = 311u32;
pub const MCIERR_DEVICE_TYPE_REQUIRED: u32 = 287u32;
pub const MCIERR_DRIVER: u32 = 278u32;
pub const MCIERR_DRIVER_INTERNAL: u32 = 272u32;
pub const MCIERR_DUPLICATE_ALIAS: u32 = 289u32;
pub const MCIERR_DUPLICATE_FLAGS: u32 = 295u32;
pub const MCIERR_EXTENSION_NOT_FOUND: u32 = 281u32;
pub const MCIERR_EXTRA_CHARACTERS: u32 = 305u32;
pub const MCIERR_FILENAME_REQUIRED: u32 = 304u32;
pub const MCIERR_FILE_NOT_FOUND: u32 = 275u32;
pub const MCIERR_FILE_NOT_SAVED: u32 = 286u32;
pub const MCIERR_FILE_READ: u32 = 348u32;
pub const MCIERR_FILE_WRITE: u32 = 349u32;
pub const MCIERR_FLAGS_NOT_COMPATIBLE: u32 = 284u32;
pub const MCIERR_GET_CD: u32 = 307u32;
pub const MCIERR_HARDWARE: u32 = 262u32;
pub const MCIERR_ILLEGAL_FOR_AUTO_OPEN: u32 = 303u32;
pub const MCIERR_INTERNAL: u32 = 277u32;
pub const MCIERR_INVALID_DEVICE_ID: u32 = 257u32;
pub const MCIERR_INVALID_DEVICE_NAME: u32 = 263u32;
pub const MCIERR_INVALID_FILE: u32 = 296u32;
pub const MCIERR_MISSING_COMMAND_STRING: u32 = 267u32;
pub const MCIERR_MISSING_DEVICE_NAME: u32 = 292u32;
pub const MCIERR_MISSING_PARAMETER: u32 = 273u32;
pub const MCIERR_MISSING_STRING_ARGUMENT: u32 = 269u32;
pub const MCIERR_MULTIPLE: u32 = 280u32;
pub const MCIERR_MUST_USE_SHAREABLE: u32 = 291u32;
pub const MCIERR_NEW_REQUIRES_ALIAS: u32 = 299u32;
pub const MCIERR_NONAPPLICABLE_FUNCTION: u32 = 302u32;
pub const MCIERR_NOTIFY_ON_AUTO_OPEN: u32 = 300u32;
pub const MCIERR_NO_CLOSING_QUOTE: u32 = 294u32;
pub const MCIERR_NO_ELEMENT_ALLOWED: u32 = 301u32;
pub const MCIERR_NO_IDENTITY: u32 = 350u32;
pub const MCIERR_NO_INTEGER: u32 = 312u32;
pub const MCIERR_NO_WINDOW: u32 = 346u32;
pub const MCIERR_NULL_PARAMETER_BLOCK: u32 = 297u32;
pub const MCIERR_OUTOFRANGE: u32 = 282u32;
pub const MCIERR_OUT_OF_MEMORY: u32 = 264u32;
pub const MCIERR_PARAM_OVERFLOW: u32 = 268u32;
pub const MCIERR_PARSER_INTERNAL: u32 = 271u32;
pub const MCIERR_SEQ_DIV_INCOMPATIBLE: u32 = 336u32;
pub const MCIERR_SEQ_NOMIDIPRESENT: u32 = 343u32;
pub const MCIERR_SEQ_PORTUNSPECIFIED: u32 = 342u32;
pub const MCIERR_SEQ_PORT_INUSE: u32 = 337u32;
pub const MCIERR_SEQ_PORT_MAPNODEVICE: u32 = 339u32;
pub const MCIERR_SEQ_PORT_MISCERROR: u32 = 340u32;
pub const MCIERR_SEQ_PORT_NONEXISTENT: u32 = 338u32;
pub const MCIERR_SEQ_TIMER: u32 = 341u32;
pub const MCIERR_SET_CD: u32 = 308u32;
pub const MCIERR_SET_DRIVE: u32 = 309u32;
pub const MCIERR_UNNAMED_RESOURCE: u32 = 298u32;
pub const MCIERR_UNRECOGNIZED_COMMAND: u32 = 261u32;
pub const MCIERR_UNRECOGNIZED_KEYWORD: u32 = 259u32;
pub const MCIERR_UNSUPPORTED_FUNCTION: u32 = 274u32;
pub const MCIERR_WAVE_INPUTSINUSE: u32 = 322u32;
pub const MCIERR_WAVE_INPUTSUNSUITABLE: u32 = 328u32;
pub const MCIERR_WAVE_INPUTUNSPECIFIED: u32 = 325u32;
pub const MCIERR_WAVE_OUTPUTSINUSE: u32 = 320u32;
pub const MCIERR_WAVE_OUTPUTSUNSUITABLE: u32 = 326u32;
pub const MCIERR_WAVE_OUTPUTUNSPECIFIED: u32 = 324u32;
pub const MCIERR_WAVE_SETINPUTINUSE: u32 = 323u32;
pub const MCIERR_WAVE_SETINPUTUNSUITABLE: u32 = 329u32;
pub const MCIERR_WAVE_SETOUTPUTINUSE: u32 = 321u32;
pub const MCIERR_WAVE_SETOUTPUTUNSUITABLE: u32 = 327u32;
pub const MCI_ANIM_GETDEVCAPS_CAN_REVERSE: i32 = 16385i32;
pub const MCI_ANIM_GETDEVCAPS_CAN_STRETCH: i32 = 16391i32;
pub const MCI_ANIM_GETDEVCAPS_FAST_RATE: i32 = 16386i32;
pub const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS: i32 = 16392i32;
pub const MCI_ANIM_GETDEVCAPS_NORMAL_RATE: i32 = 16388i32;
pub const MCI_ANIM_GETDEVCAPS_PALETTES: i32 = 16390i32;
pub const MCI_ANIM_GETDEVCAPS_SLOW_RATE: i32 = 16387i32;
pub const MCI_ANIM_INFO_TEXT: i32 = 65536i32;
pub const MCI_ANIM_OPEN_NOSTATIC: i32 = 262144i32;
pub const MCI_ANIM_OPEN_PARENT: i32 = 131072i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_ANIM_OPEN_PARMSA {
pub dwCallback: usize,
pub wDeviceID: u32,
pub lpstrDeviceType: super::SystemServices::PSTR,
pub lpstrElementName: super::SystemServices::PSTR,
pub lpstrAlias: super::SystemServices::PSTR,
pub dwStyle: u32,
pub hWndParent: super::WindowsAndMessaging::HWND,
}
impl MCI_ANIM_OPEN_PARMSA {}
unsafe impl ::windows::Abi for MCI_ANIM_OPEN_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_ANIM_OPEN_PARMSW {
pub dwCallback: usize,
pub wDeviceID: u32,
pub lpstrDeviceType: super::SystemServices::PWSTR,
pub lpstrElementName: super::SystemServices::PWSTR,
pub lpstrAlias: super::SystemServices::PWSTR,
pub dwStyle: u32,
pub hWndParent: super::WindowsAndMessaging::HWND,
}
impl MCI_ANIM_OPEN_PARMSW {}
unsafe impl ::windows::Abi for MCI_ANIM_OPEN_PARMSW {
type Abi = Self;
}
pub const MCI_ANIM_OPEN_WS: i32 = 65536i32;
pub const MCI_ANIM_PLAY_FAST: i32 = 262144i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_ANIM_PLAY_PARMS {
pub dwCallback: usize,
pub dwFrom: u32,
pub dwTo: u32,
pub dwSpeed: u32,
}
impl MCI_ANIM_PLAY_PARMS {}
unsafe impl ::windows::Abi for MCI_ANIM_PLAY_PARMS {
type Abi = Self;
}
pub const MCI_ANIM_PLAY_REVERSE: i32 = 131072i32;
pub const MCI_ANIM_PLAY_SCAN: i32 = 1048576i32;
pub const MCI_ANIM_PLAY_SLOW: i32 = 524288i32;
pub const MCI_ANIM_PLAY_SPEED: i32 = 65536i32;
pub const MCI_ANIM_PUT_DESTINATION: i32 = 262144i32;
pub const MCI_ANIM_PUT_SOURCE: i32 = 131072i32;
pub const MCI_ANIM_REALIZE_BKGD: i32 = 131072i32;
pub const MCI_ANIM_REALIZE_NORM: i32 = 65536i32;
pub const MCI_ANIM_RECT: i32 = 65536i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_ANIM_RECT_PARMS {
pub dwCallback: usize,
pub rc: super::DisplayDevices::RECT,
}
impl MCI_ANIM_RECT_PARMS {}
unsafe impl ::windows::Abi for MCI_ANIM_RECT_PARMS {
type Abi = Self;
}
pub const MCI_ANIM_STATUS_FORWARD: i32 = 16386i32;
pub const MCI_ANIM_STATUS_HPAL: i32 = 16388i32;
pub const MCI_ANIM_STATUS_HWND: i32 = 16387i32;
pub const MCI_ANIM_STATUS_SPEED: i32 = 16385i32;
pub const MCI_ANIM_STATUS_STRETCH: i32 = 16389i32;
pub const MCI_ANIM_STEP_FRAMES: i32 = 131072i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_ANIM_STEP_PARMS {
pub dwCallback: usize,
pub dwFrames: u32,
}
impl MCI_ANIM_STEP_PARMS {}
unsafe impl ::windows::Abi for MCI_ANIM_STEP_PARMS {
type Abi = Self;
}
pub const MCI_ANIM_STEP_REVERSE: i32 = 65536i32;
pub const MCI_ANIM_UPDATE_HDC: i32 = 131072i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_ANIM_UPDATE_PARMS {
pub dwCallback: usize,
pub rc: super::DisplayDevices::RECT,
pub hDC: super::Gdi::HDC,
}
impl MCI_ANIM_UPDATE_PARMS {}
unsafe impl ::windows::Abi for MCI_ANIM_UPDATE_PARMS {
type Abi = Self;
}
pub const MCI_ANIM_WHERE_DESTINATION: i32 = 262144i32;
pub const MCI_ANIM_WHERE_SOURCE: i32 = 131072i32;
pub const MCI_ANIM_WINDOW_DEFAULT: i32 = 0i32;
pub const MCI_ANIM_WINDOW_DISABLE_STRETCH: i32 = 2097152i32;
pub const MCI_ANIM_WINDOW_ENABLE_STRETCH: i32 = 1048576i32;
pub const MCI_ANIM_WINDOW_HWND: i32 = 65536i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_ANIM_WINDOW_PARMSA {
pub dwCallback: usize,
pub hWnd: super::WindowsAndMessaging::HWND,
pub nCmdShow: u32,
pub lpstrText: super::SystemServices::PSTR,
}
impl MCI_ANIM_WINDOW_PARMSA {}
unsafe impl ::windows::Abi for MCI_ANIM_WINDOW_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_ANIM_WINDOW_PARMSW {
pub dwCallback: usize,
pub hWnd: super::WindowsAndMessaging::HWND,
pub nCmdShow: u32,
pub lpstrText: super::SystemServices::PWSTR,
}
impl MCI_ANIM_WINDOW_PARMSW {}
unsafe impl ::windows::Abi for MCI_ANIM_WINDOW_PARMSW {
type Abi = Self;
}
pub const MCI_ANIM_WINDOW_STATE: i32 = 262144i32;
pub const MCI_ANIM_WINDOW_TEXT: i32 = 524288i32;
pub const MCI_BREAK: u32 = 2065u32;
pub const MCI_BREAK_HWND: i32 = 512i32;
pub const MCI_BREAK_KEY: i32 = 256i32;
pub const MCI_BREAK_OFF: i32 = 1024i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_BREAK_PARMS {
pub dwCallback: usize,
pub nVirtKey: i32,
pub hwndBreak: super::WindowsAndMessaging::HWND,
}
impl MCI_BREAK_PARMS {}
unsafe impl ::windows::Abi for MCI_BREAK_PARMS {
type Abi = Self;
}
pub const MCI_CDA_STATUS_TYPE_TRACK: i32 = 16385i32;
pub const MCI_CDA_TRACK_AUDIO: u32 = 1088u32;
pub const MCI_CDA_TRACK_OTHER: u32 = 1089u32;
pub const MCI_CLOSE: u32 = 2052u32;
pub const MCI_COPY: u32 = 2130u32;
pub const MCI_CUE: u32 = 2096u32;
pub const MCI_CUT: u32 = 2129u32;
pub const MCI_DELETE: u32 = 2134u32;
pub const MCI_DEVTYPE_ANIMATION: u32 = 519u32;
pub const MCI_DEVTYPE_CD_AUDIO: u32 = 516u32;
pub const MCI_DEVTYPE_DAT: u32 = 517u32;
pub const MCI_DEVTYPE_DIGITAL_VIDEO: u32 = 520u32;
pub const MCI_DEVTYPE_FIRST_USER: u32 = 4096u32;
pub const MCI_DEVTYPE_OTHER: u32 = 521u32;
pub const MCI_DEVTYPE_OVERLAY: u32 = 515u32;
pub const MCI_DEVTYPE_SCANNER: u32 = 518u32;
pub const MCI_DEVTYPE_SEQUENCER: u32 = 523u32;
pub const MCI_DEVTYPE_VCR: u32 = 513u32;
pub const MCI_DEVTYPE_VIDEODISC: u32 = 514u32;
pub const MCI_DEVTYPE_WAVEFORM_AUDIO: u32 = 522u32;
pub const MCI_ESCAPE: u32 = 2053u32;
pub const MCI_FORMAT_BYTES: u32 = 8u32;
pub const MCI_FORMAT_FRAMES: u32 = 3u32;
pub const MCI_FORMAT_HMS: u32 = 1u32;
pub const MCI_FORMAT_MILLISECONDS: u32 = 0u32;
pub const MCI_FORMAT_MSF: u32 = 2u32;
pub const MCI_FORMAT_SAMPLES: u32 = 9u32;
pub const MCI_FORMAT_SMPTE_24: u32 = 4u32;
pub const MCI_FORMAT_SMPTE_25: u32 = 5u32;
pub const MCI_FORMAT_SMPTE_30: u32 = 6u32;
pub const MCI_FORMAT_SMPTE_30DROP: u32 = 7u32;
pub const MCI_FORMAT_TMSF: u32 = 10u32;
pub const MCI_FREEZE: u32 = 2116u32;
pub const MCI_FROM: i32 = 4i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_GENERIC_PARMS {
pub dwCallback: usize,
}
impl MCI_GENERIC_PARMS {}
unsafe impl ::windows::Abi for MCI_GENERIC_PARMS {
type Abi = Self;
}
pub const MCI_GETDEVCAPS: u32 = 2059u32;
pub const MCI_GETDEVCAPS_CAN_EJECT: i32 = 7i32;
pub const MCI_GETDEVCAPS_CAN_PLAY: i32 = 8i32;
pub const MCI_GETDEVCAPS_CAN_RECORD: i32 = 1i32;
pub const MCI_GETDEVCAPS_CAN_SAVE: i32 = 9i32;
pub const MCI_GETDEVCAPS_COMPOUND_DEVICE: i32 = 6i32;
pub const MCI_GETDEVCAPS_DEVICE_TYPE: i32 = 4i32;
pub const MCI_GETDEVCAPS_HAS_AUDIO: i32 = 2i32;
pub const MCI_GETDEVCAPS_HAS_VIDEO: i32 = 3i32;
pub const MCI_GETDEVCAPS_ITEM: i32 = 256i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_GETDEVCAPS_PARMS {
pub dwCallback: usize,
pub dwReturn: u32,
pub dwItem: u32,
}
impl MCI_GETDEVCAPS_PARMS {}
unsafe impl ::windows::Abi for MCI_GETDEVCAPS_PARMS {
type Abi = Self;
}
pub const MCI_GETDEVCAPS_USES_FILES: i32 = 5i32;
pub const MCI_INFO: u32 = 2058u32;
pub const MCI_INFO_COPYRIGHT: i32 = 8192i32;
pub const MCI_INFO_FILE: i32 = 512i32;
pub const MCI_INFO_MEDIA_IDENTITY: i32 = 2048i32;
pub const MCI_INFO_MEDIA_UPC: i32 = 1024i32;
pub const MCI_INFO_NAME: i32 = 4096i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_INFO_PARMSA {
pub dwCallback: usize,
pub lpstrReturn: super::SystemServices::PSTR,
pub dwRetSize: u32,
}
impl MCI_INFO_PARMSA {}
unsafe impl ::windows::Abi for MCI_INFO_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_INFO_PARMSW {
pub dwCallback: usize,
pub lpstrReturn: super::SystemServices::PWSTR,
pub dwRetSize: u32,
}
impl MCI_INFO_PARMSW {}
unsafe impl ::windows::Abi for MCI_INFO_PARMSW {
type Abi = Self;
}
pub const MCI_INFO_PRODUCT: i32 = 256i32;
pub const MCI_LAST: u32 = 4095u32;
pub const MCI_LOAD: u32 = 2128u32;
pub const MCI_LOAD_FILE: i32 = 256i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_LOAD_PARMSA {
pub dwCallback: usize,
pub lpfilename: super::SystemServices::PSTR,
}
impl MCI_LOAD_PARMSA {}
unsafe impl ::windows::Abi for MCI_LOAD_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_LOAD_PARMSW {
pub dwCallback: usize,
pub lpfilename: super::SystemServices::PWSTR,
}
impl MCI_LOAD_PARMSW {}
unsafe impl ::windows::Abi for MCI_LOAD_PARMSW {
type Abi = Self;
}
pub const MCI_MODE_NOT_READY: u32 = 524u32;
pub const MCI_MODE_OPEN: u32 = 530u32;
pub const MCI_MODE_PAUSE: u32 = 529u32;
pub const MCI_MODE_PLAY: u32 = 526u32;
pub const MCI_MODE_RECORD: u32 = 527u32;
pub const MCI_MODE_SEEK: u32 = 528u32;
pub const MCI_MODE_STOP: u32 = 525u32;
pub const MCI_NOTIFY: i32 = 1i32;
pub const MCI_NOTIFY_ABORTED: u32 = 4u32;
pub const MCI_NOTIFY_FAILURE: u32 = 8u32;
pub const MCI_NOTIFY_SUCCESSFUL: u32 = 1u32;
pub const MCI_NOTIFY_SUPERSEDED: u32 = 2u32;
pub const MCI_OPEN: u32 = 2051u32;
pub const MCI_OPEN_ALIAS: i32 = 1024i32;
pub const MCI_OPEN_ELEMENT: i32 = 512i32;
pub const MCI_OPEN_ELEMENT_ID: i32 = 2048i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OPEN_PARMSA {
pub dwCallback: usize,
pub wDeviceID: u32,
pub lpstrDeviceType: super::SystemServices::PSTR,
pub lpstrElementName: super::SystemServices::PSTR,
pub lpstrAlias: super::SystemServices::PSTR,
}
impl MCI_OPEN_PARMSA {}
unsafe impl ::windows::Abi for MCI_OPEN_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OPEN_PARMSW {
pub dwCallback: usize,
pub wDeviceID: u32,
pub lpstrDeviceType: super::SystemServices::PWSTR,
pub lpstrElementName: super::SystemServices::PWSTR,
pub lpstrAlias: super::SystemServices::PWSTR,
}
impl MCI_OPEN_PARMSW {}
unsafe impl ::windows::Abi for MCI_OPEN_PARMSW {
type Abi = Self;
}
pub const MCI_OPEN_SHAREABLE: i32 = 256i32;
pub const MCI_OPEN_TYPE: i32 = 8192i32;
pub const MCI_OPEN_TYPE_ID: i32 = 4096i32;
pub const MCI_OVLY_GETDEVCAPS_CAN_FREEZE: i32 = 16386i32;
pub const MCI_OVLY_GETDEVCAPS_CAN_STRETCH: i32 = 16385i32;
pub const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS: i32 = 16387i32;
pub const MCI_OVLY_INFO_TEXT: i32 = 65536i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OVLY_LOAD_PARMSA {
pub dwCallback: usize,
pub lpfilename: super::SystemServices::PSTR,
pub rc: super::DisplayDevices::RECT,
}
impl MCI_OVLY_LOAD_PARMSA {}
unsafe impl ::windows::Abi for MCI_OVLY_LOAD_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OVLY_LOAD_PARMSW {
pub dwCallback: usize,
pub lpfilename: super::SystemServices::PWSTR,
pub rc: super::DisplayDevices::RECT,
}
impl MCI_OVLY_LOAD_PARMSW {}
unsafe impl ::windows::Abi for MCI_OVLY_LOAD_PARMSW {
type Abi = Self;
}
pub const MCI_OVLY_OPEN_PARENT: i32 = 131072i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OVLY_OPEN_PARMSA {
pub dwCallback: usize,
pub wDeviceID: u32,
pub lpstrDeviceType: super::SystemServices::PSTR,
pub lpstrElementName: super::SystemServices::PSTR,
pub lpstrAlias: super::SystemServices::PSTR,
pub dwStyle: u32,
pub hWndParent: super::WindowsAndMessaging::HWND,
}
impl MCI_OVLY_OPEN_PARMSA {}
unsafe impl ::windows::Abi for MCI_OVLY_OPEN_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OVLY_OPEN_PARMSW {
pub dwCallback: usize,
pub wDeviceID: u32,
pub lpstrDeviceType: super::SystemServices::PWSTR,
pub lpstrElementName: super::SystemServices::PWSTR,
pub lpstrAlias: super::SystemServices::PWSTR,
pub dwStyle: u32,
pub hWndParent: super::WindowsAndMessaging::HWND,
}
impl MCI_OVLY_OPEN_PARMSW {}
unsafe impl ::windows::Abi for MCI_OVLY_OPEN_PARMSW {
type Abi = Self;
}
pub const MCI_OVLY_OPEN_WS: i32 = 65536i32;
pub const MCI_OVLY_PUT_DESTINATION: i32 = 262144i32;
pub const MCI_OVLY_PUT_FRAME: i32 = 524288i32;
pub const MCI_OVLY_PUT_SOURCE: i32 = 131072i32;
pub const MCI_OVLY_PUT_VIDEO: i32 = 1048576i32;
pub const MCI_OVLY_RECT: i32 = 65536i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OVLY_RECT_PARMS {
pub dwCallback: usize,
pub rc: super::DisplayDevices::RECT,
}
impl MCI_OVLY_RECT_PARMS {}
unsafe impl ::windows::Abi for MCI_OVLY_RECT_PARMS {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OVLY_SAVE_PARMSA {
pub dwCallback: usize,
pub lpfilename: super::SystemServices::PSTR,
pub rc: super::DisplayDevices::RECT,
}
impl MCI_OVLY_SAVE_PARMSA {}
unsafe impl ::windows::Abi for MCI_OVLY_SAVE_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OVLY_SAVE_PARMSW {
pub dwCallback: usize,
pub lpfilename: super::SystemServices::PWSTR,
pub rc: super::DisplayDevices::RECT,
}
impl MCI_OVLY_SAVE_PARMSW {}
unsafe impl ::windows::Abi for MCI_OVLY_SAVE_PARMSW {
type Abi = Self;
}
pub const MCI_OVLY_STATUS_HWND: i32 = 16385i32;
pub const MCI_OVLY_STATUS_STRETCH: i32 = 16386i32;
pub const MCI_OVLY_WHERE_DESTINATION: i32 = 262144i32;
pub const MCI_OVLY_WHERE_FRAME: i32 = 524288i32;
pub const MCI_OVLY_WHERE_SOURCE: i32 = 131072i32;
pub const MCI_OVLY_WHERE_VIDEO: i32 = 1048576i32;
pub const MCI_OVLY_WINDOW_DEFAULT: i32 = 0i32;
pub const MCI_OVLY_WINDOW_DISABLE_STRETCH: i32 = 2097152i32;
pub const MCI_OVLY_WINDOW_ENABLE_STRETCH: i32 = 1048576i32;
pub const MCI_OVLY_WINDOW_HWND: i32 = 65536i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OVLY_WINDOW_PARMSA {
pub dwCallback: usize,
pub hWnd: super::WindowsAndMessaging::HWND,
pub nCmdShow: u32,
pub lpstrText: super::SystemServices::PSTR,
}
impl MCI_OVLY_WINDOW_PARMSA {}
unsafe impl ::windows::Abi for MCI_OVLY_WINDOW_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_OVLY_WINDOW_PARMSW {
pub dwCallback: usize,
pub hWnd: super::WindowsAndMessaging::HWND,
pub nCmdShow: u32,
pub lpstrText: super::SystemServices::PWSTR,
}
impl MCI_OVLY_WINDOW_PARMSW {}
unsafe impl ::windows::Abi for MCI_OVLY_WINDOW_PARMSW {
type Abi = Self;
}
pub const MCI_OVLY_WINDOW_STATE: i32 = 262144i32;
pub const MCI_OVLY_WINDOW_TEXT: i32 = 524288i32;
pub const MCI_PASTE: u32 = 2131u32;
pub const MCI_PAUSE: u32 = 2057u32;
pub const MCI_PLAY: u32 = 2054u32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_PLAY_PARMS {
pub dwCallback: usize,
pub dwFrom: u32,
pub dwTo: u32,
}
impl MCI_PLAY_PARMS {}
unsafe impl ::windows::Abi for MCI_PLAY_PARMS {
type Abi = Self;
}
pub const MCI_PUT: u32 = 2114u32;
pub const MCI_REALIZE: u32 = 2112u32;
pub const MCI_RECORD: u32 = 2063u32;
pub const MCI_RECORD_INSERT: i32 = 256i32;
pub const MCI_RECORD_OVERWRITE: i32 = 512i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_RECORD_PARMS {
pub dwCallback: usize,
pub dwFrom: u32,
pub dwTo: u32,
}
impl MCI_RECORD_PARMS {}
unsafe impl ::windows::Abi for MCI_RECORD_PARMS {
type Abi = Self;
}
pub const MCI_RESUME: u32 = 2133u32;
pub const MCI_SAVE: u32 = 2067u32;
pub const MCI_SAVE_FILE: i32 = 256i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_SAVE_PARMSA {
pub dwCallback: usize,
pub lpfilename: super::SystemServices::PSTR,
}
impl MCI_SAVE_PARMSA {}
unsafe impl ::windows::Abi for MCI_SAVE_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_SAVE_PARMSW {
pub dwCallback: usize,
pub lpfilename: super::SystemServices::PWSTR,
}
impl MCI_SAVE_PARMSW {}
unsafe impl ::windows::Abi for MCI_SAVE_PARMSW {
type Abi = Self;
}
pub const MCI_SEEK: u32 = 2055u32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_SEEK_PARMS {
pub dwCallback: usize,
pub dwTo: u32,
}
impl MCI_SEEK_PARMS {}
unsafe impl ::windows::Abi for MCI_SEEK_PARMS {
type Abi = Self;
}
pub const MCI_SEEK_TO_END: i32 = 512i32;
pub const MCI_SEEK_TO_START: i32 = 256i32;
pub const MCI_SEQ_FILE: u32 = 16386u32;
pub const MCI_SEQ_FORMAT_SONGPTR: u32 = 16385u32;
pub const MCI_SEQ_MAPPER: u32 = 65535u32;
pub const MCI_SEQ_MIDI: u32 = 16387u32;
pub const MCI_SEQ_NONE: u32 = 65533u32;
pub const MCI_SEQ_SET_MASTER: i32 = 524288i32;
pub const MCI_SEQ_SET_OFFSET: i32 = 16777216i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_SEQ_SET_PARMS {
pub dwCallback: usize,
pub dwTimeFormat: u32,
pub dwAudio: u32,
pub dwTempo: u32,
pub dwPort: u32,
pub dwSlave: u32,
pub dwMaster: u32,
pub dwOffset: u32,
}
impl MCI_SEQ_SET_PARMS {}
unsafe impl ::windows::Abi for MCI_SEQ_SET_PARMS {
type Abi = Self;
}
pub const MCI_SEQ_SET_PORT: i32 = 131072i32;
pub const MCI_SEQ_SET_SLAVE: i32 = 262144i32;
pub const MCI_SEQ_SET_TEMPO: i32 = 65536i32;
pub const MCI_SEQ_SMPTE: u32 = 16388u32;
pub const MCI_SEQ_STATUS_COPYRIGHT: i32 = 16396i32;
pub const MCI_SEQ_STATUS_DIVTYPE: i32 = 16394i32;
pub const MCI_SEQ_STATUS_MASTER: i32 = 16392i32;
pub const MCI_SEQ_STATUS_NAME: i32 = 16395i32;
pub const MCI_SEQ_STATUS_OFFSET: i32 = 16393i32;
pub const MCI_SEQ_STATUS_PORT: i32 = 16387i32;
pub const MCI_SEQ_STATUS_SLAVE: i32 = 16391i32;
pub const MCI_SEQ_STATUS_TEMPO: i32 = 16386i32;
pub const MCI_SET: u32 = 2061u32;
pub const MCI_SET_AUDIO: i32 = 2048i32;
pub const MCI_SET_AUDIO_ALL: i32 = 0i32;
pub const MCI_SET_AUDIO_LEFT: i32 = 1i32;
pub const MCI_SET_AUDIO_RIGHT: i32 = 2i32;
pub const MCI_SET_DOOR_CLOSED: i32 = 512i32;
pub const MCI_SET_DOOR_OPEN: i32 = 256i32;
pub const MCI_SET_OFF: i32 = 16384i32;
pub const MCI_SET_ON: i32 = 8192i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_SET_PARMS {
pub dwCallback: usize,
pub dwTimeFormat: u32,
pub dwAudio: u32,
}
impl MCI_SET_PARMS {}
unsafe impl ::windows::Abi for MCI_SET_PARMS {
type Abi = Self;
}
pub const MCI_SET_TIME_FORMAT: i32 = 1024i32;
pub const MCI_SET_VIDEO: i32 = 4096i32;
pub const MCI_SPIN: u32 = 2060u32;
pub const MCI_STATUS: u32 = 2068u32;
pub const MCI_STATUS_CURRENT_TRACK: i32 = 8i32;
pub const MCI_STATUS_ITEM: i32 = 256i32;
pub const MCI_STATUS_LENGTH: i32 = 1i32;
pub const MCI_STATUS_MEDIA_PRESENT: i32 = 5i32;
pub const MCI_STATUS_MODE: i32 = 4i32;
pub const MCI_STATUS_NUMBER_OF_TRACKS: i32 = 3i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_STATUS_PARMS {
pub dwCallback: usize,
pub dwReturn: usize,
pub dwItem: u32,
pub dwTrack: u32,
}
impl MCI_STATUS_PARMS {}
unsafe impl ::windows::Abi for MCI_STATUS_PARMS {
type Abi = Self;
}
pub const MCI_STATUS_POSITION: i32 = 2i32;
pub const MCI_STATUS_READY: i32 = 7i32;
pub const MCI_STATUS_START: i32 = 512i32;
pub const MCI_STATUS_TIME_FORMAT: i32 = 6i32;
pub const MCI_STEP: u32 = 2062u32;
pub const MCI_STOP: u32 = 2056u32;
pub const MCI_SYSINFO: u32 = 2064u32;
pub const MCI_SYSINFO_INSTALLNAME: i32 = 2048i32;
pub const MCI_SYSINFO_NAME: i32 = 1024i32;
pub const MCI_SYSINFO_OPEN: i32 = 512i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_SYSINFO_PARMSA {
pub dwCallback: usize,
pub lpstrReturn: super::SystemServices::PSTR,
pub dwRetSize: u32,
pub dwNumber: u32,
pub wDeviceType: u32,
}
impl MCI_SYSINFO_PARMSA {}
unsafe impl ::windows::Abi for MCI_SYSINFO_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_SYSINFO_PARMSW {
pub dwCallback: usize,
pub lpstrReturn: super::SystemServices::PWSTR,
pub dwRetSize: u32,
pub dwNumber: u32,
pub wDeviceType: u32,
}
impl MCI_SYSINFO_PARMSW {}
unsafe impl ::windows::Abi for MCI_SYSINFO_PARMSW {
type Abi = Self;
}
pub const MCI_SYSINFO_QUANTITY: i32 = 256i32;
pub const MCI_TO: i32 = 8i32;
pub const MCI_TRACK: i32 = 16i32;
pub const MCI_UNFREEZE: u32 = 2117u32;
pub const MCI_UPDATE: u32 = 2132u32;
pub const MCI_USER_MESSAGES: u32 = 3072u32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_VD_ESCAPE_PARMSA {
pub dwCallback: usize,
pub lpstrCommand: super::SystemServices::PSTR,
}
impl MCI_VD_ESCAPE_PARMSA {}
unsafe impl ::windows::Abi for MCI_VD_ESCAPE_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_VD_ESCAPE_PARMSW {
pub dwCallback: usize,
pub lpstrCommand: super::SystemServices::PWSTR,
}
impl MCI_VD_ESCAPE_PARMSW {}
unsafe impl ::windows::Abi for MCI_VD_ESCAPE_PARMSW {
type Abi = Self;
}
pub const MCI_VD_ESCAPE_STRING: i32 = 256i32;
pub const MCI_VD_FORMAT_TRACK: u32 = 16385u32;
pub const MCI_VD_GETDEVCAPS_CAN_REVERSE: i32 = 16386i32;
pub const MCI_VD_GETDEVCAPS_CAV: i32 = 131072i32;
pub const MCI_VD_GETDEVCAPS_CLV: i32 = 65536i32;
pub const MCI_VD_GETDEVCAPS_FAST_RATE: i32 = 16387i32;
pub const MCI_VD_GETDEVCAPS_NORMAL_RATE: i32 = 16389i32;
pub const MCI_VD_GETDEVCAPS_SLOW_RATE: i32 = 16388i32;
pub const MCI_VD_MEDIA_CAV: u32 = 1027u32;
pub const MCI_VD_MEDIA_CLV: u32 = 1026u32;
pub const MCI_VD_MEDIA_OTHER: u32 = 1028u32;
pub const MCI_VD_MODE_PARK: u32 = 1025u32;
pub const MCI_VD_PLAY_FAST: i32 = 131072i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_VD_PLAY_PARMS {
pub dwCallback: usize,
pub dwFrom: u32,
pub dwTo: u32,
pub dwSpeed: u32,
}
impl MCI_VD_PLAY_PARMS {}
unsafe impl ::windows::Abi for MCI_VD_PLAY_PARMS {
type Abi = Self;
}
pub const MCI_VD_PLAY_REVERSE: i32 = 65536i32;
pub const MCI_VD_PLAY_SCAN: i32 = 524288i32;
pub const MCI_VD_PLAY_SLOW: i32 = 1048576i32;
pub const MCI_VD_PLAY_SPEED: i32 = 262144i32;
pub const MCI_VD_SEEK_REVERSE: i32 = 65536i32;
pub const MCI_VD_SPIN_DOWN: i32 = 131072i32;
pub const MCI_VD_SPIN_UP: i32 = 65536i32;
pub const MCI_VD_STATUS_DISC_SIZE: i32 = 16390i32;
pub const MCI_VD_STATUS_FORWARD: i32 = 16387i32;
pub const MCI_VD_STATUS_MEDIA_TYPE: i32 = 16388i32;
pub const MCI_VD_STATUS_SIDE: i32 = 16389i32;
pub const MCI_VD_STATUS_SPEED: i32 = 16386i32;
pub const MCI_VD_STEP_FRAMES: i32 = 65536i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_VD_STEP_PARMS {
pub dwCallback: usize,
pub dwFrames: u32,
}
impl MCI_VD_STEP_PARMS {}
unsafe impl ::windows::Abi for MCI_VD_STEP_PARMS {
type Abi = Self;
}
pub const MCI_VD_STEP_REVERSE: i32 = 131072i32;
pub const MCI_WAIT: i32 = 2i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_WAVE_DELETE_PARMS {
pub dwCallback: usize,
pub dwFrom: u32,
pub dwTo: u32,
}
impl MCI_WAVE_DELETE_PARMS {}
unsafe impl ::windows::Abi for MCI_WAVE_DELETE_PARMS {
type Abi = Self;
}
pub const MCI_WAVE_GETDEVCAPS_INPUTS: i32 = 16385i32;
pub const MCI_WAVE_GETDEVCAPS_OUTPUTS: i32 = 16386i32;
pub const MCI_WAVE_INPUT: i32 = 4194304i32;
pub const MCI_WAVE_MAPPER: u32 = 1153u32;
pub const MCI_WAVE_OPEN_BUFFER: i32 = 65536i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_WAVE_OPEN_PARMSA {
pub dwCallback: usize,
pub wDeviceID: u32,
pub lpstrDeviceType: super::SystemServices::PSTR,
pub lpstrElementName: super::SystemServices::PSTR,
pub lpstrAlias: super::SystemServices::PSTR,
pub dwBufferSeconds: u32,
}
impl MCI_WAVE_OPEN_PARMSA {}
unsafe impl ::windows::Abi for MCI_WAVE_OPEN_PARMSA {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_WAVE_OPEN_PARMSW {
pub dwCallback: usize,
pub wDeviceID: u32,
pub lpstrDeviceType: super::SystemServices::PWSTR,
pub lpstrElementName: super::SystemServices::PWSTR,
pub lpstrAlias: super::SystemServices::PWSTR,
pub dwBufferSeconds: u32,
}
impl MCI_WAVE_OPEN_PARMSW {}
unsafe impl ::windows::Abi for MCI_WAVE_OPEN_PARMSW {
type Abi = Self;
}
pub const MCI_WAVE_OUTPUT: i32 = 8388608i32;
pub const MCI_WAVE_PCM: u32 = 1152u32;
pub const MCI_WAVE_SET_ANYINPUT: i32 = 67108864i32;
pub const MCI_WAVE_SET_ANYOUTPUT: i32 = 134217728i32;
pub const MCI_WAVE_SET_AVGBYTESPERSEC: i32 = 524288i32;
pub const MCI_WAVE_SET_BITSPERSAMPLE: i32 = 2097152i32;
pub const MCI_WAVE_SET_BLOCKALIGN: i32 = 1048576i32;
pub const MCI_WAVE_SET_CHANNELS: i32 = 131072i32;
pub const MCI_WAVE_SET_FORMATTAG: i32 = 65536i32;
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MCI_WAVE_SET_PARMS {
pub dwCallback: usize,
pub dwTimeFormat: u32,
pub dwAudio: u32,
pub wInput: u32,
pub wOutput: u32,
pub wFormatTag: u16,
pub wReserved2: u16,
pub nChannels: u16,
pub wReserved3: u16,
pub nSamplesPerSec: u32,
pub nAvgBytesPerSec: u32,
pub nBlockAlign: u16,
pub wReserved4: u16,
pub wBitsPerSample: u16,
pub wReserved5: u16,
}
impl MCI_WAVE_SET_PARMS {}
unsafe impl ::windows::Abi for MCI_WAVE_SET_PARMS {
type Abi = Self;
}
pub const MCI_WAVE_SET_SAMPLESPERSEC: i32 = 262144i32;
pub const MCI_WAVE_STATUS_AVGBYTESPERSEC: i32 = 16388i32;
pub const MCI_WAVE_STATUS_BITSPERSAMPLE: i32 = 16390i32;
pub const MCI_WAVE_STATUS_BLOCKALIGN: i32 = 16389i32;
pub const MCI_WAVE_STATUS_CHANNELS: i32 = 16386i32;
pub const MCI_WAVE_STATUS_FORMATTAG: i32 = 16385i32;
pub const MCI_WAVE_STATUS_LEVEL: i32 = 16391i32;
pub const MCI_WAVE_STATUS_SAMPLESPERSEC: i32 = 16387i32;
pub const MCI_WHERE: u32 = 2115u32;
pub const MCI_WINDOW: u32 = 2113u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union MF_MDL_SHARED_PAYLOAD_KEY {
pub combined: MF_MDL_SHARED_PAYLOAD_KEY_0,
pub GMDLHandle: ::windows::Guid,
}
impl MF_MDL_SHARED_PAYLOAD_KEY {}
unsafe impl ::windows::Abi for MF_MDL_SHARED_PAYLOAD_KEY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct MF_MDL_SHARED_PAYLOAD_KEY_0 {
pub pHandle: u32,
pub fHandle: u32,
pub uPayload: u64,
}
impl MF_MDL_SHARED_PAYLOAD_KEY_0 {}
impl ::std::default::Default for MF_MDL_SHARED_PAYLOAD_KEY_0 {
fn default() -> Self {
Self {
pHandle: 0,
fHandle: 0,
uPayload: 0,
}
}
}
impl ::std::fmt::Debug for MF_MDL_SHARED_PAYLOAD_KEY_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_combined_e__Struct")
.field("pHandle", &format_args!("{:?}", self.pHandle))
.field("fHandle", &format_args!("{:?}", self.fHandle))
.field("uPayload", &format_args!("{:?}", self.uPayload))
.finish()
}
}
impl ::std::cmp::PartialEq for MF_MDL_SHARED_PAYLOAD_KEY_0 {
fn eq(&self, other: &Self) -> bool {
self.pHandle == other.pHandle
&& self.fHandle == other.fHandle
&& self.uPayload == other.uPayload
}
}
impl ::std::cmp::Eq for MF_MDL_SHARED_PAYLOAD_KEY_0 {}
unsafe impl ::windows::Abi for MF_MDL_SHARED_PAYLOAD_KEY_0 {
type Abi = Self;
}
pub const MIN_DEV_VER_FOR_FLAGS: u32 = 272u32;
pub const MIN_DEV_VER_FOR_QI: u32 = 256u32;
pub const MMDeviceEnumerator: ::windows::Guid = ::windows::Guid::from_values(
3168666517,
58671,
18044,
[142, 61, 196, 87, 146, 145, 105, 46],
);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct NABTSFEC_BUFFER {
pub dataSize: u32,
pub groupID: u16,
pub Reserved: u16,
pub data: [u8; 448],
}
impl NABTSFEC_BUFFER {}
impl ::std::default::Default for NABTSFEC_BUFFER {
fn default() -> Self {
Self {
dataSize: 0,
groupID: 0,
Reserved: 0,
data: [0; 448],
}
}
}
impl ::std::fmt::Debug for NABTSFEC_BUFFER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("NABTSFEC_BUFFER")
.field("dataSize", &format_args!("{:?}", self.dataSize))
.field("groupID", &format_args!("{:?}", self.groupID))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.field("data", &format_args!("{:?}", self.data))
.finish()
}
}
impl ::std::cmp::PartialEq for NABTSFEC_BUFFER {
fn eq(&self, other: &Self) -> bool {
self.dataSize == other.dataSize
&& self.groupID == other.groupID
&& self.Reserved == other.Reserved
&& self.data == other.data
}
}
impl ::std::cmp::Eq for NABTSFEC_BUFFER {}
unsafe impl ::windows::Abi for NABTSFEC_BUFFER {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct NABTS_BUFFER_LINE {
pub Confidence: u8,
pub Bytes: [u8; 36],
}
impl NABTS_BUFFER_LINE {}
impl ::std::default::Default for NABTS_BUFFER_LINE {
fn default() -> Self {
Self {
Confidence: 0,
Bytes: [0; 36],
}
}
}
impl ::std::fmt::Debug for NABTS_BUFFER_LINE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("NABTS_BUFFER_LINE")
.field("Confidence", &format_args!("{:?}", self.Confidence))
.field("Bytes", &format_args!("{:?}", self.Bytes))
.finish()
}
}
impl ::std::cmp::PartialEq for NABTS_BUFFER_LINE {
fn eq(&self, other: &Self) -> bool {
self.Confidence == other.Confidence && self.Bytes == other.Bytes
}
}
impl ::std::cmp::Eq for NABTS_BUFFER_LINE {}
unsafe impl ::windows::Abi for NABTS_BUFFER_LINE {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct NABTS_BUFFER {
pub ScanlinesRequested: VBICODECFILTERING_SCANLINES,
pub PictureNumber: i64,
pub NabtsLines: [NABTS_BUFFER_LINE; 11],
}
impl NABTS_BUFFER {}
unsafe impl ::windows::Abi for NABTS_BUFFER {
type Abi = Self;
}
pub const NABTS_BUFFER_PICTURENUMBER_SUPPORT: u32 = 1u32;
pub const NABTS_BYTES_PER_LINE: u32 = 36u32;
pub const NABTS_LINES_PER_BUNDLE: u32 = 16u32;
pub const NABTS_PAYLOAD_PER_LINE: u32 = 28u32;
pub const NANOSECONDS: u32 = 10000000u32;
pub const PINNAME_DISPLAYPORT_OUT: ::windows::Guid = ::windows::Guid::from_values(
570143529,
6730,
18650,
[160, 118, 35, 24, 163, 197, 155, 38],
);
pub const PINNAME_HDMI_OUT: ::windows::Guid = ::windows::Guid::from_values(
947649539,
59375,
18689,
[134, 224, 53, 183, 195, 43, 0, 239],
);
pub const PINNAME_IMAGE: ::windows::Guid = ::windows::Guid::from_values(
950062488,
54427,
19688,
[180, 138, 52, 70, 103, 161, 120, 48],
);
pub const PINNAME_SPDIF_IN: ::windows::Guid = ::windows::Guid::from_values(
366776357,
8877,
16819,
[136, 117, 244, 206, 176, 41, 158, 32],
);
pub const PINNAME_SPDIF_OUT: ::windows::Guid = ::windows::Guid::from_values(
975586433,
58668,
19330,
[142, 122, 200, 226, 249, 29, 195, 128],
);
pub const PINNAME_VIDEO_ANALOGVIDEOIN: ::windows::Guid = ::windows::Guid::from_values(
4218176131,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_CAPTURE: ::windows::Guid = ::windows::Guid::from_values(
4218176129,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_CC: ::windows::Guid = ::windows::Guid::from_values(
4218176137,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_CC_CAPTURE: ::windows::Guid = ::windows::Guid::from_values(
447578209,
301,
4562,
[180, 177, 0, 160, 209, 2, 207, 190],
);
pub const PINNAME_VIDEO_EDS: ::windows::Guid = ::windows::Guid::from_values(
4218176135,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_NABTS: ::windows::Guid = ::windows::Guid::from_values(
4218176134,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_NABTS_CAPTURE: ::windows::Guid = ::windows::Guid::from_values(
695219808,
18826,
4562,
[180, 177, 0, 160, 209, 2, 207, 190],
);
pub const PINNAME_VIDEO_PREVIEW: ::windows::Guid = ::windows::Guid::from_values(
4218176130,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_STILL: ::windows::Guid = ::windows::Guid::from_values(
4218176138,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_TELETEXT: ::windows::Guid = ::windows::Guid::from_values(
4218176136,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_TIMECODE: ::windows::Guid = ::windows::Guid::from_values(
4218176139,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_VBI: ::windows::Guid = ::windows::Guid::from_values(
4218176132,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_VIDEOPORT: ::windows::Guid = ::windows::Guid::from_values(
4218176133,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PINNAME_VIDEO_VIDEOPORT_VBI: ::windows::Guid = ::windows::Guid::from_values(
4218176140,
851,
4561,
[144, 95, 0, 0, 192, 204, 22, 186],
);
pub const PROPSETID_ALLOCATOR_CONTROL: ::windows::Guid = ::windows::Guid::from_values(
1394022752,
5262,
4562,
[153, 121, 0, 0, 192, 204, 22, 186],
);
pub const PROPSETID_EXT_DEVICE: ::windows::Guid = ::windows::Guid::from_values(
3044215440,
6700,
4559,
[140, 35, 0, 170, 0, 107, 104, 20],
);
pub const PROPSETID_EXT_TRANSPORT: ::windows::Guid = ::windows::Guid::from_values(
2688341488,
12357,
4559,
[140, 68, 0, 170, 0, 107, 104, 20],
);
pub const PROPSETID_TIMECODE_READER: ::windows::Guid = ::windows::Guid::from_values(
2605280481,
33051,
4559,
[140, 119, 0, 170, 0, 107, 104, 20],
);
pub const PROPSETID_TUNER: ::windows::Guid = ::windows::Guid::from_values(
1781401093,
10468,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const PROPSETID_VIDCAP_CAMERACONTROL: ::windows::Guid =
::windows::Guid::from_values(
3336647536,
12460,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const PROPSETID_VIDCAP_CAMERACONTROL_FLASH: ::windows::Guid =
::windows::Guid::from_values(
2019462985,
25506,
16708,
[171, 112, 255, 178, 120, 250, 38, 206],
);
pub const PROPSETID_VIDCAP_CAMERACONTROL_IMAGE_PIN_CAPABILITY: ::windows::Guid =
::windows::Guid::from_values(
2638052287,
23661,
16696,
[187, 0, 88, 78, 221, 32, 247, 197],
);
pub const PROPSETID_VIDCAP_CAMERACONTROL_REGION_OF_INTEREST: ::windows::Guid =
::windows::Guid::from_values(
2635256216,
63596,
20461,
[176, 35, 93, 135, 101, 61, 167, 147],
);
pub const PROPSETID_VIDCAP_CAMERACONTROL_VIDEO_STABILIZATION: ::windows::Guid =
::windows::Guid::from_values(
1133923283,
30486,
16462,
[139, 225, 210, 153, 178, 14, 80, 253],
);
pub const PROPSETID_VIDCAP_CROSSBAR: ::windows::Guid = ::windows::Guid::from_values(
1781401152,
10468,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const PROPSETID_VIDCAP_DROPPEDFRAMES: ::windows::Guid =
::windows::Guid::from_values(
3336647492,
12460,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const PROPSETID_VIDCAP_SELECTOR: ::windows::Guid = ::windows::Guid::from_values(
448638666,
26806,
20355,
[147, 113, 180, 19, 144, 124, 123, 159],
);
pub const PROPSETID_VIDCAP_TVAUDIO: ::windows::Guid = ::windows::Guid::from_values(
1781401168,
10468,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const PROPSETID_VIDCAP_VIDEOCOMPRESSION: ::windows::Guid =
::windows::Guid::from_values(
3336647491,
12460,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const PROPSETID_VIDCAP_VIDEOCONTROL: ::windows::Guid = ::windows::Guid::from_values(
1781401200,
10468,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const PROPSETID_VIDCAP_VIDEODECODER: ::windows::Guid = ::windows::Guid::from_values(
3336647504,
12460,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const PROPSETID_VIDCAP_VIDEOENCODER: ::windows::Guid = ::windows::Guid::from_values(
1781401104,
10468,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
pub const PROPSETID_VIDCAP_VIDEOPROCAMP: ::windows::Guid = ::windows::Guid::from_values(
3336647520,
12460,
4560,
[161, 140, 0, 160, 201, 17, 137, 86],
);
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct PartType(pub i32);
impl PartType {
pub const Connector: Self = Self(0i32);
pub const Subunit: Self = Self(1i32);
}
impl ::std::convert::From<i32> for PartType {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for PartType {
type Abi = Self;
}
pub const RT_RCDATA: super::SystemServices::PWSTR =
super::SystemServices::PWSTR(10i32 as _);
pub const RT_STRING: super::SystemServices::PWSTR =
super::SystemServices::PWSTR(6i32 as _);
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SECURE_BUFFER_INFO {
pub guidBufferIdentifier: ::windows::Guid,
pub cbBufferSize: u32,
pub cbCaptured: u32,
pub ullReserved: [u64; 16],
}
impl SECURE_BUFFER_INFO {}
impl ::std::default::Default for SECURE_BUFFER_INFO {
fn default() -> Self {
Self {
guidBufferIdentifier: ::std::default::Default::default(),
cbBufferSize: 0,
cbCaptured: 0,
ullReserved: [0; 16],
}
}
}
impl ::std::fmt::Debug for SECURE_BUFFER_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("SECURE_BUFFER_INFO")
.field(
"guidBufferIdentifier",
&format_args!("{:?}", self.guidBufferIdentifier),
)
.field("cbBufferSize", &format_args!("{:?}", self.cbBufferSize))
.field("cbCaptured", &format_args!("{:?}", self.cbCaptured))
.field("ullReserved", &format_args!("{:?}", self.ullReserved))
.finish()
}
}
impl ::std::cmp::PartialEq for SECURE_BUFFER_INFO {
fn eq(&self, other: &Self) -> bool {
self.guidBufferIdentifier == other.guidBufferIdentifier
&& self.cbBufferSize == other.cbBufferSize
&& self.cbCaptured == other.cbCaptured
&& self.ullReserved == other.ullReserved
}
}
impl ::std::cmp::Eq for SECURE_BUFFER_INFO {}
unsafe impl ::windows::Abi for SECURE_BUFFER_INFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SOUNDDETECTOR_PATTERNHEADER {
pub Size: u32,
pub PatternType: ::windows::Guid,
}
impl SOUNDDETECTOR_PATTERNHEADER {}
impl ::std::default::Default for SOUNDDETECTOR_PATTERNHEADER {
fn default() -> Self {
Self {
Size: 0,
PatternType: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for SOUNDDETECTOR_PATTERNHEADER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("SOUNDDETECTOR_PATTERNHEADER")
.field("Size", &format_args!("{:?}", self.Size))
.field("PatternType", &format_args!("{:?}", self.PatternType))
.finish()
}
}
impl ::std::cmp::PartialEq for SOUNDDETECTOR_PATTERNHEADER {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size && self.PatternType == other.PatternType
}
}
impl ::std::cmp::Eq for SOUNDDETECTOR_PATTERNHEADER {}
unsafe impl ::windows::Abi for SOUNDDETECTOR_PATTERNHEADER {
type Abi = Self;
}
pub const SPATIAL_AUDIO_STANDARD_COMMANDS_START: u32 = 200u32;
pub const SPEAKER_ALL: u32 = 2147483648u32;
pub const SPEAKER_BACK_CENTER: u32 = 256u32;
pub const SPEAKER_BACK_LEFT: u32 = 16u32;
pub const SPEAKER_BACK_RIGHT: u32 = 32u32;
pub const SPEAKER_FRONT_CENTER: u32 = 4u32;
pub const SPEAKER_FRONT_LEFT: u32 = 1u32;
pub const SPEAKER_FRONT_LEFT_OF_CENTER: u32 = 64u32;
pub const SPEAKER_FRONT_RIGHT: u32 = 2u32;
pub const SPEAKER_FRONT_RIGHT_OF_CENTER: u32 = 128u32;
pub const SPEAKER_LOW_FREQUENCY: u32 = 8u32;
pub const SPEAKER_RESERVED: u32 = 2147221504u32;
pub const SPEAKER_SIDE_LEFT: u32 = 512u32;
pub const SPEAKER_SIDE_RIGHT: u32 = 1024u32;
pub const SPEAKER_TOP_BACK_CENTER: u32 = 65536u32;
pub const SPEAKER_TOP_BACK_LEFT: u32 = 32768u32;
pub const SPEAKER_TOP_BACK_RIGHT: u32 = 131072u32;
pub const SPEAKER_TOP_CENTER: u32 = 2048u32;
pub const SPEAKER_TOP_FRONT_CENTER: u32 = 8192u32;
pub const SPEAKER_TOP_FRONT_LEFT: u32 = 4096u32;
pub const SPEAKER_TOP_FRONT_RIGHT: u32 = 16384u32;
pub const SYSAUDIO_FLAGS_CLEAR_PREFERRED: u32 = 2u32;
pub const SYSAUDIO_FLAGS_DONT_COMBINE_PINS: u32 = 1u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SpatialAudioClientActivationParams {
pub tracingContextId: ::windows::Guid,
pub appId: ::windows::Guid,
pub majorVersion: i32,
pub minorVersion1: i32,
pub minorVersion2: i32,
pub minorVersion3: i32,
}
impl SpatialAudioClientActivationParams {}
impl ::std::default::Default for SpatialAudioClientActivationParams {
fn default() -> Self {
Self {
tracingContextId: ::std::default::Default::default(),
appId: ::std::default::Default::default(),
majorVersion: 0,
minorVersion1: 0,
minorVersion2: 0,
minorVersion3: 0,
}
}
}
impl ::std::fmt::Debug for SpatialAudioClientActivationParams {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("SpatialAudioClientActivationParams")
.field(
"tracingContextId",
&format_args!("{:?}", self.tracingContextId),
)
.field("appId", &format_args!("{:?}", self.appId))
.field("majorVersion", &format_args!("{:?}", self.majorVersion))
.field("minorVersion1", &format_args!("{:?}", self.minorVersion1))
.field("minorVersion2", &format_args!("{:?}", self.minorVersion2))
.field("minorVersion3", &format_args!("{:?}", self.minorVersion3))
.finish()
}
}
impl ::std::cmp::PartialEq for SpatialAudioClientActivationParams {
fn eq(&self, other: &Self) -> bool {
self.tracingContextId == other.tracingContextId
&& self.appId == other.appId
&& self.majorVersion == other.majorVersion
&& self.minorVersion1 == other.minorVersion1
&& self.minorVersion2 == other.minorVersion2
&& self.minorVersion3 == other.minorVersion3
}
}
impl ::std::cmp::Eq for SpatialAudioClientActivationParams {}
unsafe impl ::windows::Abi for SpatialAudioClientActivationParams {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct SpatialAudioHrtfDistanceDecayType(pub i32);
impl SpatialAudioHrtfDistanceDecayType {
pub const SpatialAudioHrtfDistanceDecay_NaturalDecay: Self = Self(0i32);
pub const SpatialAudioHrtfDistanceDecay_CustomDecay: Self = Self(1i32);
}
impl ::std::convert::From<i32> for SpatialAudioHrtfDistanceDecayType {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for SpatialAudioHrtfDistanceDecayType {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SpatialAudioHrtfDistanceDecay {
pub Type: SpatialAudioHrtfDistanceDecayType,
pub MaxGain: f32,
pub MinGain: f32,
pub UnityGainDistance: f32,
pub CutoffDistance: f32,
}
impl SpatialAudioHrtfDistanceDecay {}
unsafe impl ::windows::Abi for SpatialAudioHrtfDistanceDecay {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct SpatialAudioHrtfDirectivityType(pub i32);
impl SpatialAudioHrtfDirectivityType {
pub const SpatialAudioHrtfDirectivity_OmniDirectional: Self = Self(0i32);
pub const SpatialAudioHrtfDirectivity_Cardioid: Self = Self(1i32);
pub const SpatialAudioHrtfDirectivity_Cone: Self = Self(2i32);
}
impl ::std::convert::From<i32> for SpatialAudioHrtfDirectivityType {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for SpatialAudioHrtfDirectivityType {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SpatialAudioHrtfDirectivity {
pub Type: SpatialAudioHrtfDirectivityType,
pub Scaling: f32,
}
impl SpatialAudioHrtfDirectivity {}
unsafe impl ::windows::Abi for SpatialAudioHrtfDirectivity {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SpatialAudioHrtfDirectivityCone {
pub directivity: SpatialAudioHrtfDirectivity,
pub InnerAngle: f32,
pub OuterAngle: f32,
}
impl SpatialAudioHrtfDirectivityCone {}
unsafe impl ::windows::Abi for SpatialAudioHrtfDirectivityCone {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SpatialAudioHrtfDirectivityCardioid {
pub directivity: SpatialAudioHrtfDirectivity,
pub Order: f32,
}
impl SpatialAudioHrtfDirectivityCardioid {}
unsafe impl ::windows::Abi for SpatialAudioHrtfDirectivityCardioid {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union SpatialAudioHrtfDirectivityUnion {
pub Cone: SpatialAudioHrtfDirectivityCone,
pub Cardiod: SpatialAudioHrtfDirectivityCardioid,
pub Omni: SpatialAudioHrtfDirectivity,
}
impl SpatialAudioHrtfDirectivityUnion {}
unsafe impl ::windows::Abi for SpatialAudioHrtfDirectivityUnion {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct SpatialAudioHrtfEnvironmentType(pub i32);
impl SpatialAudioHrtfEnvironmentType {
pub const SpatialAudioHrtfEnvironment_Small: Self = Self(0i32);
pub const SpatialAudioHrtfEnvironment_Medium: Self = Self(1i32);
pub const SpatialAudioHrtfEnvironment_Large: Self = Self(2i32);
pub const SpatialAudioHrtfEnvironment_Outdoors: Self = Self(3i32);
pub const SpatialAudioHrtfEnvironment_Average: Self = Self(4i32);
}
impl ::std::convert::From<i32> for SpatialAudioHrtfEnvironmentType {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for SpatialAudioHrtfEnvironmentType {
type Abi = Self;
}
#[repr(C, packed(1))]
pub struct SpatialAudioHrtfActivationParams {
pub ObjectFormat: *mut super::Multimedia::WAVEFORMATEX,
pub StaticObjectTypeMask: AudioObjectType,
pub MinDynamicObjectCount: u32,
pub MaxDynamicObjectCount: u32,
pub Category: AUDIO_STREAM_CATEGORY,
pub EventHandle: super::SystemServices::HANDLE,
pub NotifyObject: ::std::option::Option<ISpatialAudioObjectRenderStreamNotify>,
pub DistanceDecay: *mut SpatialAudioHrtfDistanceDecay,
pub Directivity: *mut SpatialAudioHrtfDirectivityUnion,
pub Environment: *mut SpatialAudioHrtfEnvironmentType,
pub Orientation: *mut f32,
}
impl SpatialAudioHrtfActivationParams {}
#[repr(C, packed(1))]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SpatialAudioHrtfActivationParams_abi {
pub ObjectFormat: *mut super::Multimedia::WAVEFORMATEX,
pub StaticObjectTypeMask: AudioObjectType,
pub MinDynamicObjectCount: u32,
pub MaxDynamicObjectCount: u32,
pub Category: AUDIO_STREAM_CATEGORY,
pub EventHandle: super::SystemServices::HANDLE,
pub NotifyObject: ::windows::RawPtr,
pub DistanceDecay: *mut SpatialAudioHrtfDistanceDecay,
pub Directivity: *mut SpatialAudioHrtfDirectivityUnion,
pub Environment: *mut SpatialAudioHrtfEnvironmentType,
pub Orientation: *mut f32,
}
unsafe impl ::windows::Abi for SpatialAudioHrtfActivationParams {
type Abi = SpatialAudioHrtfActivationParams_abi;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct SpatialAudioMetadataCopyMode(pub i32);
impl SpatialAudioMetadataCopyMode {
pub const SpatialAudioMetadataCopy_Overwrite: Self = Self(0i32);
pub const SpatialAudioMetadataCopy_Append: Self = Self(1i32);
pub const SpatialAudioMetadataCopy_AppendMergeWithLast: Self = Self(2i32);
pub const SpatialAudioMetadataCopy_AppendMergeWithFirst: Self = Self(3i32);
}
impl ::std::convert::From<i32> for SpatialAudioMetadataCopyMode {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for SpatialAudioMetadataCopyMode {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SpatialAudioMetadataItemsInfo {
pub FrameCount: u16,
pub ItemCount: u16,
pub MaxItemCount: u16,
pub MaxValueBufferLength: u32,
}
impl SpatialAudioMetadataItemsInfo {}
unsafe impl ::windows::Abi for SpatialAudioMetadataItemsInfo {
type Abi = Self;
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct SpatialAudioMetadataWriterOverflowMode(pub i32);
impl SpatialAudioMetadataWriterOverflowMode {
pub const SpatialAudioMetadataWriterOverflow_Fail: Self = Self(0i32);
pub const SpatialAudioMetadataWriterOverflow_MergeWithNew: Self = Self(1i32);
pub const SpatialAudioMetadataWriterOverflow_MergeWithLast: Self = Self(2i32);
}
impl ::std::convert::From<i32> for SpatialAudioMetadataWriterOverflowMode {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for SpatialAudioMetadataWriterOverflowMode {
type Abi = Self;
}
#[repr(C, packed(1))]
pub struct SpatialAudioObjectRenderStreamActivationParams {
pub ObjectFormat: *mut super::Multimedia::WAVEFORMATEX,
pub StaticObjectTypeMask: AudioObjectType,
pub MinDynamicObjectCount: u32,
pub MaxDynamicObjectCount: u32,
pub Category: AUDIO_STREAM_CATEGORY,
pub EventHandle: super::SystemServices::HANDLE,
pub NotifyObject: ::std::option::Option<ISpatialAudioObjectRenderStreamNotify>,
}
impl SpatialAudioObjectRenderStreamActivationParams {}
#[repr(C, packed(1))]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SpatialAudioObjectRenderStreamActivationParams_abi {
pub ObjectFormat: *mut super::Multimedia::WAVEFORMATEX,
pub StaticObjectTypeMask: AudioObjectType,
pub MinDynamicObjectCount: u32,
pub MaxDynamicObjectCount: u32,
pub Category: AUDIO_STREAM_CATEGORY,
pub EventHandle: super::SystemServices::HANDLE,
pub NotifyObject: ::windows::RawPtr,
}
unsafe impl ::windows::Abi for SpatialAudioObjectRenderStreamActivationParams {
type Abi = SpatialAudioObjectRenderStreamActivationParams_abi;
}
#[repr(C, packed(1))]
pub struct SpatialAudioObjectRenderStreamForMetadataActivationParams {
pub ObjectFormat: *mut super::Multimedia::WAVEFORMATEX,
pub StaticObjectTypeMask: AudioObjectType,
pub MinDynamicObjectCount: u32,
pub MaxDynamicObjectCount: u32,
pub Category: AUDIO_STREAM_CATEGORY,
pub EventHandle: super::SystemServices::HANDLE,
pub MetadataFormatId: ::windows::Guid,
pub MaxMetadataItemCount: u16,
pub MetadataActivationParams: *mut super::StructuredStorage::PROPVARIANT,
pub NotifyObject: ::std::option::Option<ISpatialAudioObjectRenderStreamNotify>,
}
impl SpatialAudioObjectRenderStreamForMetadataActivationParams {}
#[repr(C, packed(1))]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SpatialAudioObjectRenderStreamForMetadataActivationParams_abi {
pub ObjectFormat: *mut super::Multimedia::WAVEFORMATEX,
pub StaticObjectTypeMask: AudioObjectType,
pub MinDynamicObjectCount: u32,
pub MaxDynamicObjectCount: u32,
pub Category: AUDIO_STREAM_CATEGORY,
pub EventHandle: super::SystemServices::HANDLE,
pub MetadataFormatId: ::windows::Guid,
pub MaxMetadataItemCount: u16,
pub MetadataActivationParams: *mut super::StructuredStorage::PROPVARIANT_abi,
pub NotifyObject: ::windows::RawPtr,
}
unsafe impl ::windows::Abi for SpatialAudioObjectRenderStreamForMetadataActivationParams {
type Abi = SpatialAudioObjectRenderStreamForMetadataActivationParams_abi;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct TRANSPORTAUDIOPARMS {
pub EnableOutput: i32,
pub EnableRecord: i32,
pub EnableSelsync: i32,
pub Input: i32,
pub MonitorSource: i32,
}
impl TRANSPORTAUDIOPARMS {}
impl ::std::default::Default for TRANSPORTAUDIOPARMS {
fn default() -> Self {
Self {
EnableOutput: 0,
EnableRecord: 0,
EnableSelsync: 0,
Input: 0,
MonitorSource: 0,
}
}
}
impl ::std::fmt::Debug for TRANSPORTAUDIOPARMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("TRANSPORTAUDIOPARMS")
.field("EnableOutput", &format_args!("{:?}", self.EnableOutput))
.field("EnableRecord", &format_args!("{:?}", self.EnableRecord))
.field("EnableSelsync", &format_args!("{:?}", self.EnableSelsync))
.field("Input", &format_args!("{:?}", self.Input))
.field("MonitorSource", &format_args!("{:?}", self.MonitorSource))
.finish()
}
}
impl ::std::cmp::PartialEq for TRANSPORTAUDIOPARMS {
fn eq(&self, other: &Self) -> bool {
self.EnableOutput == other.EnableOutput
&& self.EnableRecord == other.EnableRecord
&& self.EnableSelsync == other.EnableSelsync
&& self.Input == other.Input
&& self.MonitorSource == other.MonitorSource
}
}
impl ::std::cmp::Eq for TRANSPORTAUDIOPARMS {}
unsafe impl ::windows::Abi for TRANSPORTAUDIOPARMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct TRANSPORTBASICPARMS {
pub TimeFormat: i32,
pub TimeReference: i32,
pub Superimpose: i32,
pub EndStopAction: i32,
pub RecordFormat: i32,
pub StepFrames: i32,
pub SetpField: i32,
pub Preroll: i32,
pub RecPreroll: i32,
pub Postroll: i32,
pub EditDelay: i32,
pub PlayTCDelay: i32,
pub RecTCDelay: i32,
pub EditField: i32,
pub FrameServo: i32,
pub ColorFrameServo: i32,
pub ServoRef: i32,
pub WarnGenlock: i32,
pub SetTracking: i32,
pub VolumeName: [i8; 40],
pub Ballistic: [i32; 20],
pub Speed: i32,
pub CounterFormat: i32,
pub TunerChannel: i32,
pub TunerNumber: i32,
pub TimerEvent: i32,
pub TimerStartDay: i32,
pub TimerStartTime: i32,
pub TimerStopDay: i32,
pub TimerStopTime: i32,
}
impl TRANSPORTBASICPARMS {}
impl ::std::default::Default for TRANSPORTBASICPARMS {
fn default() -> Self {
Self {
TimeFormat: 0,
TimeReference: 0,
Superimpose: 0,
EndStopAction: 0,
RecordFormat: 0,
StepFrames: 0,
SetpField: 0,
Preroll: 0,
RecPreroll: 0,
Postroll: 0,
EditDelay: 0,
PlayTCDelay: 0,
RecTCDelay: 0,
EditField: 0,
FrameServo: 0,
ColorFrameServo: 0,
ServoRef: 0,
WarnGenlock: 0,
SetTracking: 0,
VolumeName: [0; 40],
Ballistic: [0; 20],
Speed: 0,
CounterFormat: 0,
TunerChannel: 0,
TunerNumber: 0,
TimerEvent: 0,
TimerStartDay: 0,
TimerStartTime: 0,
TimerStopDay: 0,
TimerStopTime: 0,
}
}
}
impl ::std::fmt::Debug for TRANSPORTBASICPARMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("TRANSPORTBASICPARMS")
.field("TimeFormat", &format_args!("{:?}", self.TimeFormat))
.field("TimeReference", &format_args!("{:?}", self.TimeReference))
.field("Superimpose", &format_args!("{:?}", self.Superimpose))
.field("EndStopAction", &format_args!("{:?}", self.EndStopAction))
.field("RecordFormat", &format_args!("{:?}", self.RecordFormat))
.field("StepFrames", &format_args!("{:?}", self.StepFrames))
.field("SetpField", &format_args!("{:?}", self.SetpField))
.field("Preroll", &format_args!("{:?}", self.Preroll))
.field("RecPreroll", &format_args!("{:?}", self.RecPreroll))
.field("Postroll", &format_args!("{:?}", self.Postroll))
.field("EditDelay", &format_args!("{:?}", self.EditDelay))
.field("PlayTCDelay", &format_args!("{:?}", self.PlayTCDelay))
.field("RecTCDelay", &format_args!("{:?}", self.RecTCDelay))
.field("EditField", &format_args!("{:?}", self.EditField))
.field("FrameServo", &format_args!("{:?}", self.FrameServo))
.field(
"ColorFrameServo",
&format_args!("{:?}", self.ColorFrameServo),
)
.field("ServoRef", &format_args!("{:?}", self.ServoRef))
.field("WarnGenlock", &format_args!("{:?}", self.WarnGenlock))
.field("SetTracking", &format_args!("{:?}", self.SetTracking))
.field("VolumeName", &format_args!("{:?}", self.VolumeName))
.field("Ballistic", &format_args!("{:?}", self.Ballistic))
.field("Speed", &format_args!("{:?}", self.Speed))
.field("CounterFormat", &format_args!("{:?}", self.CounterFormat))
.field("TunerChannel", &format_args!("{:?}", self.TunerChannel))
.field("TunerNumber", &format_args!("{:?}", self.TunerNumber))
.field("TimerEvent", &format_args!("{:?}", self.TimerEvent))
.field("TimerStartDay", &format_args!("{:?}", self.TimerStartDay))
.field("TimerStartTime", &format_args!("{:?}", self.TimerStartTime))
.field("TimerStopDay", &format_args!("{:?}", self.TimerStopDay))
.field("TimerStopTime", &format_args!("{:?}", self.TimerStopTime))
.finish()
}
}
impl ::std::cmp::PartialEq for TRANSPORTBASICPARMS {
fn eq(&self, other: &Self) -> bool {
self.TimeFormat == other.TimeFormat
&& self.TimeReference == other.TimeReference
&& self.Superimpose == other.Superimpose
&& self.EndStopAction == other.EndStopAction
&& self.RecordFormat == other.RecordFormat
&& self.StepFrames == other.StepFrames
&& self.SetpField == other.SetpField
&& self.Preroll == other.Preroll
&& self.RecPreroll == other.RecPreroll
&& self.Postroll == other.Postroll
&& self.EditDelay == other.EditDelay
&& self.PlayTCDelay == other.PlayTCDelay
&& self.RecTCDelay == other.RecTCDelay
&& self.EditField == other.EditField
&& self.FrameServo == other.FrameServo
&& self.ColorFrameServo == other.ColorFrameServo
&& self.ServoRef == other.ServoRef
&& self.WarnGenlock == other.WarnGenlock
&& self.SetTracking == other.SetTracking
&& self.VolumeName == other.VolumeName
&& self.Ballistic == other.Ballistic
&& self.Speed == other.Speed
&& self.CounterFormat == other.CounterFormat
&& self.TunerChannel == other.TunerChannel
&& self.TunerNumber == other.TunerNumber
&& self.TimerEvent == other.TimerEvent
&& self.TimerStartDay == other.TimerStartDay
&& self.TimerStartTime == other.TimerStartTime
&& self.TimerStopDay == other.TimerStopDay
&& self.TimerStopTime == other.TimerStopTime
}
}
impl ::std::cmp::Eq for TRANSPORTBASICPARMS {}
unsafe impl ::windows::Abi for TRANSPORTBASICPARMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct TRANSPORTSTATUS {
pub Mode: i32,
pub LastError: i32,
pub RecordInhibit: i32,
pub ServoLock: i32,
pub MediaPresent: i32,
pub MediaLength: i32,
pub MediaSize: i32,
pub MediaTrackCount: i32,
pub MediaTrackLength: i32,
pub MediaTrackSide: i32,
pub MediaType: i32,
pub LinkMode: i32,
pub NotifyOn: i32,
}
impl TRANSPORTSTATUS {}
impl ::std::default::Default for TRANSPORTSTATUS {
fn default() -> Self {
Self {
Mode: 0,
LastError: 0,
RecordInhibit: 0,
ServoLock: 0,
MediaPresent: 0,
MediaLength: 0,
MediaSize: 0,
MediaTrackCount: 0,
MediaTrackLength: 0,
MediaTrackSide: 0,
MediaType: 0,
LinkMode: 0,
NotifyOn: 0,
}
}
}
impl ::std::fmt::Debug for TRANSPORTSTATUS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("TRANSPORTSTATUS")
.field("Mode", &format_args!("{:?}", self.Mode))
.field("LastError", &format_args!("{:?}", self.LastError))
.field("RecordInhibit", &format_args!("{:?}", self.RecordInhibit))
.field("ServoLock", &format_args!("{:?}", self.ServoLock))
.field("MediaPresent", &format_args!("{:?}", self.MediaPresent))
.field("MediaLength", &format_args!("{:?}", self.MediaLength))
.field("MediaSize", &format_args!("{:?}", self.MediaSize))
.field(
"MediaTrackCount",
&format_args!("{:?}", self.MediaTrackCount),
)
.field(
"MediaTrackLength",
&format_args!("{:?}", self.MediaTrackLength),
)
.field("MediaTrackSide", &format_args!("{:?}", self.MediaTrackSide))
.field("MediaType", &format_args!("{:?}", self.MediaType))
.field("LinkMode", &format_args!("{:?}", self.LinkMode))
.field("NotifyOn", &format_args!("{:?}", self.NotifyOn))
.finish()
}
}
impl ::std::cmp::PartialEq for TRANSPORTSTATUS {
fn eq(&self, other: &Self) -> bool {
self.Mode == other.Mode
&& self.LastError == other.LastError
&& self.RecordInhibit == other.RecordInhibit
&& self.ServoLock == other.ServoLock
&& self.MediaPresent == other.MediaPresent
&& self.MediaLength == other.MediaLength
&& self.MediaSize == other.MediaSize
&& self.MediaTrackCount == other.MediaTrackCount
&& self.MediaTrackLength == other.MediaTrackLength
&& self.MediaTrackSide == other.MediaTrackSide
&& self.MediaType == other.MediaType
&& self.LinkMode == other.LinkMode
&& self.NotifyOn == other.NotifyOn
}
}
impl ::std::cmp::Eq for TRANSPORTSTATUS {}
unsafe impl ::windows::Abi for TRANSPORTSTATUS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct TRANSPORTVIDEOPARMS {
pub OutputMode: i32,
pub Input: i32,
}
impl TRANSPORTVIDEOPARMS {}
impl ::std::default::Default for TRANSPORTVIDEOPARMS {
fn default() -> Self {
Self {
OutputMode: 0,
Input: 0,
}
}
}
impl ::std::fmt::Debug for TRANSPORTVIDEOPARMS {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("TRANSPORTVIDEOPARMS")
.field("OutputMode", &format_args!("{:?}", self.OutputMode))
.field("Input", &format_args!("{:?}", self.Input))
.finish()
}
}
impl ::std::cmp::PartialEq for TRANSPORTVIDEOPARMS {
fn eq(&self, other: &Self) -> bool {
self.OutputMode == other.OutputMode && self.Input == other.Input
}
}
impl ::std::cmp::Eq for TRANSPORTVIDEOPARMS {}
unsafe impl ::windows::Abi for TRANSPORTVIDEOPARMS {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct TUNER_ANALOG_CAPS_S {
pub Mode: u32,
pub StandardsSupported: u32,
pub MinFrequency: u32,
pub MaxFrequency: u32,
pub TuningGranularity: u32,
pub SettlingTime: u32,
pub ScanSensingRange: u32,
pub FineTuneSensingRange: u32,
}
impl TUNER_ANALOG_CAPS_S {}
impl ::std::default::Default for TUNER_ANALOG_CAPS_S {
fn default() -> Self {
Self {
Mode: 0,
StandardsSupported: 0,
MinFrequency: 0,
MaxFrequency: 0,
TuningGranularity: 0,
SettlingTime: 0,
ScanSensingRange: 0,
FineTuneSensingRange: 0,
}
}
}
impl ::std::fmt::Debug for TUNER_ANALOG_CAPS_S {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("TUNER_ANALOG_CAPS_S")
.field("Mode", &format_args!("{:?}", self.Mode))
.field(
"StandardsSupported",
&format_args!("{:?}", self.StandardsSupported),
)
.field("MinFrequency", &format_args!("{:?}", self.MinFrequency))
.field("MaxFrequency", &format_args!("{:?}", self.MaxFrequency))
.field(
"TuningGranularity",
&format_args!("{:?}", self.TuningGranularity),
)
.field("SettlingTime", &format_args!("{:?}", self.SettlingTime))
.field(
"ScanSensingRange",
&format_args!("{:?}", self.ScanSensingRange),
)
.field(
"FineTuneSensingRange",
&format_args!("{:?}", self.FineTuneSensingRange),
)
.finish()
}
}
impl ::std::cmp::PartialEq for TUNER_ANALOG_CAPS_S {
fn eq(&self, other: &Self) -> bool {
self.Mode == other.Mode
&& self.StandardsSupported == other.StandardsSupported
&& self.MinFrequency == other.MinFrequency
&& self.MaxFrequency == other.MaxFrequency
&& self.TuningGranularity == other.TuningGranularity
&& self.SettlingTime == other.SettlingTime
&& self.ScanSensingRange == other.ScanSensingRange
&& self.FineTuneSensingRange == other.FineTuneSensingRange
}
}
impl ::std::cmp::Eq for TUNER_ANALOG_CAPS_S {}
unsafe impl ::windows::Abi for TUNER_ANALOG_CAPS_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICAP_PROPERTIES_PROTECTION_S {
pub Property: KSIDENTIFIER,
pub StreamIndex: u32,
pub Status: u32,
}
impl VBICAP_PROPERTIES_PROTECTION_S {}
unsafe impl ::windows::Abi for VBICAP_PROPERTIES_PROTECTION_S {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_STATISTICS_TELETEXT {
pub Common: VBICODECFILTERING_STATISTICS_COMMON,
}
impl VBICODECFILTERING_STATISTICS_TELETEXT {}
impl ::std::default::Default for VBICODECFILTERING_STATISTICS_TELETEXT {
fn default() -> Self {
Self {
Common: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_STATISTICS_TELETEXT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_STATISTICS_TELETEXT")
.field("Common", &format_args!("{:?}", self.Common))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_STATISTICS_TELETEXT {
fn eq(&self, other: &Self) -> bool {
self.Common == other.Common
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_STATISTICS_TELETEXT {}
unsafe impl ::windows::Abi for VBICODECFILTERING_STATISTICS_TELETEXT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VBICODECFILTERING_STATISTICS_TELETEXT_PIN {
pub Common: VBICODECFILTERING_STATISTICS_COMMON_PIN,
}
impl VBICODECFILTERING_STATISTICS_TELETEXT_PIN {}
impl ::std::default::Default for VBICODECFILTERING_STATISTICS_TELETEXT_PIN {
fn default() -> Self {
Self {
Common: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for VBICODECFILTERING_STATISTICS_TELETEXT_PIN {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VBICODECFILTERING_STATISTICS_TELETEXT_PIN")
.field("Common", &format_args!("{:?}", self.Common))
.finish()
}
}
impl ::std::cmp::PartialEq for VBICODECFILTERING_STATISTICS_TELETEXT_PIN {
fn eq(&self, other: &Self) -> bool {
self.Common == other.Common
}
}
impl ::std::cmp::Eq for VBICODECFILTERING_STATISTICS_TELETEXT_PIN {}
unsafe impl ::windows::Abi for VBICODECFILTERING_STATISTICS_TELETEXT_PIN {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VRAM_SURFACE_INFO {
pub hSurface: usize,
pub VramPhysicalAddress: i64,
pub cbCaptured: u32,
pub dwWidth: u32,
pub dwHeight: u32,
pub dwLinearSize: u32,
pub lPitch: i32,
pub ullReserved: [u64; 16],
}
impl VRAM_SURFACE_INFO {}
impl ::std::default::Default for VRAM_SURFACE_INFO {
fn default() -> Self {
Self {
hSurface: 0,
VramPhysicalAddress: 0,
cbCaptured: 0,
dwWidth: 0,
dwHeight: 0,
dwLinearSize: 0,
lPitch: 0,
ullReserved: [0; 16],
}
}
}
impl ::std::fmt::Debug for VRAM_SURFACE_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VRAM_SURFACE_INFO")
.field("hSurface", &format_args!("{:?}", self.hSurface))
.field(
"VramPhysicalAddress",
&format_args!("{:?}", self.VramPhysicalAddress),
)
.field("cbCaptured", &format_args!("{:?}", self.cbCaptured))
.field("dwWidth", &format_args!("{:?}", self.dwWidth))
.field("dwHeight", &format_args!("{:?}", self.dwHeight))
.field("dwLinearSize", &format_args!("{:?}", self.dwLinearSize))
.field("lPitch", &format_args!("{:?}", self.lPitch))
.field("ullReserved", &format_args!("{:?}", self.ullReserved))
.finish()
}
}
impl ::std::cmp::PartialEq for VRAM_SURFACE_INFO {
fn eq(&self, other: &Self) -> bool {
self.hSurface == other.hSurface
&& self.VramPhysicalAddress == other.VramPhysicalAddress
&& self.cbCaptured == other.cbCaptured
&& self.dwWidth == other.dwWidth
&& self.dwHeight == other.dwHeight
&& self.dwLinearSize == other.dwLinearSize
&& self.lPitch == other.lPitch
&& self.ullReserved == other.ullReserved
}
}
impl ::std::cmp::Eq for VRAM_SURFACE_INFO {}
unsafe impl ::windows::Abi for VRAM_SURFACE_INFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VRAM_SURFACE_INFO_PROPERTY_S {
pub Property: KSIDENTIFIER,
pub pVramSurfaceInfo: *mut VRAM_SURFACE_INFO,
}
impl VRAM_SURFACE_INFO_PROPERTY_S {}
unsafe impl ::windows::Abi for VRAM_SURFACE_INFO_PROPERTY_S {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct WAVEFORMATEXTENSIBLE_IEC61937 {
pub FormatExt: super::Multimedia::WAVEFORMATEXTENSIBLE,
pub dwEncodedSamplesPerSec: u32,
pub dwEncodedChannelCount: u32,
pub dwAverageBytesPerSec: u32,
}
impl WAVEFORMATEXTENSIBLE_IEC61937 {}
unsafe impl ::windows::Abi for WAVEFORMATEXTENSIBLE_IEC61937 {
type Abi = Self;
}
pub const WAVE_FORMAT_EXTENSIBLE: u32 = 65534u32;
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct WNF_KSCAMERA_STREAMSTATE_INFO {
pub ProcessId: u32,
pub SessionId: u32,
pub StreamState: u32,
pub Reserved: u32,
}
impl WNF_KSCAMERA_STREAMSTATE_INFO {}
impl ::std::default::Default for WNF_KSCAMERA_STREAMSTATE_INFO {
fn default() -> Self {
Self {
ProcessId: 0,
SessionId: 0,
StreamState: 0,
Reserved: 0,
}
}
}
impl ::std::fmt::Debug for WNF_KSCAMERA_STREAMSTATE_INFO {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("WNF_KSCAMERA_STREAMSTATE_INFO")
.field("ProcessId", &format_args!("{:?}", self.ProcessId))
.field("SessionId", &format_args!("{:?}", self.SessionId))
.field("StreamState", &format_args!("{:?}", self.StreamState))
.field("Reserved", &format_args!("{:?}", self.Reserved))
.finish()
}
}
impl ::std::cmp::PartialEq for WNF_KSCAMERA_STREAMSTATE_INFO {
fn eq(&self, other: &Self) -> bool {
self.ProcessId == other.ProcessId
&& self.SessionId == other.SessionId
&& self.StreamState == other.StreamState
&& self.Reserved == other.Reserved
}
}
impl ::std::cmp::Eq for WNF_KSCAMERA_STREAMSTATE_INFO {}
unsafe impl ::windows::Abi for WNF_KSCAMERA_STREAMSTATE_INFO {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct WST_BUFFER_LINE {
pub Confidence: u8,
pub Bytes: [u8; 42],
}
impl WST_BUFFER_LINE {}
impl ::std::default::Default for WST_BUFFER_LINE {
fn default() -> Self {
Self {
Confidence: 0,
Bytes: [0; 42],
}
}
}
impl ::std::fmt::Debug for WST_BUFFER_LINE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("WST_BUFFER_LINE")
.field("Confidence", &format_args!("{:?}", self.Confidence))
.field("Bytes", &format_args!("{:?}", self.Bytes))
.finish()
}
}
impl ::std::cmp::PartialEq for WST_BUFFER_LINE {
fn eq(&self, other: &Self) -> bool {
self.Confidence == other.Confidence && self.Bytes == other.Bytes
}
}
impl ::std::cmp::Eq for WST_BUFFER_LINE {}
unsafe impl ::windows::Abi for WST_BUFFER_LINE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct WST_BUFFER {
pub ScanlinesRequested: VBICODECFILTERING_SCANLINES,
pub WstLines: [WST_BUFFER_LINE; 17],
}
impl WST_BUFFER {}
impl ::std::default::Default for WST_BUFFER {
fn default() -> Self {
Self {
ScanlinesRequested: ::std::default::Default::default(),
WstLines: [::std::default::Default::default(); 17],
}
}
}
impl ::std::fmt::Debug for WST_BUFFER {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("WST_BUFFER")
.field(
"ScanlinesRequested",
&format_args!("{:?}", self.ScanlinesRequested),
)
.field("WstLines", &format_args!("{:?}", self.WstLines))
.finish()
}
}
impl ::std::cmp::PartialEq for WST_BUFFER {
fn eq(&self, other: &Self) -> bool {
self.ScanlinesRequested == other.ScanlinesRequested
&& self.WstLines == other.WstLines
}
}
impl ::std::cmp::Eq for WST_BUFFER {}
unsafe impl ::windows::Abi for WST_BUFFER {
type Abi = Self;
}
pub const WST_BYTES_PER_LINE: u32 = 42u32;
pub const WST_TVTUNER_CHANGE_BEGIN_TUNE: i32 = 4096i32;
pub const WST_TVTUNER_CHANGE_END_TUNE: i32 = 8192i32;
pub type YIELDPROC = extern "system" fn(mciid: u32, dwyielddata: u32) -> u32;
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct _AUDCLNT_BUFFERFLAGS(pub i32);
impl _AUDCLNT_BUFFERFLAGS {
pub const AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY: Self = Self(1i32);
pub const AUDCLNT_BUFFERFLAGS_SILENT: Self = Self(2i32);
pub const AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR: Self = Self(4i32);
}
impl ::std::convert::From<i32> for _AUDCLNT_BUFFERFLAGS {
fn from(value: i32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for _AUDCLNT_BUFFERFLAGS {
type Abi = Self;
}
pub unsafe fn mciDriverNotify<'a>(
hwndcallback: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
wdeviceid: u32,
ustatus: u32,
) -> super::SystemServices::BOOL {
panic!("Unsupported target OS");
}
pub unsafe fn mciDriverYield(wdeviceid: u32) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn mciFreeCommandResource(wtable: u32) -> super::SystemServices::BOOL {
panic!("Unsupported target OS");
}
pub unsafe fn mciGetCreatorTask(mciid: u32) -> HTASK {
panic!("Unsupported target OS");
}
pub unsafe fn mciGetDeviceIDA<'a>(
pszdevice: impl ::windows::IntoParam<'a, super::SystemServices::PSTR>,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn mciGetDeviceIDFromElementIDA<'a>(
dwelementid: u32,
lpstrtype: impl ::windows::IntoParam<'a, super::SystemServices::PSTR>,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn mciGetDeviceIDFromElementIDW<'a>(
dwelementid: u32,
lpstrtype: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn mciGetDeviceIDW<'a>(
pszdevice: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn mciGetDriverData(wdeviceid: u32) -> usize {
panic!("Unsupported target OS");
}
pub unsafe fn mciGetErrorStringA(
mcierr: u32,
psztext: super::SystemServices::PSTR,
cchtext: u32,
) -> super::SystemServices::BOOL {
panic!("Unsupported target OS");
}
pub unsafe fn mciGetErrorStringW(
mcierr: u32,
psztext: super::SystemServices::PWSTR,
cchtext: u32,
) -> super::SystemServices::BOOL {
panic!("Unsupported target OS");
}
pub unsafe fn mciGetYieldProc(
mciid: u32,
pdwyielddata: *mut u32,
) -> ::std::option::Option<YIELDPROC> {
panic!("Unsupported target OS");
}
pub unsafe fn mciLoadCommandResource<'a>(
hinstance: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
lpresname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
wtype: u32,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn mciSendCommandA(
mciid: u32,
umsg: u32,
dwparam1: usize,
dwparam2: usize,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn mciSendCommandW(
mciid: u32,
umsg: u32,
dwparam1: usize,
dwparam2: usize,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn mciSendStringA<'a>(
lpstrcommand: impl ::windows::IntoParam<'a, super::SystemServices::PSTR>,
lpstrreturnstring: super::SystemServices::PSTR,
ureturnlength: u32,
hwndcallback: impl ::windows::IntoParam<'a, super::WindowsAndMessaging::HWND>,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn mciSendStringW<'a>(
lpstrcommand: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
lpstrreturnstring: super::SystemServices::PWSTR,
ureturnlength: u32,
hwndcallback: impl ::windows::IntoParam<'a, super::WindowsAndMessaging::HWND>,
) -> u32 {
panic!("Unsupported target OS");
}
pub unsafe fn mciSetDriverData(
wdeviceid: u32,
dwdata: usize,
) -> super::SystemServices::BOOL {
panic!("Unsupported target OS");
}
pub unsafe fn mciSetYieldProc(
mciid: u32,
fpyieldproc: ::std::option::Option<YIELDPROC>,
dwyielddata: u32,
) -> super::SystemServices::BOOL {
panic!("Unsupported target OS");
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod Direct3D9 {
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct D3DVECTOR {
pub x: f32,
pub y: f32,
pub z: f32,
}
impl D3DVECTOR {}
impl ::std::default::Default for D3DVECTOR {
fn default() -> Self {
Self {
x: 0.0,
y: 0.0,
z: 0.0,
}
}
}
impl ::std::fmt::Debug for D3DVECTOR {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("D3DVECTOR")
.field("x", &format_args!("{:?}", self.x))
.field("y", &format_args!("{:?}", self.y))
.field("z", &format_args!("{:?}", self.z))
.finish()
}
}
impl ::std::cmp::PartialEq for D3DVECTOR {
fn eq(&self, other: &Self) -> bool {
self.x == other.x && self.y == other.y && self.z == other.z
}
}
impl ::std::cmp::Eq for D3DVECTOR {}
unsafe impl ::windows::Abi for D3DVECTOR {
type Abi = Self;
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod DirectShow {
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union TIMECODE {
pub Anonymous: TIMECODE_0,
pub qw: u64,
}
impl TIMECODE {}
unsafe impl ::windows::Abi for TIMECODE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct TIMECODE_0 {
pub wFrameRate: u16,
pub wFrameFract: u16,
pub dwFrames: u32,
}
impl TIMECODE_0 {}
impl ::std::default::Default for TIMECODE_0 {
fn default() -> Self {
Self {
wFrameRate: 0,
wFrameFract: 0,
dwFrames: 0,
}
}
}
impl ::std::fmt::Debug for TIMECODE_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous_e__Struct")
.field("wFrameRate", &format_args!("{:?}", self.wFrameRate))
.field("wFrameFract", &format_args!("{:?}", self.wFrameFract))
.field("dwFrames", &format_args!("{:?}", self.dwFrames))
.finish()
}
}
impl ::std::cmp::PartialEq for TIMECODE_0 {
fn eq(&self, other: &Self) -> bool {
self.wFrameRate == other.wFrameRate
&& self.wFrameFract == other.wFrameFract
&& self.dwFrames == other.dwFrames
}
}
impl ::std::cmp::Eq for TIMECODE_0 {}
unsafe impl ::windows::Abi for TIMECODE_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct TIMECODE_SAMPLE {
pub qwTick: i64,
pub timecode: TIMECODE,
pub dwUser: u32,
pub dwFlags: u32,
}
impl TIMECODE_SAMPLE {}
unsafe impl ::windows::Abi for TIMECODE_SAMPLE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct KSTOPOLOGY_CONNECTION {
pub FromNode: u32,
pub FromNodePin: u32,
pub ToNode: u32,
pub ToNodePin: u32,
}
impl KSTOPOLOGY_CONNECTION {}
impl ::std::default::Default for KSTOPOLOGY_CONNECTION {
fn default() -> Self {
Self {
FromNode: 0,
FromNodePin: 0,
ToNode: 0,
ToNodePin: 0,
}
}
}
impl ::std::fmt::Debug for KSTOPOLOGY_CONNECTION {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("KSTOPOLOGY_CONNECTION")
.field("FromNode", &format_args!("{:?}", self.FromNode))
.field("FromNodePin", &format_args!("{:?}", self.FromNodePin))
.field("ToNode", &format_args!("{:?}", self.ToNode))
.field("ToNodePin", &format_args!("{:?}", self.ToNodePin))
.finish()
}
}
impl ::std::cmp::PartialEq for KSTOPOLOGY_CONNECTION {
fn eq(&self, other: &Self) -> bool {
self.FromNode == other.FromNode
&& self.FromNodePin == other.FromNodePin
&& self.ToNode == other.ToNode
&& self.ToNodePin == other.ToNodePin
}
}
impl ::std::cmp::Eq for KSTOPOLOGY_CONNECTION {}
unsafe impl ::windows::Abi for KSTOPOLOGY_CONNECTION {
type Abi = Self;
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod DisplayDevices {
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct RECT {
pub left: i32,
pub top: i32,
pub right: i32,
pub bottom: i32,
}
impl RECT {}
impl ::std::default::Default for RECT {
fn default() -> Self {
Self {
left: 0,
top: 0,
right: 0,
bottom: 0,
}
}
}
impl ::std::fmt::Debug for RECT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("RECT")
.field("left", &format_args!("{:?}", self.left))
.field("top", &format_args!("{:?}", self.top))
.field("right", &format_args!("{:?}", self.right))
.field("bottom", &format_args!("{:?}", self.bottom))
.finish()
}
}
impl ::std::cmp::PartialEq for RECT {
fn eq(&self, other: &Self) -> bool {
self.left == other.left
&& self.top == other.top
&& self.right == other.right
&& self.bottom == other.bottom
}
}
impl ::std::cmp::Eq for RECT {}
unsafe impl ::windows::Abi for RECT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SIZE {
pub cx: i32,
pub cy: i32,
}
impl SIZE {}
impl ::std::default::Default for SIZE {
fn default() -> Self {
Self { cx: 0, cy: 0 }
}
}
impl ::std::fmt::Debug for SIZE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("SIZE")
.field("cx", &format_args!("{:?}", self.cx))
.field("cy", &format_args!("{:?}", self.cy))
.finish()
}
}
impl ::std::cmp::PartialEq for SIZE {
fn eq(&self, other: &Self) -> bool {
self.cx == other.cx && self.cy == other.cy
}
}
impl ::std::cmp::Eq for SIZE {}
unsafe impl ::windows::Abi for SIZE {
type Abi = Self;
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod Gdi {
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct HDC(pub isize);
impl HDC {}
impl HDC {
pub const NULL: Self = Self(0);
pub fn is_null(&self) -> bool {
self == &Self::NULL
}
}
impl ::std::default::Default for HDC {
fn default() -> Self {
Self(0)
}
}
impl ::std::fmt::Debug for HDC {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("HDC")
.field("Value", &format_args!("{:?}", self.0))
.finish()
}
}
impl ::std::cmp::PartialEq for HDC {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::std::cmp::Eq for HDC {}
unsafe impl ::windows::Abi for HDC {
type Abi = Self;
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod Kernel {
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct LUID {
pub LowPart: u32,
pub HighPart: i32,
}
impl LUID {}
impl ::std::default::Default for LUID {
fn default() -> Self {
Self {
LowPart: 0,
HighPart: 0,
}
}
}
impl ::std::fmt::Debug for LUID {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("LUID")
.field("LowPart", &format_args!("{:?}", self.LowPart))
.field("HighPart", &format_args!("{:?}", self.HighPart))
.finish()
}
}
impl ::std::cmp::PartialEq for LUID {
fn eq(&self, other: &Self) -> bool {
self.LowPart == other.LowPart && self.HighPart == other.HighPart
}
}
impl ::std::cmp::Eq for LUID {}
unsafe impl ::windows::Abi for LUID {
type Abi = Self;
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod Multimedia {
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct WAVEFORMATEX {
pub wFormatTag: u16,
pub nChannels: u16,
pub nSamplesPerSec: u32,
pub nAvgBytesPerSec: u32,
pub nBlockAlign: u16,
pub wBitsPerSample: u16,
pub cbSize: u16,
}
impl WAVEFORMATEX {}
unsafe impl ::windows::Abi for WAVEFORMATEX {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct HMIDI(pub isize);
impl HMIDI {}
impl HMIDI {
pub const NULL: Self = Self(0);
pub fn is_null(&self) -> bool {
self == &Self::NULL
}
}
impl ::std::default::Default for HMIDI {
fn default() -> Self {
Self(0)
}
}
impl ::std::fmt::Debug for HMIDI {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("HMIDI")
.field("Value", &format_args!("{:?}", self.0))
.finish()
}
}
impl ::std::cmp::PartialEq for HMIDI {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::std::cmp::Eq for HMIDI {}
unsafe impl ::windows::Abi for HMIDI {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct midiopenstrmid_tag {
pub dwStreamID: u32,
pub uDeviceID: u32,
}
impl midiopenstrmid_tag {}
unsafe impl ::windows::Abi for midiopenstrmid_tag {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct WAVEFORMATEXTENSIBLE {
pub Format: WAVEFORMATEX,
pub Samples: WAVEFORMATEXTENSIBLE_0,
pub dwChannelMask: u32,
pub SubFormat: ::windows::Guid,
}
impl WAVEFORMATEXTENSIBLE {}
unsafe impl ::windows::Abi for WAVEFORMATEXTENSIBLE {
type Abi = Self;
}
#[repr(C, packed(1))]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union WAVEFORMATEXTENSIBLE_0 {
pub wValidBitsPerSample: u16,
pub wSamplesPerBlock: u16,
pub wReserved: u16,
}
impl WAVEFORMATEXTENSIBLE_0 {}
unsafe impl ::windows::Abi for WAVEFORMATEXTENSIBLE_0 {
type Abi = Self;
}
pub const WAVE_FORMAT_PCM: u32 = 1u32;
pub const WAVE_FORMAT_IEEE_FLOAT: u32 = 3u32;
pub const KSDATAFORMAT_SUBTYPE_IEEE_FLOAT: ::windows::Guid =
::windows::Guid::from_values(3, 0, 16, [128, 0, 0, 170, 0, 56, 155, 113]);
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod StructuredStorage {
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct ISequentialStream(::windows::IUnknown);
impl ISequentialStream {}
unsafe impl ::windows::Interface for ISequentialStream {
type Vtable = ISequentialStream_abi;
const IID: ::windows::Guid = ::windows::Guid::from_values(
208878128,
10780,
4558,
[173, 229, 0, 170, 0, 68, 119, 61],
);
}
impl ISequentialStream {
pub unsafe fn Read(
&self,
pv: *mut ::std::ffi::c_void,
cb: u32,
pcbread: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pv),
::std::mem::transmute(cb),
::std::mem::transmute(pcbread),
)
}
pub unsafe fn Write(
&self,
pv: *const ::std::ffi::c_void,
cb: u32,
pcbwritten: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pv),
::std::mem::transmute(cb),
::std::mem::transmute(pcbwritten),
)
}
}
impl ::std::convert::From<ISequentialStream> for ::windows::IUnknown {
fn from(value: ISequentialStream) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&ISequentialStream> for ::windows::IUnknown {
fn from(value: &ISequentialStream) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for ISequentialStream {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a ISequentialStream {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct ISequentialStream_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pv: *mut ::std::ffi::c_void,
cb: u32,
pcbread: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pv: *const ::std::ffi::c_void,
cb: u32,
pcbwritten: *mut u32,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IStream(::windows::IUnknown);
impl IStream {}
unsafe impl ::windows::Interface for IStream {
type Vtable = IStream_abi;
const IID: ::windows::Guid =
::windows::Guid::from_values(12, 0, 0, [192, 0, 0, 0, 0, 0, 0, 70]);
}
impl IStream {
pub unsafe fn Read(
&self,
pv: *mut ::std::ffi::c_void,
cb: u32,
pcbread: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
::std::mem::transmute(pv),
::std::mem::transmute(cb),
::std::mem::transmute(pcbread),
)
}
pub unsafe fn Write(
&self,
pv: *const ::std::ffi::c_void,
cb: u32,
pcbwritten: *mut u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
::std::mem::transmute(pv),
::std::mem::transmute(cb),
::std::mem::transmute(pcbwritten),
)
}
pub unsafe fn SetSize(&self, libnewsize: u64) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
::std::mem::transmute(libnewsize),
)
}
pub unsafe fn CopyTo<'a>(
&self,
pstm: impl ::windows::IntoParam<'a, IStream>,
cb: u64,
pcbread: *mut u64,
pcbwritten: *mut u64,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
pstm.into_param().abi(),
::std::mem::transmute(cb),
::std::mem::transmute(pcbread),
::std::mem::transmute(pcbwritten),
)
}
pub unsafe fn Commit(&self, grfcommitflags: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
::std::mem::transmute(grfcommitflags),
)
}
pub unsafe fn Revert(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(::windows::Abi::abi(self))
}
pub unsafe fn LockRegion(
&self,
liboffset: u64,
cb: u64,
dwlocktype: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(
::windows::Abi::abi(self),
::std::mem::transmute(liboffset),
::std::mem::transmute(cb),
::std::mem::transmute(dwlocktype),
)
}
pub unsafe fn UnlockRegion(
&self,
liboffset: u64,
cb: u64,
dwlocktype: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).11)(
::windows::Abi::abi(self),
::std::mem::transmute(liboffset),
::std::mem::transmute(cb),
::std::mem::transmute(dwlocktype),
)
}
pub unsafe fn Clone(
&self,
ppstm: *mut ::std::option::Option<IStream>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
::std::mem::transmute(ppstm),
)
}
}
impl ::std::convert::From<IStream> for ::windows::IUnknown {
fn from(value: IStream) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IStream> for ::windows::IUnknown {
fn from(value: &IStream) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IStream {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IStream {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
impl ::std::convert::From<IStream> for ISequentialStream {
fn from(value: IStream) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IStream> for ISequentialStream {
fn from(value: &IStream) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ISequentialStream> for IStream {
fn into_param(self) -> ::windows::Param<'a, ISequentialStream> {
::windows::Param::Owned(::std::convert::Into::<ISequentialStream>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ISequentialStream> for &'a IStream {
fn into_param(self) -> ::windows::Param<'a, ISequentialStream> {
::windows::Param::Owned(::std::convert::Into::<ISequentialStream>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStream_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pv: *mut ::std::ffi::c_void,
cb: u32,
pcbread: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pv: *const ::std::ffi::c_void,
cb: u32,
pcbwritten: *mut u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
libnewsize: u64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pstm: ::windows::RawPtr,
cb: u64,
pcbread: *mut u64,
pcbwritten: *mut u64,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
grfcommitflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
liboffset: u64,
cb: u64,
dwlocktype: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
liboffset: u64,
cb: u64,
dwlocktype: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ppstm: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
);
#[repr(transparent)]
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: clone :: Clone,
:: std :: fmt :: Debug,
)]
pub struct IStorage(::windows::IUnknown);
impl IStorage {}
unsafe impl ::windows::Interface for IStorage {
type Vtable = IStorage_abi;
const IID: ::windows::Guid =
::windows::Guid::from_values(11, 0, 0, [192, 0, 0, 0, 0, 0, 0, 70]);
}
impl IStorage {
pub unsafe fn CreateStream<'a>(
&self,
pwcsname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
grfmode: u32,
reserved1: u32,
reserved2: u32,
ppstm: *mut ::std::option::Option<IStream>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).3)(
::windows::Abi::abi(self),
pwcsname.into_param().abi(),
::std::mem::transmute(grfmode),
::std::mem::transmute(reserved1),
::std::mem::transmute(reserved2),
::std::mem::transmute(ppstm),
)
}
pub unsafe fn OpenStream<'a>(
&self,
pwcsname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
reserved1: *mut ::std::ffi::c_void,
grfmode: u32,
reserved2: u32,
ppstm: *mut ::std::option::Option<IStream>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).4)(
::windows::Abi::abi(self),
pwcsname.into_param().abi(),
::std::mem::transmute(reserved1),
::std::mem::transmute(grfmode),
::std::mem::transmute(reserved2),
::std::mem::transmute(ppstm),
)
}
pub unsafe fn CreateStorage<'a>(
&self,
pwcsname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
grfmode: u32,
reserved1: u32,
reserved2: u32,
ppstg: *mut ::std::option::Option<IStorage>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).5)(
::windows::Abi::abi(self),
pwcsname.into_param().abi(),
::std::mem::transmute(grfmode),
::std::mem::transmute(reserved1),
::std::mem::transmute(reserved2),
::std::mem::transmute(ppstg),
)
}
pub unsafe fn OpenStorage<'a>(
&self,
pwcsname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
pstgpriority: impl ::windows::IntoParam<'a, IStorage>,
grfmode: u32,
snbexclude: *mut *mut u16,
reserved: u32,
ppstg: *mut ::std::option::Option<IStorage>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).6)(
::windows::Abi::abi(self),
pwcsname.into_param().abi(),
pstgpriority.into_param().abi(),
::std::mem::transmute(grfmode),
::std::mem::transmute(snbexclude),
::std::mem::transmute(reserved),
::std::mem::transmute(ppstg),
)
}
pub unsafe fn CopyTo<'a>(
&self,
ciidexclude: u32,
rgiidexclude: *const ::windows::Guid,
snbexclude: *mut *mut u16,
pstgdest: impl ::windows::IntoParam<'a, IStorage>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).7)(
::windows::Abi::abi(self),
::std::mem::transmute(ciidexclude),
::std::mem::transmute(rgiidexclude),
::std::mem::transmute(snbexclude),
pstgdest.into_param().abi(),
)
}
pub unsafe fn MoveElementTo<'a>(
&self,
pwcsname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
pstgdest: impl ::windows::IntoParam<'a, IStorage>,
pwcsnewname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
grfflags: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).8)(
::windows::Abi::abi(self),
pwcsname.into_param().abi(),
pstgdest.into_param().abi(),
pwcsnewname.into_param().abi(),
::std::mem::transmute(grfflags),
)
}
pub unsafe fn Commit(&self, grfcommitflags: u32) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).9)(
::windows::Abi::abi(self),
::std::mem::transmute(grfcommitflags),
)
}
pub unsafe fn Revert(&self) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).10)(::windows::Abi::abi(self))
}
pub unsafe fn DestroyElement<'a>(
&self,
pwcsname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).12)(
::windows::Abi::abi(self),
pwcsname.into_param().abi(),
)
}
pub unsafe fn RenameElement<'a>(
&self,
pwcsoldname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
pwcsnewname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).13)(
::windows::Abi::abi(self),
pwcsoldname.into_param().abi(),
pwcsnewname.into_param().abi(),
)
}
pub unsafe fn SetElementTimes<'a>(
&self,
pwcsname: impl ::windows::IntoParam<'a, super::SystemServices::PWSTR>,
pctime: *const super::WindowsProgramming::FILETIME,
patime: *const super::WindowsProgramming::FILETIME,
pmtime: *const super::WindowsProgramming::FILETIME,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).14)(
::windows::Abi::abi(self),
pwcsname.into_param().abi(),
::std::mem::transmute(pctime),
::std::mem::transmute(patime),
::std::mem::transmute(pmtime),
)
}
pub unsafe fn SetClass(&self, clsid: *const ::windows::Guid) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).15)(
::windows::Abi::abi(self),
::std::mem::transmute(clsid),
)
}
pub unsafe fn SetStateBits(
&self,
grfstatebits: u32,
grfmask: u32,
) -> ::windows::HRESULT {
(::windows::Interface::vtable(self).16)(
::windows::Abi::abi(self),
::std::mem::transmute(grfstatebits),
::std::mem::transmute(grfmask),
)
}
}
impl ::std::convert::From<IStorage> for ::windows::IUnknown {
fn from(value: IStorage) -> Self {
unsafe { ::std::mem::transmute(value) }
}
}
impl ::std::convert::From<&IStorage> for ::windows::IUnknown {
fn from(value: &IStorage) -> Self {
::std::convert::From::from(::std::clone::Clone::clone(value))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for IStorage {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(self))
}
}
impl<'a> ::windows::IntoParam<'a, ::windows::IUnknown> for &'a IStorage {
fn into_param(self) -> ::windows::Param<'a, ::windows::IUnknown> {
::windows::Param::Owned(::std::convert::Into::<::windows::IUnknown>::into(
::std::clone::Clone::clone(self),
))
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IStorage_abi(
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
iid: &::windows::Guid,
interface: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> u32,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwcsname: super::SystemServices::PWSTR,
grfmode: u32,
reserved1: u32,
reserved2: u32,
ppstm: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwcsname: super::SystemServices::PWSTR,
reserved1: *mut ::std::ffi::c_void,
grfmode: u32,
reserved2: u32,
ppstm: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwcsname: super::SystemServices::PWSTR,
grfmode: u32,
reserved1: u32,
reserved2: u32,
ppstg: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwcsname: super::SystemServices::PWSTR,
pstgpriority: ::windows::RawPtr,
grfmode: u32,
snbexclude: *mut *mut u16,
reserved: u32,
ppstg: *mut ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
ciidexclude: u32,
rgiidexclude: *const ::windows::Guid,
snbexclude: *mut *mut u16,
pstgdest: ::windows::RawPtr,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwcsname: super::SystemServices::PWSTR,
pstgdest: ::windows::RawPtr,
pwcsnewname: super::SystemServices::PWSTR,
grfflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
grfcommitflags: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(this: ::windows::RawPtr) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwcsname: super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwcsoldname: super::SystemServices::PWSTR,
pwcsnewname: super::SystemServices::PWSTR,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
pwcsname: super::SystemServices::PWSTR,
pctime: *const super::WindowsProgramming::FILETIME,
patime: *const super::WindowsProgramming::FILETIME,
pmtime: *const super::WindowsProgramming::FILETIME,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
clsid: *const ::windows::Guid,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(
this: ::windows::RawPtr,
grfstatebits: u32,
grfmask: u32,
) -> ::windows::HRESULT,
pub unsafe extern "system" fn(),
);
#[repr(C)]
#[derive(:: std :: clone :: Clone)]
pub struct VERSIONEDSTREAM {
pub guidVersion: ::windows::Guid,
pub pStream: ::std::option::Option<IStream>,
}
impl VERSIONEDSTREAM {}
impl ::std::default::Default for VERSIONEDSTREAM {
fn default() -> Self {
Self {
guidVersion: ::std::default::Default::default(),
pStream: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for VERSIONEDSTREAM {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("VERSIONEDSTREAM")
.field("guidVersion", &format_args!("{:?}", self.guidVersion))
.field("pStream", &format_args!("{:?}", self.pStream))
.finish()
}
}
impl ::std::cmp::PartialEq for VERSIONEDSTREAM {
fn eq(&self, other: &Self) -> bool {
self.guidVersion == other.guidVersion && self.pStream == other.pStream
}
}
impl ::std::cmp::Eq for VERSIONEDSTREAM {}
#[repr(C)]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct VERSIONEDSTREAM_abi {
pub guidVersion: ::windows::Guid,
pub pStream: ::windows::RawPtr,
}
unsafe impl ::windows::Abi for VERSIONEDSTREAM {
type Abi = VERSIONEDSTREAM_abi;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAC {
pub cElems: u32,
pub pElems: *mut i8,
}
impl CAC {}
impl ::std::default::Default for CAC {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAC {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAC")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAC {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAC {}
unsafe impl ::windows::Abi for CAC {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAUB {
pub cElems: u32,
pub pElems: *mut u8,
}
impl CAUB {}
impl ::std::default::Default for CAUB {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAUB {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAUB")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAUB {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAUB {}
unsafe impl ::windows::Abi for CAUB {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAI {
pub cElems: u32,
pub pElems: *mut i16,
}
impl CAI {}
impl ::std::default::Default for CAI {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAI {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAI")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAI {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAI {}
unsafe impl ::windows::Abi for CAI {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAUI {
pub cElems: u32,
pub pElems: *mut u16,
}
impl CAUI {}
impl ::std::default::Default for CAUI {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAUI {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAUI")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAUI {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAUI {}
unsafe impl ::windows::Abi for CAUI {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAL {
pub cElems: u32,
pub pElems: *mut i32,
}
impl CAL {}
impl ::std::default::Default for CAL {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAL")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAL {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAL {}
unsafe impl ::windows::Abi for CAL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAUL {
pub cElems: u32,
pub pElems: *mut u32,
}
impl CAUL {}
impl ::std::default::Default for CAUL {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAUL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAUL")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAUL {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAUL {}
unsafe impl ::windows::Abi for CAUL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAH {
pub cElems: u32,
pub pElems: *mut i64,
}
impl CAH {}
impl ::std::default::Default for CAH {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAH {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAH")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAH {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAH {}
unsafe impl ::windows::Abi for CAH {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAUH {
pub cElems: u32,
pub pElems: *mut u64,
}
impl CAUH {}
impl ::std::default::Default for CAUH {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAUH {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAUH")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAUH {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAUH {}
unsafe impl ::windows::Abi for CAUH {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAFLT {
pub cElems: u32,
pub pElems: *mut f32,
}
impl CAFLT {}
impl ::std::default::Default for CAFLT {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAFLT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAFLT")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAFLT {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAFLT {}
unsafe impl ::windows::Abi for CAFLT {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CADBL {
pub cElems: u32,
pub pElems: *mut f64,
}
impl CADBL {}
impl ::std::default::Default for CADBL {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CADBL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CADBL")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CADBL {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CADBL {}
unsafe impl ::windows::Abi for CADBL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CABOOL {
pub cElems: u32,
pub pElems: *mut i16,
}
impl CABOOL {}
impl ::std::default::Default for CABOOL {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CABOOL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CABOOL")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CABOOL {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CABOOL {}
unsafe impl ::windows::Abi for CABOOL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CASCODE {
pub cElems: u32,
pub pElems: *mut i32,
}
impl CASCODE {}
impl ::std::default::Default for CASCODE {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CASCODE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CASCODE")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CASCODE {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CASCODE {}
unsafe impl ::windows::Abi for CASCODE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CACY {
pub cElems: u32,
pub pElems: *mut super::SystemServices::CY,
}
impl CACY {}
impl ::std::default::Default for CACY {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CACY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CACY")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CACY {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CACY {}
unsafe impl ::windows::Abi for CACY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CADATE {
pub cElems: u32,
pub pElems: *mut f64,
}
impl CADATE {}
impl ::std::default::Default for CADATE {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CADATE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CADATE")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CADATE {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CADATE {}
unsafe impl ::windows::Abi for CADATE {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAFILETIME {
pub cElems: u32,
pub pElems: *mut super::WindowsProgramming::FILETIME,
}
impl CAFILETIME {}
impl ::std::default::Default for CAFILETIME {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAFILETIME {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAFILETIME")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAFILETIME {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAFILETIME {}
unsafe impl ::windows::Abi for CAFILETIME {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CACLSID {
pub cElems: u32,
pub pElems: *mut ::windows::Guid,
}
impl CACLSID {}
impl ::std::default::Default for CACLSID {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CACLSID {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CACLSID")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CACLSID {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CACLSID {}
unsafe impl ::windows::Abi for CACLSID {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CACLIPDATA {
pub cElems: u32,
pub pElems: *mut super::SystemServices::CLIPDATA,
}
impl CACLIPDATA {}
impl ::std::default::Default for CACLIPDATA {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CACLIPDATA {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CACLIPDATA")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CACLIPDATA {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CACLIPDATA {}
unsafe impl ::windows::Abi for CACLIPDATA {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CABSTR {
pub cElems: u32,
pub pElems: *mut super::Automation::BSTR,
}
impl CABSTR {}
impl ::std::default::Default for CABSTR {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CABSTR {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CABSTR")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CABSTR {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CABSTR {}
unsafe impl ::windows::Abi for CABSTR {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CABSTRBLOB {
pub cElems: u32,
pub pElems: *mut super::SystemServices::BSTRBLOB,
}
impl CABSTRBLOB {}
impl ::std::default::Default for CABSTRBLOB {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CABSTRBLOB {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CABSTRBLOB")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CABSTRBLOB {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CABSTRBLOB {}
unsafe impl ::windows::Abi for CABSTRBLOB {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CALPSTR {
pub cElems: u32,
pub pElems: *mut super::SystemServices::PSTR,
}
impl CALPSTR {}
impl ::std::default::Default for CALPSTR {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CALPSTR {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CALPSTR")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CALPSTR {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CALPSTR {}
unsafe impl ::windows::Abi for CALPSTR {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CALPWSTR {
pub cElems: u32,
pub pElems: *mut super::SystemServices::PWSTR,
}
impl CALPWSTR {}
impl ::std::default::Default for CALPWSTR {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CALPWSTR {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CALPWSTR")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CALPWSTR {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CALPWSTR {}
unsafe impl ::windows::Abi for CALPWSTR {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CAPROPVARIANT {
pub cElems: u32,
pub pElems: *mut PROPVARIANT,
}
impl CAPROPVARIANT {}
impl ::std::default::Default for CAPROPVARIANT {
fn default() -> Self {
Self {
cElems: 0,
pElems: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CAPROPVARIANT {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CAPROPVARIANT")
.field("cElems", &format_args!("{:?}", self.cElems))
.field("pElems", &format_args!("{:?}", self.pElems))
.finish()
}
}
impl ::std::cmp::PartialEq for CAPROPVARIANT {
fn eq(&self, other: &Self) -> bool {
self.cElems == other.cElems && self.pElems == other.pElems
}
}
impl ::std::cmp::Eq for CAPROPVARIANT {}
unsafe impl ::windows::Abi for CAPROPVARIANT {
type Abi = Self;
}
#[repr(C)]
pub struct PROPVARIANT {
pub Anonymous: PROPVARIANT_0,
}
impl PROPVARIANT {}
#[repr(C)]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct PROPVARIANT_abi {
pub Anonymous: PROPVARIANT_0_abi,
}
unsafe impl ::windows::Abi for PROPVARIANT {
type Abi = PROPVARIANT_abi;
}
#[repr(C)]
pub union PROPVARIANT_0 {
pub Anonymous: PROPVARIANT_0_0_abi,
pub decVal: super::SystemServices::DECIMAL,
}
impl PROPVARIANT_0 {}
#[repr(C)]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union PROPVARIANT_0_abi {
pub Anonymous: PROPVARIANT_0_0_abi,
pub decVal: super::SystemServices::DECIMAL,
}
unsafe impl ::windows::Abi for PROPVARIANT_0 {
type Abi = PROPVARIANT_0_abi;
}
#[repr(C)]
pub struct PROPVARIANT_0_0 {
pub vt: u16,
pub wReserved1: u16,
pub wReserved2: u16,
pub wReserved3: u16,
pub Anonymous: PROPVARIANT_0_0_0,
}
impl PROPVARIANT_0_0 {}
#[repr(C)]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct PROPVARIANT_0_0_abi {
pub vt: u16,
pub wReserved1: u16,
pub wReserved2: u16,
pub wReserved3: u16,
pub Anonymous: PROPVARIANT_0_0_0_abi,
}
unsafe impl ::windows::Abi for PROPVARIANT_0_0 {
type Abi = PROPVARIANT_0_0_abi;
}
#[repr(C)]
pub union PROPVARIANT_0_0_0 {
pub cVal: i8,
pub bVal: u8,
pub iVal: i16,
pub uiVal: u16,
pub lVal: i32,
pub ulVal: u32,
pub intVal: i32,
pub uintVal: u32,
pub hVal: i64,
pub uhVal: u64,
pub fltVal: f32,
pub dblVal: f64,
pub boolVal: i16,
pub __OBSOLETE__VARIANT_BOOL: i16,
pub scode: i32,
pub cyVal: super::SystemServices::CY,
pub date: f64,
pub filetime: super::WindowsProgramming::FILETIME,
pub puuid: *mut ::windows::Guid,
pub pclipdata: *mut super::SystemServices::CLIPDATA,
pub bstrVal: super::Automation::BSTR_abi,
pub bstrblobVal: super::SystemServices::BSTRBLOB,
pub blob: super::WinSock::BLOB,
pub pszVal: super::SystemServices::PSTR,
pub pwszVal: super::SystemServices::PWSTR,
pub punkVal: ::windows::RawPtr,
pub pdispVal: ::windows::RawPtr,
pub pStream: ::windows::RawPtr,
pub pStorage: ::windows::RawPtr,
pub pVersionedStream: *mut VERSIONEDSTREAM_abi,
pub parray: *mut super::Automation::SAFEARRAY,
pub cac: CAC,
pub caub: CAUB,
pub cai: CAI,
pub caui: CAUI,
pub cal: CAL,
pub caul: CAUL,
pub cah: CAH,
pub cauh: CAUH,
pub caflt: CAFLT,
pub cadbl: CADBL,
pub cabool: CABOOL,
pub cascode: CASCODE,
pub cacy: CACY,
pub cadate: CADATE,
pub cafiletime: CAFILETIME,
pub cauuid: CACLSID,
pub caclipdata: CACLIPDATA,
pub cabstr: CABSTR,
pub cabstrblob: CABSTRBLOB,
pub calpstr: CALPSTR,
pub calpwstr: CALPWSTR,
pub capropvar: CAPROPVARIANT,
pub pcVal: *mut i8,
pub pbVal: *mut u8,
pub piVal: *mut i16,
pub puiVal: *mut u16,
pub plVal: *mut i32,
pub pulVal: *mut u32,
pub pintVal: *mut i32,
pub puintVal: *mut u32,
pub pfltVal: *mut f32,
pub pdblVal: *mut f64,
pub pboolVal: *mut i16,
pub pdecVal: *mut super::SystemServices::DECIMAL,
pub pscode: *mut i32,
pub pcyVal: *mut super::SystemServices::CY,
pub pdate: *mut f64,
pub pbstrVal: *mut super::Automation::BSTR_abi,
pub ppunkVal: *mut ::windows::RawPtr,
pub ppdispVal: *mut ::windows::RawPtr,
pub pparray: *mut *mut super::Automation::SAFEARRAY,
pub pvarVal: *mut PROPVARIANT_abi,
}
impl PROPVARIANT_0_0_0 {}
#[repr(C)]
#[doc(hidden)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union PROPVARIANT_0_0_0_abi {
pub cVal: i8,
pub bVal: u8,
pub iVal: i16,
pub uiVal: u16,
pub lVal: i32,
pub ulVal: u32,
pub intVal: i32,
pub uintVal: u32,
pub hVal: i64,
pub uhVal: u64,
pub fltVal: f32,
pub dblVal: f64,
pub boolVal: i16,
pub __OBSOLETE__VARIANT_BOOL: i16,
pub scode: i32,
pub cyVal: super::SystemServices::CY,
pub date: f64,
pub filetime: super::WindowsProgramming::FILETIME,
pub puuid: *mut ::windows::Guid,
pub pclipdata: *mut super::SystemServices::CLIPDATA,
pub bstrVal: super::Automation::BSTR_abi,
pub bstrblobVal: super::SystemServices::BSTRBLOB,
pub blob: super::WinSock::BLOB,
pub pszVal: super::SystemServices::PSTR,
pub pwszVal: super::SystemServices::PWSTR,
pub punkVal: ::windows::RawPtr,
pub pdispVal: ::windows::RawPtr,
pub pStream: ::windows::RawPtr,
pub pStorage: ::windows::RawPtr,
pub pVersionedStream: *mut VERSIONEDSTREAM_abi,
pub parray: *mut super::Automation::SAFEARRAY,
pub cac: CAC,
pub caub: CAUB,
pub cai: CAI,
pub caui: CAUI,
pub cal: CAL,
pub caul: CAUL,
pub cah: CAH,
pub cauh: CAUH,
pub caflt: CAFLT,
pub cadbl: CADBL,
pub cabool: CABOOL,
pub cascode: CASCODE,
pub cacy: CACY,
pub cadate: CADATE,
pub cafiletime: CAFILETIME,
pub cauuid: CACLSID,
pub caclipdata: CACLIPDATA,
pub cabstr: CABSTR,
pub cabstrblob: CABSTRBLOB,
pub calpstr: CALPSTR,
pub calpwstr: CALPWSTR,
pub capropvar: CAPROPVARIANT,
pub pcVal: *mut i8,
pub pbVal: *mut u8,
pub piVal: *mut i16,
pub puiVal: *mut u16,
pub plVal: *mut i32,
pub pulVal: *mut u32,
pub pintVal: *mut i32,
pub puintVal: *mut u32,
pub pfltVal: *mut f32,
pub pdblVal: *mut f64,
pub pboolVal: *mut i16,
pub pdecVal: *mut super::SystemServices::DECIMAL,
pub pscode: *mut i32,
pub pcyVal: *mut super::SystemServices::CY,
pub pdate: *mut f64,
pub pbstrVal: *mut super::Automation::BSTR_abi,
pub ppunkVal: *mut ::windows::RawPtr,
pub ppdispVal: *mut ::windows::RawPtr,
pub pparray: *mut *mut super::Automation::SAFEARRAY,
pub pvarVal: *mut PROPVARIANT_abi,
}
unsafe impl ::windows::Abi for PROPVARIANT_0_0_0 {
type Abi = PROPVARIANT_0_0_0_abi;
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod SystemServices {
#[repr(C)]
#[derive(
:: std :: clone :: Clone,
:: std :: marker :: Copy,
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: default :: Default,
)]
pub struct BOOL(pub i32);
impl BOOL {
#[inline]
pub fn as_bool(self) -> bool {
!(self.0 == 0)
}
#[inline]
pub fn ok(self) -> ::windows::Result<()> {
if self.as_bool() {
Ok(())
} else {
Err(::windows::HRESULT::from_thread().into())
}
}
#[inline]
pub fn unwrap(self) {
self.ok().unwrap();
}
#[inline]
pub fn expect(self, msg: &str) {
self.ok().expect(msg);
}
}
impl ::std::fmt::Debug for BOOL {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
let msg = if self.as_bool() { "true" } else { "false" };
fmt.write_str(msg)
}
}
unsafe impl ::windows::Abi for BOOL {
type Abi = Self;
}
impl ::std::convert::From<BOOL> for bool {
fn from(value: BOOL) -> Self {
value.as_bool()
}
}
impl ::std::convert::From<&BOOL> for bool {
fn from(value: &BOOL) -> Self {
value.as_bool()
}
}
impl ::std::convert::From<bool> for BOOL {
fn from(value: bool) -> Self {
if value {
BOOL(1)
} else {
BOOL(0)
}
}
}
impl ::std::convert::From<&bool> for BOOL {
fn from(value: &bool) -> Self {
(*value).into()
}
}
impl ::std::cmp::PartialEq<bool> for BOOL {
fn eq(&self, other: &bool) -> bool {
self.as_bool() == *other
}
}
impl ::std::cmp::PartialEq<BOOL> for bool {
fn eq(&self, other: &BOOL) -> bool {
*self == other.as_bool()
}
}
impl std::ops::Not for BOOL {
type Output = Self;
fn not(self) -> Self::Output {
if self.as_bool() {
BOOL(0)
} else {
BOOL(1)
}
}
}
impl<'a> ::windows::IntoParam<'a, BOOL> for bool {
fn into_param(self) -> ::windows::Param<'a, BOOL> {
::windows::Param::Owned(self.into())
}
}
#[repr(C)]
#[derive(
:: std :: clone :: Clone,
:: std :: marker :: Copy,
:: std :: cmp :: Eq,
:: std :: fmt :: Debug,
)]
pub struct PWSTR(pub *mut u16);
impl PWSTR {
pub const NULL: Self = Self(::std::ptr::null_mut());
pub fn is_null(&self) -> bool {
self.0.is_null()
}
}
impl ::std::default::Default for PWSTR {
fn default() -> Self {
Self(::std::ptr::null_mut())
}
}
impl ::std::cmp::PartialEq for PWSTR {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
unsafe impl ::windows::Abi for PWSTR {
type Abi = Self;
fn drop_param(param: &mut ::windows::Param<Self>) {
if let ::windows::Param::Boxed(value) = param {
if !value.0.is_null() {
unsafe {
::std::boxed::Box::from_raw(value.0);
}
}
}
}
}
impl<'a> ::windows::IntoParam<'a, PWSTR> for &'a str {
fn into_param(self) -> ::windows::Param<'a, PWSTR> {
::windows::Param::Boxed(PWSTR(::std::boxed::Box::<[u16]>::into_raw(
self.encode_utf16()
.chain(::std::iter::once(0))
.collect::<std::vec::Vec<u16>>()
.into_boxed_slice(),
) as _))
}
}
impl<'a> ::windows::IntoParam<'a, PWSTR> for String {
fn into_param(self) -> ::windows::Param<'a, PWSTR> {
::windows::Param::Boxed(PWSTR(::std::boxed::Box::<[u16]>::into_raw(
self.encode_utf16()
.chain(::std::iter::once(0))
.collect::<std::vec::Vec<u16>>()
.into_boxed_slice(),
) as _))
}
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct HANDLE(pub isize);
impl HANDLE {}
impl HANDLE {
pub const NULL: Self = Self(0);
pub fn is_null(&self) -> bool {
self == &Self::NULL
}
}
impl ::std::default::Default for HANDLE {
fn default() -> Self {
Self(0)
}
}
impl ::std::fmt::Debug for HANDLE {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("HANDLE")
.field("Value", &format_args!("{:?}", self.0))
.finish()
}
}
impl ::std::cmp::PartialEq for HANDLE {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::std::cmp::Eq for HANDLE {}
unsafe impl ::windows::Abi for HANDLE {
type Abi = Self;
}
impl HANDLE {
pub const INVALID: Self = Self(-1);
pub fn is_invalid(&self) -> bool {
self.0 == -1
}
}
#[repr(C)]
#[derive(
:: std :: clone :: Clone,
:: std :: marker :: Copy,
:: std :: cmp :: Eq,
:: std :: fmt :: Debug,
)]
pub struct PSTR(pub *mut u8);
impl PSTR {
pub const NULL: Self = Self(::std::ptr::null_mut());
pub fn is_null(&self) -> bool {
self.0.is_null()
}
}
impl ::std::default::Default for PSTR {
fn default() -> Self {
Self(::std::ptr::null_mut())
}
}
impl ::std::cmp::PartialEq for PSTR {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
unsafe impl ::windows::Abi for PSTR {
type Abi = Self;
fn drop_param(param: &mut ::windows::Param<Self>) {
if let ::windows::Param::Boxed(value) = param {
if !value.0.is_null() {
unsafe {
::std::boxed::Box::from_raw(value.0);
}
}
}
}
}
impl<'a> ::windows::IntoParam<'a, PSTR> for &'a str {
fn into_param(self) -> ::windows::Param<'a, PSTR> {
::windows::Param::Boxed(PSTR(::std::boxed::Box::<[u8]>::into_raw(
self.bytes()
.chain(::std::iter::once(0))
.collect::<std::vec::Vec<u8>>()
.into_boxed_slice(),
) as _))
}
}
impl<'a> ::windows::IntoParam<'a, PSTR> for String {
fn into_param(self) -> ::windows::Param<'a, PSTR> {
::windows::Param::Boxed(PSTR(::std::boxed::Box::<[u8]>::into_raw(
self.bytes()
.chain(::std::iter::once(0))
.collect::<std::vec::Vec<u8>>()
.into_boxed_slice(),
) as _))
}
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union CY {
pub Anonymous: CY_0,
pub int64: i64,
}
impl CY {}
unsafe impl ::windows::Abi for CY {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CY_0 {
pub Lo: u32,
pub Hi: i32,
}
impl CY_0 {}
impl ::std::default::Default for CY_0 {
fn default() -> Self {
Self { Lo: 0, Hi: 0 }
}
}
impl ::std::fmt::Debug for CY_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous_e__Struct")
.field("Lo", &format_args!("{:?}", self.Lo))
.field("Hi", &format_args!("{:?}", self.Hi))
.finish()
}
}
impl ::std::cmp::PartialEq for CY_0 {
fn eq(&self, other: &Self) -> bool {
self.Lo == other.Lo && self.Hi == other.Hi
}
}
impl ::std::cmp::Eq for CY_0 {}
unsafe impl ::windows::Abi for CY_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct CLIPDATA {
pub cbSize: u32,
pub ulClipFmt: i32,
pub pClipData: *mut u8,
}
impl CLIPDATA {}
impl ::std::default::Default for CLIPDATA {
fn default() -> Self {
Self {
cbSize: 0,
ulClipFmt: 0,
pClipData: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for CLIPDATA {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("CLIPDATA")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("ulClipFmt", &format_args!("{:?}", self.ulClipFmt))
.field("pClipData", &format_args!("{:?}", self.pClipData))
.finish()
}
}
impl ::std::cmp::PartialEq for CLIPDATA {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize
&& self.ulClipFmt == other.ulClipFmt
&& self.pClipData == other.pClipData
}
}
impl ::std::cmp::Eq for CLIPDATA {}
unsafe impl ::windows::Abi for CLIPDATA {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct BSTRBLOB {
pub cbSize: u32,
pub pData: *mut u8,
}
impl BSTRBLOB {}
impl ::std::default::Default for BSTRBLOB {
fn default() -> Self {
Self {
cbSize: 0,
pData: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for BSTRBLOB {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("BSTRBLOB")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("pData", &format_args!("{:?}", self.pData))
.finish()
}
}
impl ::std::cmp::PartialEq for BSTRBLOB {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize && self.pData == other.pData
}
}
impl ::std::cmp::Eq for BSTRBLOB {}
unsafe impl ::windows::Abi for BSTRBLOB {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DECIMAL {
pub wReserved: u16,
pub Anonymous1: DECIMAL_0,
pub Hi32: u32,
pub Anonymous2: DECIMAL_1,
}
impl DECIMAL {}
unsafe impl ::windows::Abi for DECIMAL {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union DECIMAL_0 {
pub Anonymous: DECIMAL_0_0,
pub signscale: u16,
}
impl DECIMAL_0 {}
unsafe impl ::windows::Abi for DECIMAL_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DECIMAL_0_0 {
pub scale: u8,
pub sign: u8,
}
impl DECIMAL_0_0 {}
impl ::std::default::Default for DECIMAL_0_0 {
fn default() -> Self {
Self { scale: 0, sign: 0 }
}
}
impl ::std::fmt::Debug for DECIMAL_0_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous_e__Struct")
.field("scale", &format_args!("{:?}", self.scale))
.field("sign", &format_args!("{:?}", self.sign))
.finish()
}
}
impl ::std::cmp::PartialEq for DECIMAL_0_0 {
fn eq(&self, other: &Self) -> bool {
self.scale == other.scale && self.sign == other.sign
}
}
impl ::std::cmp::Eq for DECIMAL_0_0 {}
unsafe impl ::windows::Abi for DECIMAL_0_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub union DECIMAL_1 {
pub Anonymous: DECIMAL_1_0,
pub Lo64: u64,
}
impl DECIMAL_1 {}
unsafe impl ::windows::Abi for DECIMAL_1 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct DECIMAL_1_0 {
pub Lo32: u32,
pub Mid32: u32,
}
impl DECIMAL_1_0 {}
impl ::std::default::Default for DECIMAL_1_0 {
fn default() -> Self {
Self { Lo32: 0, Mid32: 0 }
}
}
impl ::std::fmt::Debug for DECIMAL_1_0 {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("_Anonymous_e__Struct")
.field("Lo32", &format_args!("{:?}", self.Lo32))
.field("Mid32", &format_args!("{:?}", self.Mid32))
.finish()
}
}
impl ::std::cmp::PartialEq for DECIMAL_1_0 {
fn eq(&self, other: &Self) -> bool {
self.Lo32 == other.Lo32 && self.Mid32 == other.Mid32
}
}
impl ::std::cmp::Eq for DECIMAL_1_0 {}
unsafe impl ::windows::Abi for DECIMAL_1_0 {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct SECURITY_ATTRIBUTES {
pub nLength: u32,
pub lpSecurityDescriptor: *mut ::std::ffi::c_void,
pub bInheritHandle: BOOL,
}
impl SECURITY_ATTRIBUTES {}
impl ::std::default::Default for SECURITY_ATTRIBUTES {
fn default() -> Self {
Self {
nLength: 0,
lpSecurityDescriptor: ::std::ptr::null_mut(),
bInheritHandle: ::std::default::Default::default(),
}
}
}
impl ::std::fmt::Debug for SECURITY_ATTRIBUTES {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("SECURITY_ATTRIBUTES")
.field("nLength", &format_args!("{:?}", self.nLength))
.field(
"lpSecurityDescriptor",
&format_args!("{:?}", self.lpSecurityDescriptor),
)
.field("bInheritHandle", &format_args!("{:?}", self.bInheritHandle))
.finish()
}
}
impl ::std::cmp::PartialEq for SECURITY_ATTRIBUTES {
fn eq(&self, other: &Self) -> bool {
self.nLength == other.nLength
&& self.lpSecurityDescriptor == other.lpSecurityDescriptor
&& self.bInheritHandle == other.bInheritHandle
}
}
impl ::std::cmp::Eq for SECURITY_ATTRIBUTES {}
unsafe impl ::windows::Abi for SECURITY_ATTRIBUTES {
type Abi = Self;
}
pub unsafe fn CreateEventA<'a>(
lpeventattributes: *mut SECURITY_ATTRIBUTES,
bmanualreset: impl ::windows::IntoParam<'a, BOOL>,
binitialstate: impl ::windows::IntoParam<'a, BOOL>,
lpname: impl ::windows::IntoParam<'a, PSTR>,
) -> HANDLE {
panic!("Unsupported target OS");
}
pub const INVALID_HANDLE_VALUE: HANDLE = HANDLE(-1i32 as _);
pub unsafe fn ResetEvent<'a>(hevent: impl ::windows::IntoParam<'a, HANDLE>) -> BOOL {
panic!("Unsupported target OS");
}
pub unsafe fn SetEvent<'a>(hevent: impl ::windows::IntoParam<'a, HANDLE>) -> BOOL {
panic!("Unsupported target OS");
}
#[derive(
:: std :: cmp :: PartialEq,
:: std :: cmp :: Eq,
:: std :: marker :: Copy,
:: std :: clone :: Clone,
:: std :: default :: Default,
:: std :: fmt :: Debug,
)]
#[repr(transparent)]
pub struct WAIT_RETURN_CAUSE(pub u32);
impl WAIT_RETURN_CAUSE {
pub const WAIT_OBJECT_0: Self = Self(0u32);
pub const WAIT_ABANDONED: Self = Self(128u32);
pub const WAIT_ABANDONED_0: Self = Self(128u32);
pub const WAIT_IO_COMPLETION: Self = Self(192u32);
pub const WAIT_TIMEOUT: Self = Self(258u32);
pub const WAIT_FAILED: Self = Self(4294967295u32);
}
impl ::std::convert::From<u32> for WAIT_RETURN_CAUSE {
fn from(value: u32) -> Self {
Self(value)
}
}
unsafe impl ::windows::Abi for WAIT_RETURN_CAUSE {
type Abi = Self;
}
impl ::std::ops::BitOr for WAIT_RETURN_CAUSE {
type Output = Self;
fn bitor(self, rhs: Self) -> Self {
Self(self.0 | rhs.0)
}
}
impl ::std::ops::BitAnd for WAIT_RETURN_CAUSE {
type Output = Self;
fn bitand(self, rhs: Self) -> Self {
Self(self.0 & rhs.0)
}
}
impl ::std::ops::BitOrAssign for WAIT_RETURN_CAUSE {
fn bitor_assign(&mut self, rhs: Self) {
self.0.bitor_assign(rhs.0)
}
}
impl ::std::ops::BitAndAssign for WAIT_RETURN_CAUSE {
fn bitand_assign(&mut self, rhs: Self) {
self.0.bitand_assign(rhs.0)
}
}
pub unsafe fn WaitForSingleObject<'a>(
hhandle: impl ::windows::IntoParam<'a, HANDLE>,
dwmilliseconds: u32,
) -> WAIT_RETURN_CAUSE {
panic!("Unsupported target OS");
}
pub unsafe fn WaitForMultipleObjects<'a>(
ncount: u32,
lphandles: *const HANDLE,
bwaitall: impl ::windows::IntoParam<'a, BOOL>,
dwmilliseconds: u32,
) -> WAIT_RETURN_CAUSE {
panic!("Unsupported target OS");
}
pub const FALSE: BOOL = BOOL(0i32 as _);
pub const TRUE: BOOL = BOOL(1i32 as _);
pub const S_FALSE: ::windows::HRESULT = ::windows::HRESULT(1i32 as _);
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod WinSock {
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct BLOB {
pub cbSize: u32,
pub pBlobData: *mut u8,
}
impl BLOB {}
impl ::std::default::Default for BLOB {
fn default() -> Self {
Self {
cbSize: 0,
pBlobData: ::std::ptr::null_mut(),
}
}
}
impl ::std::fmt::Debug for BLOB {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("BLOB")
.field("cbSize", &format_args!("{:?}", self.cbSize))
.field("pBlobData", &format_args!("{:?}", self.pBlobData))
.finish()
}
}
impl ::std::cmp::PartialEq for BLOB {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize && self.pBlobData == other.pBlobData
}
}
impl ::std::cmp::Eq for BLOB {}
unsafe impl ::windows::Abi for BLOB {
type Abi = Self;
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod WindowsAndMessaging {
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct LPARAM(pub isize);
impl LPARAM {}
impl LPARAM {
pub const NULL: Self = Self(0);
pub fn is_null(&self) -> bool {
self == &Self::NULL
}
}
impl ::std::default::Default for LPARAM {
fn default() -> Self {
Self(0)
}
}
impl ::std::fmt::Debug for LPARAM {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("LPARAM")
.field("Value", &format_args!("{:?}", self.0))
.finish()
}
}
impl ::std::cmp::PartialEq for LPARAM {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::std::cmp::Eq for LPARAM {}
unsafe impl ::windows::Abi for LPARAM {
type Abi = Self;
}
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct HWND(pub isize);
impl HWND {}
impl HWND {
pub const NULL: Self = Self(0);
pub fn is_null(&self) -> bool {
self == &Self::NULL
}
}
impl ::std::default::Default for HWND {
fn default() -> Self {
Self(0)
}
}
impl ::std::fmt::Debug for HWND {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("HWND")
.field("Value", &format_args!("{:?}", self.0))
.finish()
}
}
impl ::std::cmp::PartialEq for HWND {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::std::cmp::Eq for HWND {}
unsafe impl ::windows::Abi for HWND {
type Abi = Self;
}
pub unsafe fn GetForegroundWindow() -> HWND {
panic!("Unsupported target OS");
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod WindowsProgramming {
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct FILETIME {
pub dwLowDateTime: u32,
pub dwHighDateTime: u32,
}
impl FILETIME {}
impl ::std::default::Default for FILETIME {
fn default() -> Self {
Self {
dwLowDateTime: 0,
dwHighDateTime: 0,
}
}
}
impl ::std::fmt::Debug for FILETIME {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("FILETIME")
.field("dwLowDateTime", &format_args!("{:?}", self.dwLowDateTime))
.field("dwHighDateTime", &format_args!("{:?}", self.dwHighDateTime))
.finish()
}
}
impl ::std::cmp::PartialEq for FILETIME {
fn eq(&self, other: &Self) -> bool {
self.dwLowDateTime == other.dwLowDateTime
&& self.dwHighDateTime == other.dwHighDateTime
}
}
impl ::std::cmp::Eq for FILETIME {}
unsafe impl ::windows::Abi for FILETIME {
type Abi = Self;
}
pub const INFINITE: u32 = 4294967295u32;
pub unsafe fn CloseHandle<'a>(
hobject: impl ::windows::IntoParam<'a, super::SystemServices::HANDLE>,
) -> super::SystemServices::BOOL {
panic!("Unsupported target OS");
}
}
#[allow(
unused_variables,
non_upper_case_globals,
non_snake_case,
unused_unsafe,
non_camel_case_types,
dead_code,
clippy::all
)]
pub mod WindowsPropertiesSystem {
#[repr(C)]
#[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
pub struct PROPERTYKEY {
pub fmtid: ::windows::Guid,
pub pid: u32,
}
impl PROPERTYKEY {}
impl ::std::default::Default for PROPERTYKEY {
fn default() -> Self {
Self {
fmtid: ::std::default::Default::default(),
pid: 0,
}
}
}
impl ::std::fmt::Debug for PROPERTYKEY {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.debug_struct("PROPERTYKEY")
.field("fmtid", &format_args!("{:?}", self.fmtid))
.field("pid", &format_args!("{:?}", self.pid))
.finish()
}
}
impl ::std::cmp::PartialEq for PROPERTYKEY {
fn eq(&self, other: &Self) -> bool {
self.fmtid == other.fmtid && self.pid == other.pid
}
}
impl ::std::cmp::Eq for PROPERTYKEY {}
unsafe impl ::windows::Abi for PROPERTYKEY {
type Abi = Self;
}
}
}
}