blob: 3a16d6050b8c3ecb7322186c8a03ab4b9cf27275 [file] [log] [blame]
#[doc = "*Required features: `\"Gaming_Input_Custom\"`, `\"implement\"`*"]
pub trait ICustomGameControllerFactory_Impl: Sized {
fn CreateGameController(&self, provider: ::core::option::Option<&IGameControllerProvider>) -> ::windows_core::Result<::windows_core::IInspectable>;
fn OnGameControllerAdded(&self, value: ::core::option::Option<&super::IGameController>) -> ::windows_core::Result<()>;
fn OnGameControllerRemoved(&self, value: ::core::option::Option<&super::IGameController>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ICustomGameControllerFactory {
const NAME: &'static str = "Windows.Gaming.Input.Custom.ICustomGameControllerFactory";
}
impl ICustomGameControllerFactory_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomGameControllerFactory_Impl, const OFFSET: isize>() -> ICustomGameControllerFactory_Vtbl {
unsafe extern "system" fn CreateGameController<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomGameControllerFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, provider: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateGameController(::windows_core::from_raw_borrowed(&provider)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(result__, ::core::mem::transmute_copy(&ok__));
::core::mem::forget(ok__);
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OnGameControllerAdded<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomGameControllerFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnGameControllerAdded(::windows_core::from_raw_borrowed(&value)).into()
}
unsafe extern "system" fn OnGameControllerRemoved<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomGameControllerFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnGameControllerRemoved(::windows_core::from_raw_borrowed(&value)).into()
}
Self {
base__: ::windows_core::IInspectable_Vtbl::new::<Identity, ICustomGameControllerFactory, OFFSET>(),
CreateGameController: CreateGameController::<Identity, Impl, OFFSET>,
OnGameControllerAdded: OnGameControllerAdded::<Identity, Impl, OFFSET>,
OnGameControllerRemoved: OnGameControllerRemoved::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICustomGameControllerFactory as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Gaming_Input_Custom\"`, `\"implement\"`*"]
pub trait IGameControllerInputSink_Impl: Sized {
fn OnInputResumed(&self, timestamp: u64) -> ::windows_core::Result<()>;
fn OnInputSuspended(&self, timestamp: u64) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IGameControllerInputSink {
const NAME: &'static str = "Windows.Gaming.Input.Custom.IGameControllerInputSink";
}
impl IGameControllerInputSink_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGameControllerInputSink_Impl, const OFFSET: isize>() -> IGameControllerInputSink_Vtbl {
unsafe extern "system" fn OnInputResumed<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGameControllerInputSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timestamp: u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnInputResumed(timestamp).into()
}
unsafe extern "system" fn OnInputSuspended<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGameControllerInputSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timestamp: u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnInputSuspended(timestamp).into()
}
Self {
base__: ::windows_core::IInspectable_Vtbl::new::<Identity, IGameControllerInputSink, OFFSET>(),
OnInputResumed: OnInputResumed::<Identity, Impl, OFFSET>,
OnInputSuspended: OnInputSuspended::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IGameControllerInputSink as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Gaming_Input_Custom\"`, `\"implement\"`*"]
pub trait IGameControllerProvider_Impl: Sized {
fn FirmwareVersionInfo(&self) -> ::windows_core::Result<GameControllerVersionInfo>;
fn HardwareProductId(&self) -> ::windows_core::Result<u16>;
fn HardwareVendorId(&self) -> ::windows_core::Result<u16>;
fn HardwareVersionInfo(&self) -> ::windows_core::Result<GameControllerVersionInfo>;
fn IsConnected(&self) -> ::windows_core::Result<bool>;
}
impl ::windows_core::RuntimeName for IGameControllerProvider {
const NAME: &'static str = "Windows.Gaming.Input.Custom.IGameControllerProvider";
}
impl IGameControllerProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGameControllerProvider_Impl, const OFFSET: isize>() -> IGameControllerProvider_Vtbl {
unsafe extern "system" fn FirmwareVersionInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGameControllerProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, result__: *mut GameControllerVersionInfo) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FirmwareVersionInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(result__, ::core::mem::transmute_copy(&ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn HardwareProductId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGameControllerProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, result__: *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.HardwareProductId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(result__, ::core::mem::transmute_copy(&ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn HardwareVendorId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGameControllerProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, result__: *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.HardwareVendorId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(result__, ::core::mem::transmute_copy(&ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn HardwareVersionInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGameControllerProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, result__: *mut GameControllerVersionInfo) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.HardwareVersionInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(result__, ::core::mem::transmute_copy(&ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsConnected<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGameControllerProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsConnected() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(result__, ::core::mem::transmute_copy(&ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IInspectable_Vtbl::new::<Identity, IGameControllerProvider, OFFSET>(),
FirmwareVersionInfo: FirmwareVersionInfo::<Identity, Impl, OFFSET>,
HardwareProductId: HardwareProductId::<Identity, Impl, OFFSET>,
HardwareVendorId: HardwareVendorId::<Identity, Impl, OFFSET>,
HardwareVersionInfo: HardwareVersionInfo::<Identity, Impl, OFFSET>,
IsConnected: IsConnected::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IGameControllerProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Gaming_Input_Custom\"`, `\"implement\"`*"]
pub trait IGipGameControllerInputSink_Impl: Sized + IGameControllerInputSink_Impl {
fn OnKeyReceived(&self, timestamp: u64, keycode: u8, ispressed: bool) -> ::windows_core::Result<()>;
fn OnMessageReceived(&self, timestamp: u64, messageclass: GipMessageClass, messageid: u8, sequenceid: u8, messagebuffer: &[u8]) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IGipGameControllerInputSink {
const NAME: &'static str = "Windows.Gaming.Input.Custom.IGipGameControllerInputSink";
}
impl IGipGameControllerInputSink_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGipGameControllerInputSink_Impl, const OFFSET: isize>() -> IGipGameControllerInputSink_Vtbl {
unsafe extern "system" fn OnKeyReceived<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGipGameControllerInputSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timestamp: u64, keycode: u8, ispressed: bool) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnKeyReceived(timestamp, keycode, ispressed).into()
}
unsafe extern "system" fn OnMessageReceived<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGipGameControllerInputSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timestamp: u64, messageclass: GipMessageClass, messageid: u8, sequenceid: u8, messageBuffer_array_size: u32, messagebuffer: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnMessageReceived(timestamp, messageclass, messageid, sequenceid, ::core::slice::from_raw_parts(::core::mem::transmute_copy(&messagebuffer), messageBuffer_array_size as usize)).into()
}
Self {
base__: ::windows_core::IInspectable_Vtbl::new::<Identity, IGipGameControllerInputSink, OFFSET>(),
OnKeyReceived: OnKeyReceived::<Identity, Impl, OFFSET>,
OnMessageReceived: OnMessageReceived::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IGipGameControllerInputSink as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Gaming_Input_Custom\"`, `\"implement\"`*"]
pub trait IHidGameControllerInputSink_Impl: Sized + IGameControllerInputSink_Impl {
fn OnInputReportReceived(&self, timestamp: u64, reportid: u8, reportbuffer: &[u8]) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IHidGameControllerInputSink {
const NAME: &'static str = "Windows.Gaming.Input.Custom.IHidGameControllerInputSink";
}
impl IHidGameControllerInputSink_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHidGameControllerInputSink_Impl, const OFFSET: isize>() -> IHidGameControllerInputSink_Vtbl {
unsafe extern "system" fn OnInputReportReceived<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHidGameControllerInputSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timestamp: u64, reportid: u8, reportBuffer_array_size: u32, reportbuffer: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnInputReportReceived(timestamp, reportid, ::core::slice::from_raw_parts(::core::mem::transmute_copy(&reportbuffer), reportBuffer_array_size as usize)).into()
}
Self {
base__: ::windows_core::IInspectable_Vtbl::new::<Identity, IHidGameControllerInputSink, OFFSET>(),
OnInputReportReceived: OnInputReportReceived::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHidGameControllerInputSink as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Gaming_Input_Custom\"`, `\"implement\"`*"]
pub trait IXusbGameControllerInputSink_Impl: Sized + IGameControllerInputSink_Impl {
fn OnInputReceived(&self, timestamp: u64, reportid: u8, inputbuffer: &[u8]) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IXusbGameControllerInputSink {
const NAME: &'static str = "Windows.Gaming.Input.Custom.IXusbGameControllerInputSink";
}
impl IXusbGameControllerInputSink_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IXusbGameControllerInputSink_Impl, const OFFSET: isize>() -> IXusbGameControllerInputSink_Vtbl {
unsafe extern "system" fn OnInputReceived<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IXusbGameControllerInputSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timestamp: u64, reportid: u8, inputBuffer_array_size: u32, inputbuffer: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnInputReceived(timestamp, reportid, ::core::slice::from_raw_parts(::core::mem::transmute_copy(&inputbuffer), inputBuffer_array_size as usize)).into()
}
Self {
base__: ::windows_core::IInspectable_Vtbl::new::<Identity, IXusbGameControllerInputSink, OFFSET>(),
OnInputReceived: OnInputReceived::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IXusbGameControllerInputSink as ::windows_core::ComInterface>::IID
}
}