blob: 815e03208dec203932558344c8b0299aac04e546 [file] [log] [blame]
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common"))]
pub trait CIE4ConnectionPoint_Impl: Sized + super::super::System::Com::IConnectionPoint_Impl {
fn DoInvokeIE4(&self, pf: *mut super::super::Foundation::BOOL, ppv: *mut *mut ::core::ffi::c_void, dispid: i32, pdispparams: *mut super::super::System::Com::DISPPARAMS) -> ::windows_core::Result<()>;
fn DoInvokePIDLIE4(&self, dispid: i32, pidl: *mut Common::ITEMIDLIST, fcancancel: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for CIE4ConnectionPoint {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common"))]
impl CIE4ConnectionPoint_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: CIE4ConnectionPoint_Impl, const OFFSET: isize>() -> CIE4ConnectionPoint_Vtbl {
unsafe extern "system" fn DoInvokeIE4<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: CIE4ConnectionPoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pf: *mut super::super::Foundation::BOOL, ppv: *mut *mut ::core::ffi::c_void, dispid: i32, pdispparams: *mut super::super::System::Com::DISPPARAMS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DoInvokeIE4(::core::mem::transmute_copy(&pf), ::core::mem::transmute_copy(&ppv), ::core::mem::transmute_copy(&dispid), ::core::mem::transmute_copy(&pdispparams)).into()
}
unsafe extern "system" fn DoInvokePIDLIE4<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: CIE4ConnectionPoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dispid: i32, pidl: *mut Common::ITEMIDLIST, fcancancel: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DoInvokePIDLIE4(::core::mem::transmute_copy(&dispid), ::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&fcancancel)).into()
}
Self {
base__: super::super::System::Com::IConnectionPoint_Vtbl::new::<Identity, Impl, OFFSET>(),
DoInvokeIE4: DoInvokeIE4::<Identity, Impl, OFFSET>,
DoInvokePIDLIE4: DoInvokePIDLIE4::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<CIE4ConnectionPoint as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IConnectionPoint as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait DFConstraint_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Name(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Value(&self) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for DFConstraint {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl DFConstraint_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: DFConstraint_Impl, const OFFSET: isize>() -> DFConstraint_Vtbl {
unsafe extern "system" fn Name<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: DFConstraint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Name() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Value<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: DFConstraint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pv: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Value() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pv, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Name: Name::<Identity, Impl, OFFSET>,
Value: Value::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<DFConstraint as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait DShellFolderViewEvents_Impl: Sized + super::super::System::Com::IDispatch_Impl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for DShellFolderViewEvents {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl DShellFolderViewEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: DShellFolderViewEvents_Impl, const OFFSET: isize>() -> DShellFolderViewEvents_Vtbl {
Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<DShellFolderViewEvents as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait DShellNameSpaceEvents_Impl: Sized + super::super::System::Com::IDispatch_Impl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for DShellNameSpaceEvents {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl DShellNameSpaceEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: DShellNameSpaceEvents_Impl, const OFFSET: isize>() -> DShellNameSpaceEvents_Vtbl {
Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<DShellNameSpaceEvents as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait DShellWindowsEvents_Impl: Sized + super::super::System::Com::IDispatch_Impl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for DShellWindowsEvents {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl DShellWindowsEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: DShellWindowsEvents_Impl, const OFFSET: isize>() -> DShellWindowsEvents_Vtbl {
Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<DShellWindowsEvents as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait DWebBrowserEvents_Impl: Sized + super::super::System::Com::IDispatch_Impl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for DWebBrowserEvents {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl DWebBrowserEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: DWebBrowserEvents_Impl, const OFFSET: isize>() -> DWebBrowserEvents_Vtbl {
Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<DWebBrowserEvents as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait DWebBrowserEvents2_Impl: Sized + super::super::System::Com::IDispatch_Impl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for DWebBrowserEvents2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl DWebBrowserEvents2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: DWebBrowserEvents2_Impl, const OFFSET: isize>() -> DWebBrowserEvents2_Vtbl {
Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<DWebBrowserEvents2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait Folder_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Title(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Application(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Parent(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn ParentFolder(&self) -> ::windows_core::Result<Folder>;
fn Items(&self) -> ::windows_core::Result<FolderItems>;
fn ParseName(&self, bname: &::windows_core::BSTR) -> ::windows_core::Result<FolderItem>;
fn NewFolder(&self, bname: &::windows_core::BSTR, voptions: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn MoveHere(&self, vitem: &super::super::System::Variant::VARIANT, voptions: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn CopyHere(&self, vitem: &super::super::System::Variant::VARIANT, voptions: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn GetDetailsOf(&self, vitem: &super::super::System::Variant::VARIANT, icolumn: i32) -> ::windows_core::Result<::windows_core::BSTR>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for Folder {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl Folder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>() -> Folder_Vtbl {
unsafe extern "system" fn Title<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Title() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Application<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Application() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Parent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Parent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ParentFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsf: *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.ParentFolder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsf, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Items<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Items() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ParseName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bname: ::std::mem::MaybeUninit<::windows_core::BSTR>, ppid: *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.ParseName(::core::mem::transmute(&bname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn NewFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bname: ::std::mem::MaybeUninit<::windows_core::BSTR>, voptions: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NewFolder(::core::mem::transmute(&bname), ::core::mem::transmute(&voptions)).into()
}
unsafe extern "system" fn MoveHere<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vitem: super::super::System::Variant::VARIANT, voptions: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MoveHere(::core::mem::transmute(&vitem), ::core::mem::transmute(&voptions)).into()
}
unsafe extern "system" fn CopyHere<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vitem: super::super::System::Variant::VARIANT, voptions: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CopyHere(::core::mem::transmute(&vitem), ::core::mem::transmute(&voptions)).into()
}
unsafe extern "system" fn GetDetailsOf<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vitem: super::super::System::Variant::VARIANT, icolumn: i32, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDetailsOf(::core::mem::transmute(&vitem), ::core::mem::transmute_copy(&icolumn)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Title: Title::<Identity, Impl, OFFSET>,
Application: Application::<Identity, Impl, OFFSET>,
Parent: Parent::<Identity, Impl, OFFSET>,
ParentFolder: ParentFolder::<Identity, Impl, OFFSET>,
Items: Items::<Identity, Impl, OFFSET>,
ParseName: ParseName::<Identity, Impl, OFFSET>,
NewFolder: NewFolder::<Identity, Impl, OFFSET>,
MoveHere: MoveHere::<Identity, Impl, OFFSET>,
CopyHere: CopyHere::<Identity, Impl, OFFSET>,
GetDetailsOf: GetDetailsOf::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<Folder as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait Folder2_Impl: Sized + Folder_Impl {
fn Self_(&self) -> ::windows_core::Result<FolderItem>;
fn OfflineStatus(&self) -> ::windows_core::Result<i32>;
fn Synchronize(&self) -> ::windows_core::Result<()>;
fn HaveToShowWebViewBarricade(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn DismissedWebViewBarricade(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for Folder2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl Folder2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder2_Impl, const OFFSET: isize>() -> Folder2_Vtbl {
unsafe extern "system" fn Self_<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppfi: *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.Self_() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppfi, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OfflineStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pul: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OfflineStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pul, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Synchronize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder2_Impl, const OFFSET: isize>(this: *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.Synchronize().into()
}
unsafe extern "system" fn HaveToShowWebViewBarricade<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbhavetoshowwebviewbarricade: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.HaveToShowWebViewBarricade() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbhavetoshowwebviewbarricade, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DismissedWebViewBarricade<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder2_Impl, const OFFSET: isize>(this: *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.DismissedWebViewBarricade().into()
}
Self {
base__: Folder_Vtbl::new::<Identity, Impl, OFFSET>(),
Self_: Self_::<Identity, Impl, OFFSET>,
OfflineStatus: OfflineStatus::<Identity, Impl, OFFSET>,
Synchronize: Synchronize::<Identity, Impl, OFFSET>,
HaveToShowWebViewBarricade: HaveToShowWebViewBarricade::<Identity, Impl, OFFSET>,
DismissedWebViewBarricade: DismissedWebViewBarricade::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<Folder2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<Folder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait Folder3_Impl: Sized + Folder2_Impl {
fn ShowWebViewBarricade(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetShowWebViewBarricade(&self, bshowwebviewbarricade: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for Folder3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl Folder3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder3_Impl, const OFFSET: isize>() -> Folder3_Vtbl {
unsafe extern "system" fn ShowWebViewBarricade<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbshowwebviewbarricade: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ShowWebViewBarricade() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbshowwebviewbarricade, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetShowWebViewBarricade<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: Folder3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bshowwebviewbarricade: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetShowWebViewBarricade(::core::mem::transmute_copy(&bshowwebviewbarricade)).into()
}
Self {
base__: Folder2_Vtbl::new::<Identity, Impl, OFFSET>(),
ShowWebViewBarricade: ShowWebViewBarricade::<Identity, Impl, OFFSET>,
SetShowWebViewBarricade: SetShowWebViewBarricade::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<Folder3 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<Folder as ::windows_core::ComInterface>::IID || iid == &<Folder2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait FolderItem_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Application(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Parent(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Name(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetName(&self, bs: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Path(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetLink(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn GetFolder(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn IsLink(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn IsFolder(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn IsFileSystem(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn IsBrowsable(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn ModifyDate(&self) -> ::windows_core::Result<f64>;
fn SetModifyDate(&self, dt: f64) -> ::windows_core::Result<()>;
fn Size(&self) -> ::windows_core::Result<i32>;
fn Type(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Verbs(&self) -> ::windows_core::Result<FolderItemVerbs>;
fn InvokeVerb(&self, vverb: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for FolderItem {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl FolderItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>() -> FolderItem_Vtbl {
unsafe extern "system" fn Application<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Application() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Parent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Parent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Name<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Name() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bs: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetName(::core::mem::transmute(&bs)).into()
}
unsafe extern "system" fn Path<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Path() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.GetLink() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.GetFolder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsLink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pb: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsLink() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pb, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pb: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsFolder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pb, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsFileSystem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pb: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsFileSystem() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pb, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsBrowsable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pb: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsBrowsable() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pb, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ModifyDate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdt: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ModifyDate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdt, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetModifyDate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dt: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetModifyDate(::core::mem::transmute_copy(&dt)).into()
}
unsafe extern "system" fn Size<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pul: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Size() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pul, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Type<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Type() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Verbs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppfic: *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.Verbs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppfic, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn InvokeVerb<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vverb: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeVerb(::core::mem::transmute(&vverb)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Application: Application::<Identity, Impl, OFFSET>,
Parent: Parent::<Identity, Impl, OFFSET>,
Name: Name::<Identity, Impl, OFFSET>,
SetName: SetName::<Identity, Impl, OFFSET>,
Path: Path::<Identity, Impl, OFFSET>,
GetLink: GetLink::<Identity, Impl, OFFSET>,
GetFolder: GetFolder::<Identity, Impl, OFFSET>,
IsLink: IsLink::<Identity, Impl, OFFSET>,
IsFolder: IsFolder::<Identity, Impl, OFFSET>,
IsFileSystem: IsFileSystem::<Identity, Impl, OFFSET>,
IsBrowsable: IsBrowsable::<Identity, Impl, OFFSET>,
ModifyDate: ModifyDate::<Identity, Impl, OFFSET>,
SetModifyDate: SetModifyDate::<Identity, Impl, OFFSET>,
Size: Size::<Identity, Impl, OFFSET>,
Type: Type::<Identity, Impl, OFFSET>,
Verbs: Verbs::<Identity, Impl, OFFSET>,
InvokeVerb: InvokeVerb::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<FolderItem as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait FolderItem2_Impl: Sized + FolderItem_Impl {
fn InvokeVerbEx(&self, vverb: &super::super::System::Variant::VARIANT, vargs: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn ExtendedProperty(&self, bstrpropname: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for FolderItem2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl FolderItem2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem2_Impl, const OFFSET: isize>() -> FolderItem2_Vtbl {
unsafe extern "system" fn InvokeVerbEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vverb: super::super::System::Variant::VARIANT, vargs: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeVerbEx(::core::mem::transmute(&vverb), ::core::mem::transmute(&vargs)).into()
}
unsafe extern "system" fn ExtendedProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrpropname: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvret: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ExtendedProperty(::core::mem::transmute(&bstrpropname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvret, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: FolderItem_Vtbl::new::<Identity, Impl, OFFSET>(),
InvokeVerbEx: InvokeVerbEx::<Identity, Impl, OFFSET>,
ExtendedProperty: ExtendedProperty::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<FolderItem2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<FolderItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait FolderItemVerb_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Application(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Parent(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Name(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn DoIt(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for FolderItemVerb {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl FolderItemVerb_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerb_Impl, const OFFSET: isize>() -> FolderItemVerb_Vtbl {
unsafe extern "system" fn Application<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerb_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Application() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Parent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerb_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Parent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Name<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerb_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Name() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DoIt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerb_Impl, const OFFSET: isize>(this: *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.DoIt().into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Application: Application::<Identity, Impl, OFFSET>,
Parent: Parent::<Identity, Impl, OFFSET>,
Name: Name::<Identity, Impl, OFFSET>,
DoIt: DoIt::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<FolderItemVerb as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait FolderItemVerbs_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> ::windows_core::Result<i32>;
fn Application(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Parent(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Item(&self, index: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<FolderItemVerb>;
fn _NewEnum(&self) -> ::windows_core::Result<::windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for FolderItemVerbs {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl FolderItemVerbs_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerbs_Impl, const OFFSET: isize>() -> FolderItemVerbs_Vtbl {
unsafe extern "system" fn Count<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerbs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plcount: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plcount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Application<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerbs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Application() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Parent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerbs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Parent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Item<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerbs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: super::super::System::Variant::VARIANT, ppid: *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.Item(::core::mem::transmute(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn _NewEnum<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItemVerbs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *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._NewEnum() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Count: Count::<Identity, Impl, OFFSET>,
Application: Application::<Identity, Impl, OFFSET>,
Parent: Parent::<Identity, Impl, OFFSET>,
Item: Item::<Identity, Impl, OFFSET>,
_NewEnum: _NewEnum::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<FolderItemVerbs as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait FolderItems_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> ::windows_core::Result<i32>;
fn Application(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Parent(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Item(&self, index: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<FolderItem>;
fn _NewEnum(&self) -> ::windows_core::Result<::windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for FolderItems {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl FolderItems_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems_Impl, const OFFSET: isize>() -> FolderItems_Vtbl {
unsafe extern "system" fn Count<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plcount: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plcount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Application<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Application() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Parent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Parent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Item<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: super::super::System::Variant::VARIANT, ppid: *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.Item(::core::mem::transmute(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn _NewEnum<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *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._NewEnum() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Count: Count::<Identity, Impl, OFFSET>,
Application: Application::<Identity, Impl, OFFSET>,
Parent: Parent::<Identity, Impl, OFFSET>,
Item: Item::<Identity, Impl, OFFSET>,
_NewEnum: _NewEnum::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<FolderItems as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait FolderItems2_Impl: Sized + FolderItems_Impl {
fn InvokeVerbEx(&self, vverb: &super::super::System::Variant::VARIANT, vargs: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for FolderItems2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl FolderItems2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems2_Impl, const OFFSET: isize>() -> FolderItems2_Vtbl {
unsafe extern "system" fn InvokeVerbEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vverb: super::super::System::Variant::VARIANT, vargs: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeVerbEx(::core::mem::transmute(&vverb), ::core::mem::transmute(&vargs)).into()
}
Self { base__: FolderItems_Vtbl::new::<Identity, Impl, OFFSET>(), InvokeVerbEx: InvokeVerbEx::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<FolderItems2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<FolderItems as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait FolderItems3_Impl: Sized + FolderItems2_Impl {
fn Filter(&self, grfflags: i32, bstrfilespec: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Verbs(&self) -> ::windows_core::Result<FolderItemVerbs>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for FolderItems3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl FolderItems3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems3_Impl, const OFFSET: isize>() -> FolderItems3_Vtbl {
unsafe extern "system" fn Filter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfflags: i32, bstrfilespec: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Filter(::core::mem::transmute_copy(&grfflags), ::core::mem::transmute(&bstrfilespec)).into()
}
unsafe extern "system" fn Verbs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: FolderItems3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppfic: *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.Verbs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppfic, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: FolderItems2_Vtbl::new::<Identity, Impl, OFFSET>(), Filter: Filter::<Identity, Impl, OFFSET>, Verbs: Verbs::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<FolderItems3 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<FolderItems as ::windows_core::ComInterface>::IID || iid == &<FolderItems2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IACList_Impl: Sized {
fn Expand(&self, pszexpand: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IACList {}
impl IACList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IACList_Impl, const OFFSET: isize>() -> IACList_Vtbl {
unsafe extern "system" fn Expand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IACList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszexpand: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Expand(::core::mem::transmute(&pszexpand)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Expand: Expand::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IACList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IACList2_Impl: Sized + IACList_Impl {
fn SetOptions(&self, dwflag: u32) -> ::windows_core::Result<()>;
fn GetOptions(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IACList2 {}
impl IACList2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IACList2_Impl, const OFFSET: isize>() -> IACList2_Vtbl {
unsafe extern "system" fn SetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IACList2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflag: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOptions(::core::mem::transmute_copy(&dwflag)).into()
}
unsafe extern "system" fn GetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IACList2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflag: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflag, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IACList_Vtbl::new::<Identity, Impl, OFFSET>(),
SetOptions: SetOptions::<Identity, Impl, OFFSET>,
GetOptions: GetOptions::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IACList2 as ::windows_core::ComInterface>::IID || iid == &<IACList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IAccessibilityDockingService_Impl: Sized {
fn GetAvailableSize(&self, hmonitor: super::super::Graphics::Gdi::HMONITOR, pcxfixed: *mut u32, pcymax: *mut u32) -> ::windows_core::Result<()>;
fn DockWindow(&self, hwnd: super::super::Foundation::HWND, hmonitor: super::super::Graphics::Gdi::HMONITOR, cyrequested: u32, pcallback: ::core::option::Option<&IAccessibilityDockingServiceCallback>) -> ::windows_core::Result<()>;
fn UndockWindow(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IAccessibilityDockingService {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IAccessibilityDockingService_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAccessibilityDockingService_Impl, const OFFSET: isize>() -> IAccessibilityDockingService_Vtbl {
unsafe extern "system" fn GetAvailableSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAccessibilityDockingService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hmonitor: super::super::Graphics::Gdi::HMONITOR, pcxfixed: *mut u32, pcymax: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAvailableSize(::core::mem::transmute_copy(&hmonitor), ::core::mem::transmute_copy(&pcxfixed), ::core::mem::transmute_copy(&pcymax)).into()
}
unsafe extern "system" fn DockWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAccessibilityDockingService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, hmonitor: super::super::Graphics::Gdi::HMONITOR, cyrequested: u32, pcallback: *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.DockWindow(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&hmonitor), ::core::mem::transmute_copy(&cyrequested), ::windows_core::from_raw_borrowed(&pcallback)).into()
}
unsafe extern "system" fn UndockWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAccessibilityDockingService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UndockWindow(::core::mem::transmute_copy(&hwnd)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetAvailableSize: GetAvailableSize::<Identity, Impl, OFFSET>,
DockWindow: DockWindow::<Identity, Impl, OFFSET>,
UndockWindow: UndockWindow::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAccessibilityDockingService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IAccessibilityDockingServiceCallback_Impl: Sized {
fn Undocked(&self, undockreason: UNDOCK_REASON) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAccessibilityDockingServiceCallback {}
impl IAccessibilityDockingServiceCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAccessibilityDockingServiceCallback_Impl, const OFFSET: isize>() -> IAccessibilityDockingServiceCallback_Vtbl {
unsafe extern "system" fn Undocked<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAccessibilityDockingServiceCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, undockreason: UNDOCK_REASON) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Undocked(::core::mem::transmute_copy(&undockreason)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Undocked: Undocked::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAccessibilityDockingServiceCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IAccessibleObject_Impl: Sized {
fn SetAccessibleName(&self, pszname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAccessibleObject {}
impl IAccessibleObject_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAccessibleObject_Impl, const OFFSET: isize>() -> IAccessibleObject_Vtbl {
unsafe extern "system" fn SetAccessibleName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAccessibleObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAccessibleName(::core::mem::transmute(&pszname)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetAccessibleName: SetAccessibleName::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAccessibleObject as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IActionProgress_Impl: Sized {
fn Begin(&self, action: SPACTION, flags: u32) -> ::windows_core::Result<()>;
fn UpdateProgress(&self, ulcompleted: u64, ultotal: u64) -> ::windows_core::Result<()>;
fn UpdateText(&self, sptext: SPTEXT, psztext: &::windows_core::PCWSTR, fmaycompact: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn QueryCancel(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn ResetCancel(&self) -> ::windows_core::Result<()>;
fn End(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IActionProgress {}
#[cfg(feature = "Win32_Foundation")]
impl IActionProgress_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IActionProgress_Impl, const OFFSET: isize>() -> IActionProgress_Vtbl {
unsafe extern "system" fn Begin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IActionProgress_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, action: SPACTION, flags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Begin(::core::mem::transmute_copy(&action), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn UpdateProgress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IActionProgress_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcompleted: u64, ultotal: u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateProgress(::core::mem::transmute_copy(&ulcompleted), ::core::mem::transmute_copy(&ultotal)).into()
}
unsafe extern "system" fn UpdateText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IActionProgress_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sptext: SPTEXT, psztext: ::windows_core::PCWSTR, fmaycompact: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateText(::core::mem::transmute_copy(&sptext), ::core::mem::transmute(&psztext), ::core::mem::transmute_copy(&fmaycompact)).into()
}
unsafe extern "system" fn QueryCancel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IActionProgress_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfcancelled: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryCancel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfcancelled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ResetCancel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IActionProgress_Impl, const OFFSET: isize>(this: *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.ResetCancel().into()
}
unsafe extern "system" fn End<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IActionProgress_Impl, const OFFSET: isize>(this: *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.End().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Begin: Begin::<Identity, Impl, OFFSET>,
UpdateProgress: UpdateProgress::<Identity, Impl, OFFSET>,
UpdateText: UpdateText::<Identity, Impl, OFFSET>,
QueryCancel: QueryCancel::<Identity, Impl, OFFSET>,
ResetCancel: ResetCancel::<Identity, Impl, OFFSET>,
End: End::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IActionProgress as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IActionProgressDialog_Impl: Sized {
fn Initialize(&self, flags: u32, psztitle: &::windows_core::PCWSTR, pszcancel: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn Stop(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IActionProgressDialog {}
impl IActionProgressDialog_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IActionProgressDialog_Impl, const OFFSET: isize>() -> IActionProgressDialog_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IActionProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, psztitle: ::windows_core::PCWSTR, pszcancel: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&psztitle), ::core::mem::transmute(&pszcancel)).into()
}
unsafe extern "system" fn Stop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IActionProgressDialog_Impl, const OFFSET: isize>(this: *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.Stop().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
Stop: Stop::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IActionProgressDialog as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IAppActivationUIInfo_Impl: Sized {
fn GetMonitor(&self) -> ::windows_core::Result<super::super::Graphics::Gdi::HMONITOR>;
fn GetInvokePoint(&self) -> ::windows_core::Result<super::super::Foundation::POINT>;
fn GetShowCommand(&self) -> ::windows_core::Result<i32>;
fn GetShowUI(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn GetKeyState(&self) -> ::windows_core::Result<u32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IAppActivationUIInfo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IAppActivationUIInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppActivationUIInfo_Impl, const OFFSET: isize>() -> IAppActivationUIInfo_Vtbl {
unsafe extern "system" fn GetMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppActivationUIInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMonitor() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInvokePoint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppActivationUIInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInvokePoint() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetShowCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppActivationUIInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetShowCommand() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetShowUI<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppActivationUIInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetShowUI() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetKeyState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppActivationUIInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetKeyState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetMonitor: GetMonitor::<Identity, Impl, OFFSET>,
GetInvokePoint: GetInvokePoint::<Identity, Impl, OFFSET>,
GetShowCommand: GetShowCommand::<Identity, Impl, OFFSET>,
GetShowUI: GetShowUI::<Identity, Impl, OFFSET>,
GetKeyState: GetKeyState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAppActivationUIInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IAppPublisher_Impl: Sized {
fn GetNumberOfCategories(&self) -> ::windows_core::Result<u32>;
fn GetCategories(&self) -> ::windows_core::Result<APPCATEGORYINFOLIST>;
fn GetNumberOfApps(&self) -> ::windows_core::Result<u32>;
fn EnumApps(&self, pappcategoryid: *const ::windows_core::GUID) -> ::windows_core::Result<IEnumPublishedApps>;
}
impl ::windows_core::RuntimeName for IAppPublisher {}
impl IAppPublisher_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppPublisher_Impl, const OFFSET: isize>() -> IAppPublisher_Vtbl {
unsafe extern "system" fn GetNumberOfCategories<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppPublisher_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwcat: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOfCategories() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcat, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCategories<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppPublisher_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pappcategorylist: *mut APPCATEGORYINFOLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCategories() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pappcategorylist, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberOfApps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppPublisher_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwapps: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOfApps() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwapps, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumApps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppPublisher_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pappcategoryid: *const ::windows_core::GUID, ppepa: *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.EnumApps(::core::mem::transmute_copy(&pappcategoryid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppepa, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNumberOfCategories: GetNumberOfCategories::<Identity, Impl, OFFSET>,
GetCategories: GetCategories::<Identity, Impl, OFFSET>,
GetNumberOfApps: GetNumberOfApps::<Identity, Impl, OFFSET>,
EnumApps: EnumApps::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAppPublisher as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IAppVisibility_Impl: Sized {
fn GetAppVisibilityOnMonitor(&self, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::Result<MONITOR_APP_VISIBILITY>;
fn IsLauncherVisible(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn Advise(&self, pcallback: ::core::option::Option<&IAppVisibilityEvents>) -> ::windows_core::Result<u32>;
fn Unadvise(&self, dwcookie: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IAppVisibility {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IAppVisibility_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppVisibility_Impl, const OFFSET: isize>() -> IAppVisibility_Vtbl {
unsafe extern "system" fn GetAppVisibilityOnMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppVisibility_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hmonitor: super::super::Graphics::Gdi::HMONITOR, pmode: *mut MONITOR_APP_VISIBILITY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAppVisibilityOnMonitor(::core::mem::transmute_copy(&hmonitor)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsLauncherVisible<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppVisibility_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfvisible: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsLauncherVisible() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfvisible, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppVisibility_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcallback: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Advise(::windows_core::from_raw_borrowed(&pcallback)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Unadvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppVisibility_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Unadvise(::core::mem::transmute_copy(&dwcookie)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetAppVisibilityOnMonitor: GetAppVisibilityOnMonitor::<Identity, Impl, OFFSET>,
IsLauncherVisible: IsLauncherVisible::<Identity, Impl, OFFSET>,
Advise: Advise::<Identity, Impl, OFFSET>,
Unadvise: Unadvise::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAppVisibility as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IAppVisibilityEvents_Impl: Sized {
fn AppVisibilityOnMonitorChanged(&self, hmonitor: super::super::Graphics::Gdi::HMONITOR, previousmode: MONITOR_APP_VISIBILITY, currentmode: MONITOR_APP_VISIBILITY) -> ::windows_core::Result<()>;
fn LauncherVisibilityChange(&self, currentvisiblestate: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IAppVisibilityEvents {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IAppVisibilityEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppVisibilityEvents_Impl, const OFFSET: isize>() -> IAppVisibilityEvents_Vtbl {
unsafe extern "system" fn AppVisibilityOnMonitorChanged<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppVisibilityEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hmonitor: super::super::Graphics::Gdi::HMONITOR, previousmode: MONITOR_APP_VISIBILITY, currentmode: MONITOR_APP_VISIBILITY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppVisibilityOnMonitorChanged(::core::mem::transmute_copy(&hmonitor), ::core::mem::transmute_copy(&previousmode), ::core::mem::transmute_copy(&currentmode)).into()
}
unsafe extern "system" fn LauncherVisibilityChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAppVisibilityEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, currentvisiblestate: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LauncherVisibilityChange(::core::mem::transmute_copy(&currentvisiblestate)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AppVisibilityOnMonitorChanged: AppVisibilityOnMonitorChanged::<Identity, Impl, OFFSET>,
LauncherVisibilityChange: LauncherVisibilityChange::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAppVisibilityEvents as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IApplicationActivationManager_Impl: Sized {
fn ActivateApplication(&self, appusermodelid: &::windows_core::PCWSTR, arguments: &::windows_core::PCWSTR, options: ACTIVATEOPTIONS) -> ::windows_core::Result<u32>;
fn ActivateForFile(&self, appusermodelid: &::windows_core::PCWSTR, itemarray: ::core::option::Option<&IShellItemArray>, verb: &::windows_core::PCWSTR) -> ::windows_core::Result<u32>;
fn ActivateForProtocol(&self, appusermodelid: &::windows_core::PCWSTR, itemarray: ::core::option::Option<&IShellItemArray>) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IApplicationActivationManager {}
impl IApplicationActivationManager_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationActivationManager_Impl, const OFFSET: isize>() -> IApplicationActivationManager_Vtbl {
unsafe extern "system" fn ActivateApplication<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationActivationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appusermodelid: ::windows_core::PCWSTR, arguments: ::windows_core::PCWSTR, options: ACTIVATEOPTIONS, processid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ActivateApplication(::core::mem::transmute(&appusermodelid), ::core::mem::transmute(&arguments), ::core::mem::transmute_copy(&options)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(processid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ActivateForFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationActivationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appusermodelid: ::windows_core::PCWSTR, itemarray: *mut ::core::ffi::c_void, verb: ::windows_core::PCWSTR, processid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ActivateForFile(::core::mem::transmute(&appusermodelid), ::windows_core::from_raw_borrowed(&itemarray), ::core::mem::transmute(&verb)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(processid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ActivateForProtocol<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationActivationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appusermodelid: ::windows_core::PCWSTR, itemarray: *mut ::core::ffi::c_void, processid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ActivateForProtocol(::core::mem::transmute(&appusermodelid), ::windows_core::from_raw_borrowed(&itemarray)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(processid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ActivateApplication: ActivateApplication::<Identity, Impl, OFFSET>,
ActivateForFile: ActivateForFile::<Identity, Impl, OFFSET>,
ActivateForProtocol: ActivateForProtocol::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IApplicationActivationManager as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IApplicationAssociationRegistration_Impl: Sized {
fn QueryCurrentDefault(&self, pszquery: &::windows_core::PCWSTR, atquerytype: ASSOCIATIONTYPE, alquerylevel: ASSOCIATIONLEVEL) -> ::windows_core::Result<::windows_core::PWSTR>;
fn QueryAppIsDefault(&self, pszquery: &::windows_core::PCWSTR, atquerytype: ASSOCIATIONTYPE, alquerylevel: ASSOCIATIONLEVEL, pszappregistryname: &::windows_core::PCWSTR) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn QueryAppIsDefaultAll(&self, alquerylevel: ASSOCIATIONLEVEL, pszappregistryname: &::windows_core::PCWSTR) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn SetAppAsDefault(&self, pszappregistryname: &::windows_core::PCWSTR, pszset: &::windows_core::PCWSTR, atsettype: ASSOCIATIONTYPE) -> ::windows_core::Result<()>;
fn SetAppAsDefaultAll(&self, pszappregistryname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn ClearUserAssociations(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IApplicationAssociationRegistration {}
#[cfg(feature = "Win32_Foundation")]
impl IApplicationAssociationRegistration_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationAssociationRegistration_Impl, const OFFSET: isize>() -> IApplicationAssociationRegistration_Vtbl {
unsafe extern "system" fn QueryCurrentDefault<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationAssociationRegistration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszquery: ::windows_core::PCWSTR, atquerytype: ASSOCIATIONTYPE, alquerylevel: ASSOCIATIONLEVEL, ppszassociation: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryCurrentDefault(::core::mem::transmute(&pszquery), ::core::mem::transmute_copy(&atquerytype), ::core::mem::transmute_copy(&alquerylevel)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszassociation, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn QueryAppIsDefault<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationAssociationRegistration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszquery: ::windows_core::PCWSTR, atquerytype: ASSOCIATIONTYPE, alquerylevel: ASSOCIATIONLEVEL, pszappregistryname: ::windows_core::PCWSTR, pfdefault: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryAppIsDefault(::core::mem::transmute(&pszquery), ::core::mem::transmute_copy(&atquerytype), ::core::mem::transmute_copy(&alquerylevel), ::core::mem::transmute(&pszappregistryname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfdefault, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn QueryAppIsDefaultAll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationAssociationRegistration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, alquerylevel: ASSOCIATIONLEVEL, pszappregistryname: ::windows_core::PCWSTR, pfdefault: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryAppIsDefaultAll(::core::mem::transmute_copy(&alquerylevel), ::core::mem::transmute(&pszappregistryname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfdefault, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAppAsDefault<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationAssociationRegistration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszappregistryname: ::windows_core::PCWSTR, pszset: ::windows_core::PCWSTR, atsettype: ASSOCIATIONTYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAppAsDefault(::core::mem::transmute(&pszappregistryname), ::core::mem::transmute(&pszset), ::core::mem::transmute_copy(&atsettype)).into()
}
unsafe extern "system" fn SetAppAsDefaultAll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationAssociationRegistration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszappregistryname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAppAsDefaultAll(::core::mem::transmute(&pszappregistryname)).into()
}
unsafe extern "system" fn ClearUserAssociations<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationAssociationRegistration_Impl, const OFFSET: isize>(this: *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.ClearUserAssociations().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
QueryCurrentDefault: QueryCurrentDefault::<Identity, Impl, OFFSET>,
QueryAppIsDefault: QueryAppIsDefault::<Identity, Impl, OFFSET>,
QueryAppIsDefaultAll: QueryAppIsDefaultAll::<Identity, Impl, OFFSET>,
SetAppAsDefault: SetAppAsDefault::<Identity, Impl, OFFSET>,
SetAppAsDefaultAll: SetAppAsDefaultAll::<Identity, Impl, OFFSET>,
ClearUserAssociations: ClearUserAssociations::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IApplicationAssociationRegistration as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IApplicationAssociationRegistrationUI_Impl: Sized {
fn LaunchAdvancedAssociationUI(&self, pszappregistryname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IApplicationAssociationRegistrationUI {}
impl IApplicationAssociationRegistrationUI_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationAssociationRegistrationUI_Impl, const OFFSET: isize>() -> IApplicationAssociationRegistrationUI_Vtbl {
unsafe extern "system" fn LaunchAdvancedAssociationUI<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationAssociationRegistrationUI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszappregistryname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LaunchAdvancedAssociationUI(::core::mem::transmute(&pszappregistryname)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
LaunchAdvancedAssociationUI: LaunchAdvancedAssociationUI::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IApplicationAssociationRegistrationUI as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
pub trait IApplicationDesignModeSettings_Impl: Sized {
fn SetNativeDisplaySize(&self, nativedisplaysizepixels: &super::super::Foundation::SIZE) -> ::windows_core::Result<()>;
fn SetScaleFactor(&self, scalefactor: Common::DEVICE_SCALE_FACTOR) -> ::windows_core::Result<()>;
fn SetApplicationViewState(&self, viewstate: APPLICATION_VIEW_STATE) -> ::windows_core::Result<()>;
fn ComputeApplicationSize(&self) -> ::windows_core::Result<super::super::Foundation::SIZE>;
fn IsApplicationViewStateSupported(&self, viewstate: APPLICATION_VIEW_STATE, nativedisplaysizepixels: &super::super::Foundation::SIZE, scalefactor: Common::DEVICE_SCALE_FACTOR) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn TriggerEdgeGesture(&self, edgegesturekind: EDGE_GESTURE_KIND) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IApplicationDesignModeSettings {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl IApplicationDesignModeSettings_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings_Impl, const OFFSET: isize>() -> IApplicationDesignModeSettings_Vtbl {
unsafe extern "system" fn SetNativeDisplaySize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nativedisplaysizepixels: super::super::Foundation::SIZE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNativeDisplaySize(::core::mem::transmute(&nativedisplaysizepixels)).into()
}
unsafe extern "system" fn SetScaleFactor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scalefactor: Common::DEVICE_SCALE_FACTOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScaleFactor(::core::mem::transmute_copy(&scalefactor)).into()
}
unsafe extern "system" fn SetApplicationViewState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, viewstate: APPLICATION_VIEW_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetApplicationViewState(::core::mem::transmute_copy(&viewstate)).into()
}
unsafe extern "system" fn ComputeApplicationSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, applicationsizepixels: *mut super::super::Foundation::SIZE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ComputeApplicationSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(applicationsizepixels, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsApplicationViewStateSupported<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, viewstate: APPLICATION_VIEW_STATE, nativedisplaysizepixels: super::super::Foundation::SIZE, scalefactor: Common::DEVICE_SCALE_FACTOR, supported: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsApplicationViewStateSupported(::core::mem::transmute_copy(&viewstate), ::core::mem::transmute(&nativedisplaysizepixels), ::core::mem::transmute_copy(&scalefactor)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(supported, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TriggerEdgeGesture<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, edgegesturekind: EDGE_GESTURE_KIND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TriggerEdgeGesture(::core::mem::transmute_copy(&edgegesturekind)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetNativeDisplaySize: SetNativeDisplaySize::<Identity, Impl, OFFSET>,
SetScaleFactor: SetScaleFactor::<Identity, Impl, OFFSET>,
SetApplicationViewState: SetApplicationViewState::<Identity, Impl, OFFSET>,
ComputeApplicationSize: ComputeApplicationSize::<Identity, Impl, OFFSET>,
IsApplicationViewStateSupported: IsApplicationViewStateSupported::<Identity, Impl, OFFSET>,
TriggerEdgeGesture: TriggerEdgeGesture::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IApplicationDesignModeSettings as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
pub trait IApplicationDesignModeSettings2_Impl: Sized + IApplicationDesignModeSettings_Impl {
fn SetNativeDisplayOrientation(&self, nativedisplayorientation: NATIVE_DISPLAY_ORIENTATION) -> ::windows_core::Result<()>;
fn SetApplicationViewOrientation(&self, vieworientation: APPLICATION_VIEW_ORIENTATION) -> ::windows_core::Result<()>;
fn SetAdjacentDisplayEdges(&self, adjacentdisplayedges: ADJACENT_DISPLAY_EDGES) -> ::windows_core::Result<()>;
fn SetIsOnLockScreen(&self, isonlockscreen: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetApplicationViewMinWidth(&self, viewminwidth: APPLICATION_VIEW_MIN_WIDTH) -> ::windows_core::Result<()>;
fn GetApplicationSizeBounds(&self, minapplicationsizepixels: *mut super::super::Foundation::SIZE, maxapplicationsizepixels: *mut super::super::Foundation::SIZE) -> ::windows_core::Result<()>;
fn GetApplicationViewOrientation(&self, applicationsizepixels: &super::super::Foundation::SIZE) -> ::windows_core::Result<APPLICATION_VIEW_ORIENTATION>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IApplicationDesignModeSettings2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl IApplicationDesignModeSettings2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings2_Impl, const OFFSET: isize>() -> IApplicationDesignModeSettings2_Vtbl {
unsafe extern "system" fn SetNativeDisplayOrientation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nativedisplayorientation: NATIVE_DISPLAY_ORIENTATION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNativeDisplayOrientation(::core::mem::transmute_copy(&nativedisplayorientation)).into()
}
unsafe extern "system" fn SetApplicationViewOrientation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vieworientation: APPLICATION_VIEW_ORIENTATION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetApplicationViewOrientation(::core::mem::transmute_copy(&vieworientation)).into()
}
unsafe extern "system" fn SetAdjacentDisplayEdges<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, adjacentdisplayedges: ADJACENT_DISPLAY_EDGES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAdjacentDisplayEdges(::core::mem::transmute_copy(&adjacentdisplayedges)).into()
}
unsafe extern "system" fn SetIsOnLockScreen<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, isonlockscreen: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIsOnLockScreen(::core::mem::transmute_copy(&isonlockscreen)).into()
}
unsafe extern "system" fn SetApplicationViewMinWidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, viewminwidth: APPLICATION_VIEW_MIN_WIDTH) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetApplicationViewMinWidth(::core::mem::transmute_copy(&viewminwidth)).into()
}
unsafe extern "system" fn GetApplicationSizeBounds<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, minapplicationsizepixels: *mut super::super::Foundation::SIZE, maxapplicationsizepixels: *mut super::super::Foundation::SIZE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetApplicationSizeBounds(::core::mem::transmute_copy(&minapplicationsizepixels), ::core::mem::transmute_copy(&maxapplicationsizepixels)).into()
}
unsafe extern "system" fn GetApplicationViewOrientation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDesignModeSettings2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, applicationsizepixels: super::super::Foundation::SIZE, vieworientation: *mut APPLICATION_VIEW_ORIENTATION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetApplicationViewOrientation(::core::mem::transmute(&applicationsizepixels)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(vieworientation, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IApplicationDesignModeSettings_Vtbl::new::<Identity, Impl, OFFSET>(),
SetNativeDisplayOrientation: SetNativeDisplayOrientation::<Identity, Impl, OFFSET>,
SetApplicationViewOrientation: SetApplicationViewOrientation::<Identity, Impl, OFFSET>,
SetAdjacentDisplayEdges: SetAdjacentDisplayEdges::<Identity, Impl, OFFSET>,
SetIsOnLockScreen: SetIsOnLockScreen::<Identity, Impl, OFFSET>,
SetApplicationViewMinWidth: SetApplicationViewMinWidth::<Identity, Impl, OFFSET>,
GetApplicationSizeBounds: GetApplicationSizeBounds::<Identity, Impl, OFFSET>,
GetApplicationViewOrientation: GetApplicationViewOrientation::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IApplicationDesignModeSettings2 as ::windows_core::ComInterface>::IID || iid == &<IApplicationDesignModeSettings as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IApplicationDestinations_Impl: Sized {
fn SetAppID(&self, pszappid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn RemoveDestination(&self, punk: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn RemoveAllDestinations(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IApplicationDestinations {}
impl IApplicationDestinations_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDestinations_Impl, const OFFSET: isize>() -> IApplicationDestinations_Vtbl {
unsafe extern "system" fn SetAppID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDestinations_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszappid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAppID(::core::mem::transmute(&pszappid)).into()
}
unsafe extern "system" fn RemoveDestination<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDestinations_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *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.RemoveDestination(::windows_core::from_raw_borrowed(&punk)).into()
}
unsafe extern "system" fn RemoveAllDestinations<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDestinations_Impl, const OFFSET: isize>(this: *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.RemoveAllDestinations().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAppID: SetAppID::<Identity, Impl, OFFSET>,
RemoveDestination: RemoveDestination::<Identity, Impl, OFFSET>,
RemoveAllDestinations: RemoveAllDestinations::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IApplicationDestinations as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IApplicationDocumentLists_Impl: Sized {
fn SetAppID(&self, pszappid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetList(&self, listtype: APPDOCLISTTYPE, citemsdesired: u32, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IApplicationDocumentLists {}
impl IApplicationDocumentLists_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDocumentLists_Impl, const OFFSET: isize>() -> IApplicationDocumentLists_Vtbl {
unsafe extern "system" fn SetAppID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDocumentLists_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszappid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAppID(::core::mem::transmute(&pszappid)).into()
}
unsafe extern "system" fn GetList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IApplicationDocumentLists_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, listtype: APPDOCLISTTYPE, citemsdesired: u32, riid: *const ::windows_core::GUID, ppv: *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();
this.GetList(::core::mem::transmute_copy(&listtype), ::core::mem::transmute_copy(&citemsdesired), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAppID: SetAppID::<Identity, Impl, OFFSET>,
GetList: GetList::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IApplicationDocumentLists as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IAssocHandler_Impl: Sized {
fn GetName(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetUIName(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetIconLocation(&self, ppszpath: *mut ::windows_core::PWSTR, pindex: *mut i32) -> ::windows_core::Result<()>;
fn IsRecommended(&self) -> ::windows_core::HRESULT;
fn MakeDefault(&self, pszdescription: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn Invoke(&self, pdo: ::core::option::Option<&super::super::System::Com::IDataObject>) -> ::windows_core::Result<()>;
fn CreateInvoker(&self, pdo: ::core::option::Option<&super::super::System::Com::IDataObject>) -> ::windows_core::Result<IAssocHandlerInvoker>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IAssocHandler {}
#[cfg(feature = "Win32_System_Com")]
impl IAssocHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandler_Impl, const OFFSET: isize>() -> IAssocHandler_Vtbl {
unsafe extern "system" fn GetName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsz: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsz, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetUIName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsz: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetUIName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsz, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetIconLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszpath: *mut ::windows_core::PWSTR, pindex: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIconLocation(::core::mem::transmute_copy(&ppszpath), ::core::mem::transmute_copy(&pindex)).into()
}
unsafe extern "system" fn IsRecommended<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandler_Impl, const OFFSET: isize>(this: *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.IsRecommended()
}
unsafe extern "system" fn MakeDefault<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdescription: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MakeDefault(::core::mem::transmute(&pszdescription)).into()
}
unsafe extern "system" fn Invoke<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdo: *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.Invoke(::windows_core::from_raw_borrowed(&pdo)).into()
}
unsafe extern "system" fn CreateInvoker<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdo: *mut ::core::ffi::c_void, ppinvoker: *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.CreateInvoker(::windows_core::from_raw_borrowed(&pdo)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppinvoker, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetName: GetName::<Identity, Impl, OFFSET>,
GetUIName: GetUIName::<Identity, Impl, OFFSET>,
GetIconLocation: GetIconLocation::<Identity, Impl, OFFSET>,
IsRecommended: IsRecommended::<Identity, Impl, OFFSET>,
MakeDefault: MakeDefault::<Identity, Impl, OFFSET>,
Invoke: Invoke::<Identity, Impl, OFFSET>,
CreateInvoker: CreateInvoker::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAssocHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IAssocHandlerInvoker_Impl: Sized {
fn SupportsSelection(&self) -> ::windows_core::Result<()>;
fn Invoke(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAssocHandlerInvoker {}
impl IAssocHandlerInvoker_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandlerInvoker_Impl, const OFFSET: isize>() -> IAssocHandlerInvoker_Vtbl {
unsafe extern "system" fn SupportsSelection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandlerInvoker_Impl, const OFFSET: isize>(this: *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.SupportsSelection().into()
}
unsafe extern "system" fn Invoke<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAssocHandlerInvoker_Impl, const OFFSET: isize>(this: *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.Invoke().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SupportsSelection: SupportsSelection::<Identity, Impl, OFFSET>,
Invoke: Invoke::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAssocHandlerInvoker as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAttachmentExecute_Impl: Sized {
fn SetClientTitle(&self, psztitle: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetClientGuid(&self, guid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn SetLocalPath(&self, pszlocalpath: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetFileName(&self, pszfilename: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetSource(&self, pszsource: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetReferrer(&self, pszreferrer: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn CheckPolicy(&self) -> ::windows_core::Result<()>;
fn Prompt(&self, hwnd: super::super::Foundation::HWND, prompt: ATTACHMENT_PROMPT) -> ::windows_core::Result<ATTACHMENT_ACTION>;
fn Save(&self) -> ::windows_core::Result<()>;
fn Execute(&self, hwnd: super::super::Foundation::HWND, pszverb: &::windows_core::PCWSTR, phprocess: *mut super::super::Foundation::HANDLE) -> ::windows_core::Result<()>;
fn SaveWithUI(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn ClearClientState(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAttachmentExecute {}
#[cfg(feature = "Win32_Foundation")]
impl IAttachmentExecute_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>() -> IAttachmentExecute_Vtbl {
unsafe extern "system" fn SetClientTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psztitle: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetClientTitle(::core::mem::transmute(&psztitle)).into()
}
unsafe extern "system" fn SetClientGuid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetClientGuid(::core::mem::transmute_copy(&guid)).into()
}
unsafe extern "system" fn SetLocalPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszlocalpath: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLocalPath(::core::mem::transmute(&pszlocalpath)).into()
}
unsafe extern "system" fn SetFileName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfilename: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFileName(::core::mem::transmute(&pszfilename)).into()
}
unsafe extern "system" fn SetSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszsource: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSource(::core::mem::transmute(&pszsource)).into()
}
unsafe extern "system" fn SetReferrer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszreferrer: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetReferrer(::core::mem::transmute(&pszreferrer)).into()
}
unsafe extern "system" fn CheckPolicy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *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.CheckPolicy().into()
}
unsafe extern "system" fn Prompt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, prompt: ATTACHMENT_PROMPT, paction: *mut ATTACHMENT_ACTION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Prompt(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&prompt)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(paction, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Save<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *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.Save().into()
}
unsafe extern "system" fn Execute<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, pszverb: ::windows_core::PCWSTR, phprocess: *mut super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Execute(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute(&pszverb), ::core::mem::transmute_copy(&phprocess)).into()
}
unsafe extern "system" fn SaveWithUI<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SaveWithUI(::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn ClearClientState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAttachmentExecute_Impl, const OFFSET: isize>(this: *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.ClearClientState().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetClientTitle: SetClientTitle::<Identity, Impl, OFFSET>,
SetClientGuid: SetClientGuid::<Identity, Impl, OFFSET>,
SetLocalPath: SetLocalPath::<Identity, Impl, OFFSET>,
SetFileName: SetFileName::<Identity, Impl, OFFSET>,
SetSource: SetSource::<Identity, Impl, OFFSET>,
SetReferrer: SetReferrer::<Identity, Impl, OFFSET>,
CheckPolicy: CheckPolicy::<Identity, Impl, OFFSET>,
Prompt: Prompt::<Identity, Impl, OFFSET>,
Save: Save::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
SaveWithUI: SaveWithUI::<Identity, Impl, OFFSET>,
ClearClientState: ClearClientState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAttachmentExecute as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAutoComplete_Impl: Sized {
fn Init(&self, hwndedit: super::super::Foundation::HWND, punkacl: ::core::option::Option<&::windows_core::IUnknown>, pwszregkeypath: &::windows_core::PCWSTR, pwszquickcomplete: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn Enable(&self, fenable: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAutoComplete {}
#[cfg(feature = "Win32_Foundation")]
impl IAutoComplete_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAutoComplete_Impl, const OFFSET: isize>() -> IAutoComplete_Vtbl {
unsafe extern "system" fn Init<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAutoComplete_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndedit: super::super::Foundation::HWND, punkacl: *mut ::core::ffi::c_void, pwszregkeypath: ::windows_core::PCWSTR, pwszquickcomplete: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Init(::core::mem::transmute_copy(&hwndedit), ::windows_core::from_raw_borrowed(&punkacl), ::core::mem::transmute(&pwszregkeypath), ::core::mem::transmute(&pwszquickcomplete)).into()
}
unsafe extern "system" fn Enable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAutoComplete_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fenable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Enable(::core::mem::transmute_copy(&fenable)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Init: Init::<Identity, Impl, OFFSET>, Enable: Enable::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAutoComplete as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAutoComplete2_Impl: Sized + IAutoComplete_Impl {
fn SetOptions(&self, dwflag: u32) -> ::windows_core::Result<()>;
fn GetOptions(&self) -> ::windows_core::Result<u32>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAutoComplete2 {}
#[cfg(feature = "Win32_Foundation")]
impl IAutoComplete2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAutoComplete2_Impl, const OFFSET: isize>() -> IAutoComplete2_Vtbl {
unsafe extern "system" fn SetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAutoComplete2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflag: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOptions(::core::mem::transmute_copy(&dwflag)).into()
}
unsafe extern "system" fn GetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAutoComplete2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflag: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflag, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IAutoComplete_Vtbl::new::<Identity, Impl, OFFSET>(),
SetOptions: SetOptions::<Identity, Impl, OFFSET>,
GetOptions: GetOptions::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAutoComplete2 as ::windows_core::ComInterface>::IID || iid == &<IAutoComplete as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IAutoCompleteDropDown_Impl: Sized {
fn GetDropDownStatus(&self, pdwflags: *mut u32, ppwszstring: *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
fn ResetEnumerator(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAutoCompleteDropDown {}
impl IAutoCompleteDropDown_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAutoCompleteDropDown_Impl, const OFFSET: isize>() -> IAutoCompleteDropDown_Vtbl {
unsafe extern "system" fn GetDropDownStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAutoCompleteDropDown_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32, ppwszstring: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDropDownStatus(::core::mem::transmute_copy(&pdwflags), ::core::mem::transmute_copy(&ppwszstring)).into()
}
unsafe extern "system" fn ResetEnumerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAutoCompleteDropDown_Impl, const OFFSET: isize>(this: *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.ResetEnumerator().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDropDownStatus: GetDropDownStatus::<Identity, Impl, OFFSET>,
ResetEnumerator: ResetEnumerator::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAutoCompleteDropDown as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IBandHost_Impl: Sized {
fn CreateBand(&self, rclsidband: *const ::windows_core::GUID, favailable: super::super::Foundation::BOOL, fvisible: super::super::Foundation::BOOL, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn SetBandAvailability(&self, rclsidband: *const ::windows_core::GUID, favailable: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn DestroyBand(&self, rclsidband: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IBandHost {}
#[cfg(feature = "Win32_Foundation")]
impl IBandHost_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandHost_Impl, const OFFSET: isize>() -> IBandHost_Vtbl {
unsafe extern "system" fn CreateBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rclsidband: *const ::windows_core::GUID, favailable: super::super::Foundation::BOOL, fvisible: super::super::Foundation::BOOL, riid: *const ::windows_core::GUID, ppv: *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();
this.CreateBand(::core::mem::transmute_copy(&rclsidband), ::core::mem::transmute_copy(&favailable), ::core::mem::transmute_copy(&fvisible), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn SetBandAvailability<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rclsidband: *const ::windows_core::GUID, favailable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBandAvailability(::core::mem::transmute_copy(&rclsidband), ::core::mem::transmute_copy(&favailable)).into()
}
unsafe extern "system" fn DestroyBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rclsidband: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DestroyBand(::core::mem::transmute_copy(&rclsidband)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CreateBand: CreateBand::<Identity, Impl, OFFSET>,
SetBandAvailability: SetBandAvailability::<Identity, Impl, OFFSET>,
DestroyBand: DestroyBand::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBandHost as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Ole")]
pub trait IBandSite_Impl: Sized {
fn AddBand(&self, punk: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn EnumBands(&self, uband: u32) -> ::windows_core::Result<u32>;
fn QueryBand(&self, dwbandid: u32, ppstb: *mut ::core::option::Option<IDeskBand>, pdwstate: *mut u32, pszname: ::windows_core::PWSTR, cchname: i32) -> ::windows_core::Result<()>;
fn SetBandState(&self, dwbandid: u32, dwmask: u32, dwstate: u32) -> ::windows_core::Result<()>;
fn RemoveBand(&self, dwbandid: u32) -> ::windows_core::Result<()>;
fn GetBandObject(&self, dwbandid: u32, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn SetBandSiteInfo(&self, pbsinfo: *const BANDSITEINFO) -> ::windows_core::Result<()>;
fn GetBandSiteInfo(&self, pbsinfo: *mut BANDSITEINFO) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Ole")]
impl ::windows_core::RuntimeName for IBandSite {}
#[cfg(feature = "Win32_System_Ole")]
impl IBandSite_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandSite_Impl, const OFFSET: isize>() -> IBandSite_Vtbl {
unsafe extern "system" fn AddBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *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.AddBand(::windows_core::from_raw_borrowed(&punk)).into()
}
unsafe extern "system" fn EnumBands<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uband: u32, pdwbandid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumBands(::core::mem::transmute_copy(&uband)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwbandid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn QueryBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwbandid: u32, ppstb: *mut *mut ::core::ffi::c_void, pdwstate: *mut u32, pszname: ::windows_core::PWSTR, cchname: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryBand(::core::mem::transmute_copy(&dwbandid), ::core::mem::transmute_copy(&ppstb), ::core::mem::transmute_copy(&pdwstate), ::core::mem::transmute_copy(&pszname), ::core::mem::transmute_copy(&cchname)).into()
}
unsafe extern "system" fn SetBandState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwbandid: u32, dwmask: u32, dwstate: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBandState(::core::mem::transmute_copy(&dwbandid), ::core::mem::transmute_copy(&dwmask), ::core::mem::transmute_copy(&dwstate)).into()
}
unsafe extern "system" fn RemoveBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwbandid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBand(::core::mem::transmute_copy(&dwbandid)).into()
}
unsafe extern "system" fn GetBandObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwbandid: u32, riid: *const ::windows_core::GUID, ppv: *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();
this.GetBandObject(::core::mem::transmute_copy(&dwbandid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn SetBandSiteInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbsinfo: *const BANDSITEINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBandSiteInfo(::core::mem::transmute_copy(&pbsinfo)).into()
}
unsafe extern "system" fn GetBandSiteInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBandSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbsinfo: *mut BANDSITEINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBandSiteInfo(::core::mem::transmute_copy(&pbsinfo)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AddBand: AddBand::<Identity, Impl, OFFSET>,
EnumBands: EnumBands::<Identity, Impl, OFFSET>,
QueryBand: QueryBand::<Identity, Impl, OFFSET>,
SetBandState: SetBandState::<Identity, Impl, OFFSET>,
RemoveBand: RemoveBand::<Identity, Impl, OFFSET>,
GetBandObject: GetBandObject::<Identity, Impl, OFFSET>,
SetBandSiteInfo: SetBandSiteInfo::<Identity, Impl, OFFSET>,
GetBandSiteInfo: GetBandSiteInfo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBandSite as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IBannerNotificationHandler_Impl: Sized {
fn OnBannerEvent(&self, notification: *const BANNER_NOTIFICATION) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBannerNotificationHandler {}
impl IBannerNotificationHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBannerNotificationHandler_Impl, const OFFSET: isize>() -> IBannerNotificationHandler_Vtbl {
unsafe extern "system" fn OnBannerEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBannerNotificationHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, notification: *const BANNER_NOTIFICATION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnBannerEvent(::core::mem::transmute_copy(&notification)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), OnBannerEvent: OnBannerEvent::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBannerNotificationHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
pub trait IBanneredBar_Impl: Sized {
fn SetIconSize(&self, iicon: u32) -> ::windows_core::Result<()>;
fn GetIconSize(&self) -> ::windows_core::Result<u32>;
fn SetBitmap(&self, hbitmap: super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::Result<()>;
fn GetBitmap(&self) -> ::windows_core::Result<super::super::Graphics::Gdi::HBITMAP>;
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::windows_core::RuntimeName for IBanneredBar {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl IBanneredBar_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBanneredBar_Impl, const OFFSET: isize>() -> IBanneredBar_Vtbl {
unsafe extern "system" fn SetIconSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBanneredBar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iicon: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIconSize(::core::mem::transmute_copy(&iicon)).into()
}
unsafe extern "system" fn GetIconSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBanneredBar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piicon: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIconSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piicon, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBitmap<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBanneredBar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hbitmap: super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBitmap(::core::mem::transmute_copy(&hbitmap)).into()
}
unsafe extern "system" fn GetBitmap<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBanneredBar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phbitmap: *mut super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetBitmap() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phbitmap, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetIconSize: SetIconSize::<Identity, Impl, OFFSET>,
GetIconSize: GetIconSize::<Identity, Impl, OFFSET>,
SetBitmap: SetBitmap::<Identity, Impl, OFFSET>,
GetBitmap: GetBitmap::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBanneredBar as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IBrowserFrameOptions_Impl: Sized {
fn GetFrameOptions(&self, dwmask: u32) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IBrowserFrameOptions {}
impl IBrowserFrameOptions_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserFrameOptions_Impl, const OFFSET: isize>() -> IBrowserFrameOptions_Vtbl {
unsafe extern "system" fn GetFrameOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserFrameOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwmask: u32, pdwoptions: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFrameOptions(::core::mem::transmute_copy(&dwmask)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwoptions, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetFrameOptions: GetFrameOptions::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBrowserFrameOptions as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common"))]
pub trait IBrowserService_Impl: Sized {
fn GetParentSite(&self) -> ::windows_core::Result<super::super::System::Ole::IOleInPlaceSite>;
fn SetTitle(&self, psv: ::core::option::Option<&IShellView>, pszname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetTitle(&self, psv: ::core::option::Option<&IShellView>, pszname: ::windows_core::PWSTR, cchname: u32) -> ::windows_core::Result<()>;
fn GetOleObject(&self) -> ::windows_core::Result<super::super::System::Ole::IOleObject>;
fn GetTravelLog(&self) -> ::windows_core::Result<ITravelLog>;
fn ShowControlWindow(&self, id: u32, fshow: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn IsControlWindowShown(&self, id: u32) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn IEGetDisplayName(&self, pidl: *const Common::ITEMIDLIST, pwszname: ::windows_core::PWSTR, uflags: u32) -> ::windows_core::Result<()>;
fn IEParseDisplayName(&self, uicp: u32, pwszpath: &::windows_core::PCWSTR) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
fn DisplayParseError(&self, hres: ::windows_core::HRESULT, pwszpath: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn NavigateToPidl(&self, pidl: *const Common::ITEMIDLIST, grfhlnf: u32) -> ::windows_core::Result<()>;
fn SetNavigateState(&self, bnstate: BNSTATE) -> ::windows_core::Result<()>;
fn GetNavigateState(&self) -> ::windows_core::Result<BNSTATE>;
fn NotifyRedirect(&self, psv: ::core::option::Option<&IShellView>, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn UpdateWindowList(&self) -> ::windows_core::Result<()>;
fn UpdateBackForwardState(&self) -> ::windows_core::Result<()>;
fn SetFlags(&self, dwflags: u32, dwflagmask: u32) -> ::windows_core::Result<()>;
fn GetFlags(&self) -> ::windows_core::Result<u32>;
fn CanNavigateNow(&self) -> ::windows_core::Result<()>;
fn GetPidl(&self) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
fn SetReferrer(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn GetBrowserIndex(&self) -> u32;
fn GetBrowserByIndex(&self, dwid: u32) -> ::windows_core::Result<::windows_core::IUnknown>;
fn GetHistoryObject(&self, ppole: *mut ::core::option::Option<super::super::System::Ole::IOleObject>, pstm: *mut ::core::option::Option<super::super::System::Com::IStream>, ppbc: *mut ::core::option::Option<super::super::System::Com::IBindCtx>) -> ::windows_core::Result<()>;
fn SetHistoryObject(&self, pole: ::core::option::Option<&super::super::System::Ole::IOleObject>, fislocalanchor: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn CacheOLEServer(&self, pole: ::core::option::Option<&super::super::System::Ole::IOleObject>) -> ::windows_core::Result<()>;
fn GetSetCodePage(&self, pvarin: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn OnHttpEquiv(&self, psv: ::core::option::Option<&IShellView>, fdone: super::super::Foundation::BOOL, pvarargin: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn GetPalette(&self) -> ::windows_core::Result<super::super::Graphics::Gdi::HPALETTE>;
fn RegisterWindow(&self, fforceregister: super::super::Foundation::BOOL, swc: ShellWindowTypeConstants) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IBrowserService {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common"))]
impl IBrowserService_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>() -> IBrowserService_Vtbl {
unsafe extern "system" fn GetParentSite<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppipsite: *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.GetParentSite() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppipsite, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psv: *mut ::core::ffi::c_void, pszname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTitle(::windows_core::from_raw_borrowed(&psv), ::core::mem::transmute(&pszname)).into()
}
unsafe extern "system" fn GetTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psv: *mut ::core::ffi::c_void, pszname: ::windows_core::PWSTR, cchname: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTitle(::windows_core::from_raw_borrowed(&psv), ::core::mem::transmute_copy(&pszname), ::core::mem::transmute_copy(&cchname)).into()
}
unsafe extern "system" fn GetOleObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppobjv: *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.GetOleObject() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppobjv, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTravelLog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pptl: *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.GetTravelLog() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pptl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ShowControlWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, fshow: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowControlWindow(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&fshow)).into()
}
unsafe extern "system" fn IsControlWindowShown<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, pfshown: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsControlWindowShown(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfshown, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IEGetDisplayName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, pwszname: ::windows_core::PWSTR, uflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IEGetDisplayName(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&pwszname), ::core::mem::transmute_copy(&uflags)).into()
}
unsafe extern "system" fn IEParseDisplayName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uicp: u32, pwszpath: ::windows_core::PCWSTR, ppidlout: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IEParseDisplayName(::core::mem::transmute_copy(&uicp), ::core::mem::transmute(&pwszpath)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidlout, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisplayParseError<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hres: ::windows_core::HRESULT, pwszpath: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisplayParseError(::core::mem::transmute_copy(&hres), ::core::mem::transmute(&pwszpath)).into()
}
unsafe extern "system" fn NavigateToPidl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, grfhlnf: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NavigateToPidl(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&grfhlnf)).into()
}
unsafe extern "system" fn SetNavigateState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bnstate: BNSTATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNavigateState(::core::mem::transmute_copy(&bnstate)).into()
}
unsafe extern "system" fn GetNavigateState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbnstate: *mut BNSTATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNavigateState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbnstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn NotifyRedirect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psv: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, pfdidbrowse: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.NotifyRedirect(::windows_core::from_raw_borrowed(&psv), ::core::mem::transmute_copy(&pidl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfdidbrowse, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn UpdateWindowList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *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.UpdateWindowList().into()
}
unsafe extern "system" fn UpdateBackForwardState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *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.UpdateBackForwardState().into()
}
unsafe extern "system" fn SetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, dwflagmask: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFlags(::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&dwflagmask)).into()
}
unsafe extern "system" fn GetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CanNavigateNow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *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.CanNavigateNow().into()
}
unsafe extern "system" fn GetPidl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidl: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPidl() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetReferrer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetReferrer(::core::mem::transmute_copy(&pidl)).into()
}
unsafe extern "system" fn GetBrowserIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBrowserIndex()
}
unsafe extern "system" fn GetBrowserByIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwid: u32, ppunk: *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.GetBrowserByIndex(::core::mem::transmute_copy(&dwid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetHistoryObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppole: *mut *mut ::core::ffi::c_void, pstm: *mut *mut ::core::ffi::c_void, ppbc: *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();
this.GetHistoryObject(::core::mem::transmute_copy(&ppole), ::core::mem::transmute_copy(&pstm), ::core::mem::transmute_copy(&ppbc)).into()
}
unsafe extern "system" fn SetHistoryObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pole: *mut ::core::ffi::c_void, fislocalanchor: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHistoryObject(::windows_core::from_raw_borrowed(&pole), ::core::mem::transmute_copy(&fislocalanchor)).into()
}
unsafe extern "system" fn CacheOLEServer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pole: *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.CacheOLEServer(::windows_core::from_raw_borrowed(&pole)).into()
}
unsafe extern "system" fn GetSetCodePage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvarin: *const super::super::System::Variant::VARIANT, pvarout: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSetCodePage(::core::mem::transmute_copy(&pvarin)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvarout, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OnHttpEquiv<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psv: *mut ::core::ffi::c_void, fdone: super::super::Foundation::BOOL, pvarargin: *const super::super::System::Variant::VARIANT, pvarargout: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OnHttpEquiv(::windows_core::from_raw_borrowed(&psv), ::core::mem::transmute_copy(&fdone), ::core::mem::transmute_copy(&pvarargin)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvarargout, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPalette<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hpal: *mut super::super::Graphics::Gdi::HPALETTE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPalette() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(hpal, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RegisterWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fforceregister: super::super::Foundation::BOOL, swc: ShellWindowTypeConstants) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterWindow(::core::mem::transmute_copy(&fforceregister), ::core::mem::transmute_copy(&swc)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetParentSite: GetParentSite::<Identity, Impl, OFFSET>,
SetTitle: SetTitle::<Identity, Impl, OFFSET>,
GetTitle: GetTitle::<Identity, Impl, OFFSET>,
GetOleObject: GetOleObject::<Identity, Impl, OFFSET>,
GetTravelLog: GetTravelLog::<Identity, Impl, OFFSET>,
ShowControlWindow: ShowControlWindow::<Identity, Impl, OFFSET>,
IsControlWindowShown: IsControlWindowShown::<Identity, Impl, OFFSET>,
IEGetDisplayName: IEGetDisplayName::<Identity, Impl, OFFSET>,
IEParseDisplayName: IEParseDisplayName::<Identity, Impl, OFFSET>,
DisplayParseError: DisplayParseError::<Identity, Impl, OFFSET>,
NavigateToPidl: NavigateToPidl::<Identity, Impl, OFFSET>,
SetNavigateState: SetNavigateState::<Identity, Impl, OFFSET>,
GetNavigateState: GetNavigateState::<Identity, Impl, OFFSET>,
NotifyRedirect: NotifyRedirect::<Identity, Impl, OFFSET>,
UpdateWindowList: UpdateWindowList::<Identity, Impl, OFFSET>,
UpdateBackForwardState: UpdateBackForwardState::<Identity, Impl, OFFSET>,
SetFlags: SetFlags::<Identity, Impl, OFFSET>,
GetFlags: GetFlags::<Identity, Impl, OFFSET>,
CanNavigateNow: CanNavigateNow::<Identity, Impl, OFFSET>,
GetPidl: GetPidl::<Identity, Impl, OFFSET>,
SetReferrer: SetReferrer::<Identity, Impl, OFFSET>,
GetBrowserIndex: GetBrowserIndex::<Identity, Impl, OFFSET>,
GetBrowserByIndex: GetBrowserByIndex::<Identity, Impl, OFFSET>,
GetHistoryObject: GetHistoryObject::<Identity, Impl, OFFSET>,
SetHistoryObject: SetHistoryObject::<Identity, Impl, OFFSET>,
CacheOLEServer: CacheOLEServer::<Identity, Impl, OFFSET>,
GetSetCodePage: GetSetCodePage::<Identity, Impl, OFFSET>,
OnHttpEquiv: OnHttpEquiv::<Identity, Impl, OFFSET>,
GetPalette: GetPalette::<Identity, Impl, OFFSET>,
RegisterWindow: RegisterWindow::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBrowserService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IBrowserService2_Impl: Sized + IBrowserService_Impl {
fn WndProcBS(&self, hwnd: super::super::Foundation::HWND, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> super::super::Foundation::LRESULT;
fn SetAsDefFolderSettings(&self) -> ::windows_core::Result<()>;
fn GetViewRect(&self) -> ::windows_core::Result<super::super::Foundation::RECT>;
fn OnSize(&self, wparam: super::super::Foundation::WPARAM) -> ::windows_core::Result<()>;
fn OnCreate(&self, pcs: *const super::WindowsAndMessaging::CREATESTRUCTW) -> ::windows_core::Result<()>;
fn OnCommand(&self, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> super::super::Foundation::LRESULT;
fn OnDestroy(&self) -> ::windows_core::Result<()>;
fn OnNotify(&self, pnm: *const super::Controls::NMHDR) -> super::super::Foundation::LRESULT;
fn OnSetFocus(&self) -> ::windows_core::Result<()>;
fn OnFrameWindowActivateBS(&self, factive: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn ReleaseShellView(&self) -> ::windows_core::Result<()>;
fn ActivatePendingView(&self) -> ::windows_core::Result<()>;
fn CreateViewWindow(&self, psvnew: ::core::option::Option<&IShellView>, psvold: ::core::option::Option<&IShellView>, prcview: *const super::super::Foundation::RECT) -> ::windows_core::Result<super::super::Foundation::HWND>;
fn CreateBrowserPropSheetExt(&self, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetViewWindow(&self) -> ::windows_core::Result<super::super::Foundation::HWND>;
fn GetBaseBrowserData(&self) -> ::windows_core::Result<*mut BASEBROWSERDATALH>;
fn PutBaseBrowserData(&self) -> *mut BASEBROWSERDATALH;
fn InitializeTravelLog(&self, ptl: ::core::option::Option<&ITravelLog>, dw: u32) -> ::windows_core::Result<()>;
fn SetTopBrowser(&self) -> ::windows_core::Result<()>;
fn Offline(&self, icmd: i32) -> ::windows_core::Result<()>;
fn AllowViewResize(&self, f: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetActivateState(&self, u: u32) -> ::windows_core::Result<()>;
fn UpdateSecureLockIcon(&self, esecurelock: i32) -> ::windows_core::Result<()>;
fn InitializeDownloadManager(&self) -> ::windows_core::Result<()>;
fn InitializeTransitionSite(&self) -> ::windows_core::Result<()>;
fn _Initialize(&self, hwnd: super::super::Foundation::HWND, pauto: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn _CancelPendingNavigationAsync(&self) -> ::windows_core::Result<()>;
fn _CancelPendingView(&self) -> ::windows_core::Result<()>;
fn _MaySaveChanges(&self) -> ::windows_core::Result<()>;
fn _PauseOrResumeView(&self, fpaused: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn _DisableModeless(&self) -> ::windows_core::Result<()>;
fn _NavigateToPidl2(&self, pidl: *const Common::ITEMIDLIST, grfhlnf: u32, dwflags: u32) -> ::windows_core::Result<()>;
fn _TryShell2Rename(&self, psv: ::core::option::Option<&IShellView>, pidlnew: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn _SwitchActivationNow(&self) -> ::windows_core::Result<()>;
fn _ExecChildren(&self, punkbar: ::core::option::Option<&::windows_core::IUnknown>, fbroadcast: super::super::Foundation::BOOL, pguidcmdgroup: *const ::windows_core::GUID, ncmdid: u32, ncmdexecopt: u32, pvarargin: *const super::super::System::Variant::VARIANT, pvarargout: *mut super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn _SendChildren(&self, hwndbar: super::super::Foundation::HWND, fbroadcast: super::super::Foundation::BOOL, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::Result<()>;
fn GetFolderSetData(&self, pfsd: *mut FOLDERSETDATA) -> ::windows_core::Result<()>;
fn _OnFocusChange(&self, itb: u32) -> ::windows_core::Result<()>;
fn v_ShowHideChildWindows(&self, fchildonly: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn _get_itbLastFocus(&self) -> u32;
fn _put_itbLastFocus(&self, itblastfocus: u32) -> ::windows_core::Result<()>;
fn _UIActivateView(&self, ustate: u32) -> ::windows_core::Result<()>;
fn _GetViewBorderRect(&self, prc: *mut super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn _UpdateViewRectSize(&self) -> ::windows_core::Result<()>;
fn _ResizeNextBorder(&self, itb: u32) -> ::windows_core::Result<()>;
fn _ResizeView(&self) -> ::windows_core::Result<()>;
fn _GetEffectiveClientArea(&self, lprectborder: *mut super::super::Foundation::RECT, hmon: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::Result<()>;
fn v_GetViewStream(&self, pidl: *mut Common::ITEMIDLIST, grfmode: u32, pwszname: &::windows_core::PCWSTR) -> ::core::option::Option<super::super::System::Com::IStream>;
fn ForwardViewMsg(&self, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> super::super::Foundation::LRESULT;
fn SetAcceleratorMenu(&self, hacc: super::WindowsAndMessaging::HACCEL) -> ::windows_core::Result<()>;
fn _GetToolbarCount(&self) -> i32;
fn _GetToolbarItem(&self, itb: i32) -> *mut TOOLBARITEM;
fn _SaveToolbars(&self, pstm: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows_core::Result<()>;
fn _LoadToolbars(&self, pstm: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows_core::Result<()>;
fn _CloseAndReleaseToolbars(&self, fclose: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn v_MayGetNextToolbarFocus(&self, lpmsg: *const super::WindowsAndMessaging::MSG, itbnext: u32, citb: i32, pptbi: *mut *mut TOOLBARITEM, phwnd: *mut super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn _ResizeNextBorderHelper(&self, itb: u32, busehmonitor: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn _FindTBar(&self, punksrc: ::core::option::Option<&::windows_core::IUnknown>) -> u32;
fn _SetFocus(&self, ptbi: *const TOOLBARITEM, hwnd: super::super::Foundation::HWND, lpmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::Result<()>;
fn v_MayTranslateAccelerator(&self, pmsg: *mut super::WindowsAndMessaging::MSG) -> ::windows_core::Result<()>;
fn _GetBorderDWHelper(&self, punksrc: ::core::option::Option<&::windows_core::IUnknown>, lprectborder: *mut super::super::Foundation::RECT, busehmonitor: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn v_CheckZoneCrossing(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IBrowserService2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IBrowserService2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>() -> IBrowserService2_Vtbl {
unsafe extern "system" fn WndProcBS<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> super::super::Foundation::LRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WndProcBS(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam))
}
unsafe extern "system" fn SetAsDefFolderSettings<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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.SetAsDefFolderSettings().into()
}
unsafe extern "system" fn GetViewRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prc: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetViewRect() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prc, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OnSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wparam: super::super::Foundation::WPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnSize(::core::mem::transmute_copy(&wparam)).into()
}
unsafe extern "system" fn OnCreate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcs: *const super::WindowsAndMessaging::CREATESTRUCTW) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnCreate(::core::mem::transmute_copy(&pcs)).into()
}
unsafe extern "system" fn OnCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> super::super::Foundation::LRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnCommand(::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam))
}
unsafe extern "system" fn OnDestroy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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.OnDestroy().into()
}
unsafe extern "system" fn OnNotify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnm: *const super::Controls::NMHDR) -> super::super::Foundation::LRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnNotify(::core::mem::transmute_copy(&pnm))
}
unsafe extern "system" fn OnSetFocus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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.OnSetFocus().into()
}
unsafe extern "system" fn OnFrameWindowActivateBS<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, factive: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnFrameWindowActivateBS(::core::mem::transmute_copy(&factive)).into()
}
unsafe extern "system" fn ReleaseShellView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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.ReleaseShellView().into()
}
unsafe extern "system" fn ActivatePendingView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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.ActivatePendingView().into()
}
unsafe extern "system" fn CreateViewWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psvnew: *mut ::core::ffi::c_void, psvold: *mut ::core::ffi::c_void, prcview: *const super::super::Foundation::RECT, phwnd: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateViewWindow(::windows_core::from_raw_borrowed(&psvnew), ::windows_core::from_raw_borrowed(&psvold), ::core::mem::transmute_copy(&prcview)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phwnd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateBrowserPropSheetExt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.CreateBrowserPropSheetExt(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetViewWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phwndview: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetViewWindow() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phwndview, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBaseBrowserData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbbd: *mut *mut BASEBROWSERDATALH) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetBaseBrowserData() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbbd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PutBaseBrowserData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> *mut BASEBROWSERDATALH {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutBaseBrowserData()
}
unsafe extern "system" fn InitializeTravelLog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptl: *mut ::core::ffi::c_void, dw: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitializeTravelLog(::windows_core::from_raw_borrowed(&ptl), ::core::mem::transmute_copy(&dw)).into()
}
unsafe extern "system" fn SetTopBrowser<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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.SetTopBrowser().into()
}
unsafe extern "system" fn Offline<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, icmd: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Offline(::core::mem::transmute_copy(&icmd)).into()
}
unsafe extern "system" fn AllowViewResize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, f: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AllowViewResize(::core::mem::transmute_copy(&f)).into()
}
unsafe extern "system" fn SetActivateState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, u: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetActivateState(::core::mem::transmute_copy(&u)).into()
}
unsafe extern "system" fn UpdateSecureLockIcon<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, esecurelock: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateSecureLockIcon(::core::mem::transmute_copy(&esecurelock)).into()
}
unsafe extern "system" fn InitializeDownloadManager<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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.InitializeDownloadManager().into()
}
unsafe extern "system" fn InitializeTransitionSite<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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.InitializeTransitionSite().into()
}
unsafe extern "system" fn _Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, pauto: *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._Initialize(::core::mem::transmute_copy(&hwnd), ::windows_core::from_raw_borrowed(&pauto)).into()
}
unsafe extern "system" fn _CancelPendingNavigationAsync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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._CancelPendingNavigationAsync().into()
}
unsafe extern "system" fn _CancelPendingView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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._CancelPendingView().into()
}
unsafe extern "system" fn _MaySaveChanges<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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._MaySaveChanges().into()
}
unsafe extern "system" fn _PauseOrResumeView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fpaused: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._PauseOrResumeView(::core::mem::transmute_copy(&fpaused)).into()
}
unsafe extern "system" fn _DisableModeless<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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._DisableModeless().into()
}
unsafe extern "system" fn _NavigateToPidl2<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, grfhlnf: u32, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._NavigateToPidl2(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&grfhlnf), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn _TryShell2Rename<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psv: *mut ::core::ffi::c_void, pidlnew: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._TryShell2Rename(::windows_core::from_raw_borrowed(&psv), ::core::mem::transmute_copy(&pidlnew)).into()
}
unsafe extern "system" fn _SwitchActivationNow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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._SwitchActivationNow().into()
}
unsafe extern "system" fn _ExecChildren<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkbar: *mut ::core::ffi::c_void, fbroadcast: super::super::Foundation::BOOL, pguidcmdgroup: *const ::windows_core::GUID, ncmdid: u32, ncmdexecopt: u32, pvarargin: *const super::super::System::Variant::VARIANT, pvarargout: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._ExecChildren(::windows_core::from_raw_borrowed(&punkbar), ::core::mem::transmute_copy(&fbroadcast), ::core::mem::transmute_copy(&pguidcmdgroup), ::core::mem::transmute_copy(&ncmdid), ::core::mem::transmute_copy(&ncmdexecopt), ::core::mem::transmute_copy(&pvarargin), ::core::mem::transmute_copy(&pvarargout)).into()
}
unsafe extern "system" fn _SendChildren<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndbar: super::super::Foundation::HWND, fbroadcast: super::super::Foundation::BOOL, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._SendChildren(::core::mem::transmute_copy(&hwndbar), ::core::mem::transmute_copy(&fbroadcast), ::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam)).into()
}
unsafe extern "system" fn GetFolderSetData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfsd: *mut FOLDERSETDATA) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFolderSetData(::core::mem::transmute_copy(&pfsd)).into()
}
unsafe extern "system" fn _OnFocusChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itb: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._OnFocusChange(::core::mem::transmute_copy(&itb)).into()
}
unsafe extern "system" fn v_ShowHideChildWindows<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fchildonly: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.v_ShowHideChildWindows(::core::mem::transmute_copy(&fchildonly)).into()
}
unsafe extern "system" fn _get_itbLastFocus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._get_itbLastFocus()
}
unsafe extern "system" fn _put_itbLastFocus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itblastfocus: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._put_itbLastFocus(::core::mem::transmute_copy(&itblastfocus)).into()
}
unsafe extern "system" fn _UIActivateView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ustate: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._UIActivateView(::core::mem::transmute_copy(&ustate)).into()
}
unsafe extern "system" fn _GetViewBorderRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prc: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._GetViewBorderRect(::core::mem::transmute_copy(&prc)).into()
}
unsafe extern "system" fn _UpdateViewRectSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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._UpdateViewRectSize().into()
}
unsafe extern "system" fn _ResizeNextBorder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itb: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._ResizeNextBorder(::core::mem::transmute_copy(&itb)).into()
}
unsafe extern "system" fn _ResizeView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *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._ResizeView().into()
}
unsafe extern "system" fn _GetEffectiveClientArea<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lprectborder: *mut super::super::Foundation::RECT, hmon: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._GetEffectiveClientArea(::core::mem::transmute_copy(&lprectborder), ::core::mem::transmute_copy(&hmon)).into()
}
unsafe extern "system" fn v_GetViewStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *mut Common::ITEMIDLIST, grfmode: u32, pwszname: ::windows_core::PCWSTR) -> ::core::option::Option<super::super::System::Com::IStream> {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.v_GetViewStream(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&grfmode), ::core::mem::transmute(&pwszname))
}
unsafe extern "system" fn ForwardViewMsg<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> super::super::Foundation::LRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ForwardViewMsg(::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam))
}
unsafe extern "system" fn SetAcceleratorMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hacc: super::WindowsAndMessaging::HACCEL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAcceleratorMenu(::core::mem::transmute_copy(&hacc)).into()
}
unsafe extern "system" fn _GetToolbarCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> i32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._GetToolbarCount()
}
unsafe extern "system" fn _GetToolbarItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itb: i32) -> *mut TOOLBARITEM {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._GetToolbarItem(::core::mem::transmute_copy(&itb))
}
unsafe extern "system" fn _SaveToolbars<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstm: *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._SaveToolbars(::windows_core::from_raw_borrowed(&pstm)).into()
}
unsafe extern "system" fn _LoadToolbars<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstm: *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._LoadToolbars(::windows_core::from_raw_borrowed(&pstm)).into()
}
unsafe extern "system" fn _CloseAndReleaseToolbars<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fclose: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._CloseAndReleaseToolbars(::core::mem::transmute_copy(&fclose)).into()
}
unsafe extern "system" fn v_MayGetNextToolbarFocus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpmsg: *const super::WindowsAndMessaging::MSG, itbnext: u32, citb: i32, pptbi: *mut *mut TOOLBARITEM, phwnd: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.v_MayGetNextToolbarFocus(::core::mem::transmute_copy(&lpmsg), ::core::mem::transmute_copy(&itbnext), ::core::mem::transmute_copy(&citb), ::core::mem::transmute_copy(&pptbi), ::core::mem::transmute_copy(&phwnd)).into()
}
unsafe extern "system" fn _ResizeNextBorderHelper<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itb: u32, busehmonitor: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._ResizeNextBorderHelper(::core::mem::transmute_copy(&itb), ::core::mem::transmute_copy(&busehmonitor)).into()
}
unsafe extern "system" fn _FindTBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punksrc: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._FindTBar(::windows_core::from_raw_borrowed(&punksrc))
}
unsafe extern "system" fn _SetFocus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptbi: *const TOOLBARITEM, hwnd: super::super::Foundation::HWND, lpmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._SetFocus(::core::mem::transmute_copy(&ptbi), ::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&lpmsg)).into()
}
unsafe extern "system" fn v_MayTranslateAccelerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *mut super::WindowsAndMessaging::MSG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.v_MayTranslateAccelerator(::core::mem::transmute_copy(&pmsg)).into()
}
unsafe extern "system" fn _GetBorderDWHelper<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punksrc: *mut ::core::ffi::c_void, lprectborder: *mut super::super::Foundation::RECT, busehmonitor: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._GetBorderDWHelper(::windows_core::from_raw_borrowed(&punksrc), ::core::mem::transmute_copy(&lprectborder), ::core::mem::transmute_copy(&busehmonitor)).into()
}
unsafe extern "system" fn v_CheckZoneCrossing<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.v_CheckZoneCrossing(::core::mem::transmute_copy(&pidl)).into()
}
Self {
base__: IBrowserService_Vtbl::new::<Identity, Impl, OFFSET>(),
WndProcBS: WndProcBS::<Identity, Impl, OFFSET>,
SetAsDefFolderSettings: SetAsDefFolderSettings::<Identity, Impl, OFFSET>,
GetViewRect: GetViewRect::<Identity, Impl, OFFSET>,
OnSize: OnSize::<Identity, Impl, OFFSET>,
OnCreate: OnCreate::<Identity, Impl, OFFSET>,
OnCommand: OnCommand::<Identity, Impl, OFFSET>,
OnDestroy: OnDestroy::<Identity, Impl, OFFSET>,
OnNotify: OnNotify::<Identity, Impl, OFFSET>,
OnSetFocus: OnSetFocus::<Identity, Impl, OFFSET>,
OnFrameWindowActivateBS: OnFrameWindowActivateBS::<Identity, Impl, OFFSET>,
ReleaseShellView: ReleaseShellView::<Identity, Impl, OFFSET>,
ActivatePendingView: ActivatePendingView::<Identity, Impl, OFFSET>,
CreateViewWindow: CreateViewWindow::<Identity, Impl, OFFSET>,
CreateBrowserPropSheetExt: CreateBrowserPropSheetExt::<Identity, Impl, OFFSET>,
GetViewWindow: GetViewWindow::<Identity, Impl, OFFSET>,
GetBaseBrowserData: GetBaseBrowserData::<Identity, Impl, OFFSET>,
PutBaseBrowserData: PutBaseBrowserData::<Identity, Impl, OFFSET>,
InitializeTravelLog: InitializeTravelLog::<Identity, Impl, OFFSET>,
SetTopBrowser: SetTopBrowser::<Identity, Impl, OFFSET>,
Offline: Offline::<Identity, Impl, OFFSET>,
AllowViewResize: AllowViewResize::<Identity, Impl, OFFSET>,
SetActivateState: SetActivateState::<Identity, Impl, OFFSET>,
UpdateSecureLockIcon: UpdateSecureLockIcon::<Identity, Impl, OFFSET>,
InitializeDownloadManager: InitializeDownloadManager::<Identity, Impl, OFFSET>,
InitializeTransitionSite: InitializeTransitionSite::<Identity, Impl, OFFSET>,
_Initialize: _Initialize::<Identity, Impl, OFFSET>,
_CancelPendingNavigationAsync: _CancelPendingNavigationAsync::<Identity, Impl, OFFSET>,
_CancelPendingView: _CancelPendingView::<Identity, Impl, OFFSET>,
_MaySaveChanges: _MaySaveChanges::<Identity, Impl, OFFSET>,
_PauseOrResumeView: _PauseOrResumeView::<Identity, Impl, OFFSET>,
_DisableModeless: _DisableModeless::<Identity, Impl, OFFSET>,
_NavigateToPidl2: _NavigateToPidl2::<Identity, Impl, OFFSET>,
_TryShell2Rename: _TryShell2Rename::<Identity, Impl, OFFSET>,
_SwitchActivationNow: _SwitchActivationNow::<Identity, Impl, OFFSET>,
_ExecChildren: _ExecChildren::<Identity, Impl, OFFSET>,
_SendChildren: _SendChildren::<Identity, Impl, OFFSET>,
GetFolderSetData: GetFolderSetData::<Identity, Impl, OFFSET>,
_OnFocusChange: _OnFocusChange::<Identity, Impl, OFFSET>,
v_ShowHideChildWindows: v_ShowHideChildWindows::<Identity, Impl, OFFSET>,
_get_itbLastFocus: _get_itbLastFocus::<Identity, Impl, OFFSET>,
_put_itbLastFocus: _put_itbLastFocus::<Identity, Impl, OFFSET>,
_UIActivateView: _UIActivateView::<Identity, Impl, OFFSET>,
_GetViewBorderRect: _GetViewBorderRect::<Identity, Impl, OFFSET>,
_UpdateViewRectSize: _UpdateViewRectSize::<Identity, Impl, OFFSET>,
_ResizeNextBorder: _ResizeNextBorder::<Identity, Impl, OFFSET>,
_ResizeView: _ResizeView::<Identity, Impl, OFFSET>,
_GetEffectiveClientArea: _GetEffectiveClientArea::<Identity, Impl, OFFSET>,
v_GetViewStream: v_GetViewStream::<Identity, Impl, OFFSET>,
ForwardViewMsg: ForwardViewMsg::<Identity, Impl, OFFSET>,
SetAcceleratorMenu: SetAcceleratorMenu::<Identity, Impl, OFFSET>,
_GetToolbarCount: _GetToolbarCount::<Identity, Impl, OFFSET>,
_GetToolbarItem: _GetToolbarItem::<Identity, Impl, OFFSET>,
_SaveToolbars: _SaveToolbars::<Identity, Impl, OFFSET>,
_LoadToolbars: _LoadToolbars::<Identity, Impl, OFFSET>,
_CloseAndReleaseToolbars: _CloseAndReleaseToolbars::<Identity, Impl, OFFSET>,
v_MayGetNextToolbarFocus: v_MayGetNextToolbarFocus::<Identity, Impl, OFFSET>,
_ResizeNextBorderHelper: _ResizeNextBorderHelper::<Identity, Impl, OFFSET>,
_FindTBar: _FindTBar::<Identity, Impl, OFFSET>,
_SetFocus: _SetFocus::<Identity, Impl, OFFSET>,
v_MayTranslateAccelerator: v_MayTranslateAccelerator::<Identity, Impl, OFFSET>,
_GetBorderDWHelper: _GetBorderDWHelper::<Identity, Impl, OFFSET>,
v_CheckZoneCrossing: v_CheckZoneCrossing::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBrowserService2 as ::windows_core::ComInterface>::IID || iid == &<IBrowserService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IBrowserService3_Impl: Sized + IBrowserService2_Impl {
fn _PositionViewWindow(&self, hwnd: super::super::Foundation::HWND, prc: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn IEParseDisplayNameEx(&self, uicp: u32, pwszpath: &::windows_core::PCWSTR, dwflags: u32) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IBrowserService3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IBrowserService3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService3_Impl, const OFFSET: isize>() -> IBrowserService3_Vtbl {
unsafe extern "system" fn _PositionViewWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, prc: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this._PositionViewWindow(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&prc)).into()
}
unsafe extern "system" fn IEParseDisplayNameEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uicp: u32, pwszpath: ::windows_core::PCWSTR, dwflags: u32, ppidlout: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IEParseDisplayNameEx(::core::mem::transmute_copy(&uicp), ::core::mem::transmute(&pwszpath), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidlout, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IBrowserService2_Vtbl::new::<Identity, Impl, OFFSET>(),
_PositionViewWindow: _PositionViewWindow::<Identity, Impl, OFFSET>,
IEParseDisplayNameEx: IEParseDisplayNameEx::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBrowserService3 as ::windows_core::ComInterface>::IID || iid == &<IBrowserService as ::windows_core::ComInterface>::IID || iid == &<IBrowserService2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IBrowserService4_Impl: Sized + IBrowserService3_Impl {
fn ActivateView(&self, fpendingview: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SaveViewState(&self) -> ::windows_core::Result<()>;
fn _ResizeAllBorders(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IBrowserService4 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IBrowserService4_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService4_Impl, const OFFSET: isize>() -> IBrowserService4_Vtbl {
unsafe extern "system" fn ActivateView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fpendingview: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ActivateView(::core::mem::transmute_copy(&fpendingview)).into()
}
unsafe extern "system" fn SaveViewState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService4_Impl, const OFFSET: isize>(this: *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.SaveViewState().into()
}
unsafe extern "system" fn _ResizeAllBorders<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBrowserService4_Impl, const OFFSET: isize>(this: *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._ResizeAllBorders().into()
}
Self {
base__: IBrowserService3_Vtbl::new::<Identity, Impl, OFFSET>(),
ActivateView: ActivateView::<Identity, Impl, OFFSET>,
SaveViewState: SaveViewState::<Identity, Impl, OFFSET>,
_ResizeAllBorders: _ResizeAllBorders::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBrowserService4 as ::windows_core::ComInterface>::IID || iid == &<IBrowserService as ::windows_core::ComInterface>::IID || iid == &<IBrowserService2 as ::windows_core::ComInterface>::IID || iid == &<IBrowserService3 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICDBurn_Impl: Sized {
fn GetRecorderDriveLetter(&self, pszdrive: ::windows_core::PWSTR, cch: u32) -> ::windows_core::Result<()>;
fn Burn(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn HasRecordableDrive(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ICDBurn {}
#[cfg(feature = "Win32_Foundation")]
impl ICDBurn_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICDBurn_Impl, const OFFSET: isize>() -> ICDBurn_Vtbl {
unsafe extern "system" fn GetRecorderDriveLetter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICDBurn_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdrive: ::windows_core::PWSTR, cch: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRecorderDriveLetter(::core::mem::transmute_copy(&pszdrive), ::core::mem::transmute_copy(&cch)).into()
}
unsafe extern "system" fn Burn<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICDBurn_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Burn(::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn HasRecordableDrive<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICDBurn_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfhasrecorder: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.HasRecordableDrive() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfhasrecorder, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetRecorderDriveLetter: GetRecorderDriveLetter::<Identity, Impl, OFFSET>,
Burn: Burn::<Identity, Impl, OFFSET>,
HasRecordableDrive: HasRecordableDrive::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICDBurn as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ICDBurnExt_Impl: Sized {
fn GetSupportedActionTypes(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for ICDBurnExt {}
impl ICDBurnExt_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICDBurnExt_Impl, const OFFSET: isize>() -> ICDBurnExt_Vtbl {
unsafe extern "system" fn GetSupportedActionTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICDBurnExt_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwactions: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSupportedActionTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwactions, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetSupportedActionTypes: GetSupportedActionTypes::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICDBurnExt as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait ICategorizer_Impl: Sized {
fn GetDescription(&self, pszdesc: ::windows_core::PWSTR, cch: u32) -> ::windows_core::Result<()>;
fn GetCategory(&self, cidl: u32, apidl: *const *const Common::ITEMIDLIST, rgcategoryids: *mut u32) -> ::windows_core::Result<()>;
fn GetCategoryInfo(&self, dwcategoryid: u32, pci: *mut CATEGORY_INFO) -> ::windows_core::Result<()>;
fn CompareCategory(&self, csfflags: CATSORT_FLAGS, dwcategoryid1: u32, dwcategoryid2: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for ICategorizer {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ICategorizer_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategorizer_Impl, const OFFSET: isize>() -> ICategorizer_Vtbl {
unsafe extern "system" fn GetDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategorizer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdesc: ::windows_core::PWSTR, cch: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDescription(::core::mem::transmute_copy(&pszdesc), ::core::mem::transmute_copy(&cch)).into()
}
unsafe extern "system" fn GetCategory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategorizer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cidl: u32, apidl: *const *const Common::ITEMIDLIST, rgcategoryids: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCategory(::core::mem::transmute_copy(&cidl), ::core::mem::transmute_copy(&apidl), ::core::mem::transmute_copy(&rgcategoryids)).into()
}
unsafe extern "system" fn GetCategoryInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategorizer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcategoryid: u32, pci: *mut CATEGORY_INFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCategoryInfo(::core::mem::transmute_copy(&dwcategoryid), ::core::mem::transmute_copy(&pci)).into()
}
unsafe extern "system" fn CompareCategory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategorizer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, csfflags: CATSORT_FLAGS, dwcategoryid1: u32, dwcategoryid2: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CompareCategory(::core::mem::transmute_copy(&csfflags), ::core::mem::transmute_copy(&dwcategoryid1), ::core::mem::transmute_copy(&dwcategoryid2)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDescription: GetDescription::<Identity, Impl, OFFSET>,
GetCategory: GetCategory::<Identity, Impl, OFFSET>,
GetCategoryInfo: GetCategoryInfo::<Identity, Impl, OFFSET>,
CompareCategory: CompareCategory::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICategorizer as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait ICategoryProvider_Impl: Sized {
fn CanCategorizeOnSCID(&self, pscid: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<()>;
fn GetDefaultCategory(&self, pguid: *mut ::windows_core::GUID, pscid: *mut PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<()>;
fn GetCategoryForSCID(&self, pscid: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<::windows_core::GUID>;
fn EnumCategories(&self) -> ::windows_core::Result<super::super::System::Com::IEnumGUID>;
fn GetCategoryName(&self, pguid: *const ::windows_core::GUID, pszname: ::windows_core::PWSTR, cch: u32) -> ::windows_core::Result<()>;
fn CreateCategory(&self, pguid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for ICategoryProvider {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ICategoryProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategoryProvider_Impl, const OFFSET: isize>() -> ICategoryProvider_Vtbl {
unsafe extern "system" fn CanCategorizeOnSCID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategoryProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pscid: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CanCategorizeOnSCID(::core::mem::transmute_copy(&pscid)).into()
}
unsafe extern "system" fn GetDefaultCategory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategoryProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *mut ::windows_core::GUID, pscid: *mut PropertiesSystem::PROPERTYKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDefaultCategory(::core::mem::transmute_copy(&pguid), ::core::mem::transmute_copy(&pscid)).into()
}
unsafe extern "system" fn GetCategoryForSCID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategoryProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pscid: *const PropertiesSystem::PROPERTYKEY, pguid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCategoryForSCID(::core::mem::transmute_copy(&pscid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pguid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumCategories<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategoryProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penum: *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.EnumCategories() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(penum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCategoryName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategoryProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *const ::windows_core::GUID, pszname: ::windows_core::PWSTR, cch: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCategoryName(::core::mem::transmute_copy(&pguid), ::core::mem::transmute_copy(&pszname), ::core::mem::transmute_copy(&cch)).into()
}
unsafe extern "system" fn CreateCategory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICategoryProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *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();
this.CreateCategory(::core::mem::transmute_copy(&pguid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CanCategorizeOnSCID: CanCategorizeOnSCID::<Identity, Impl, OFFSET>,
GetDefaultCategory: GetDefaultCategory::<Identity, Impl, OFFSET>,
GetCategoryForSCID: GetCategoryForSCID::<Identity, Impl, OFFSET>,
EnumCategories: EnumCategories::<Identity, Impl, OFFSET>,
GetCategoryName: GetCategoryName::<Identity, Impl, OFFSET>,
CreateCategory: CreateCategory::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICategoryProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
pub trait IColumnManager_Impl: Sized {
fn SetColumnInfo(&self, propkey: *const PropertiesSystem::PROPERTYKEY, pcmci: *const CM_COLUMNINFO) -> ::windows_core::Result<()>;
fn GetColumnInfo(&self, propkey: *const PropertiesSystem::PROPERTYKEY, pcmci: *mut CM_COLUMNINFO) -> ::windows_core::Result<()>;
fn GetColumnCount(&self, dwflags: CM_ENUM_FLAGS) -> ::windows_core::Result<u32>;
fn GetColumns(&self, dwflags: CM_ENUM_FLAGS, rgkeyorder: *mut PropertiesSystem::PROPERTYKEY, ccolumns: u32) -> ::windows_core::Result<()>;
fn SetColumns(&self, rgkeyorder: *const PropertiesSystem::PROPERTYKEY, cvisible: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl ::windows_core::RuntimeName for IColumnManager {}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl IColumnManager_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IColumnManager_Impl, const OFFSET: isize>() -> IColumnManager_Vtbl {
unsafe extern "system" fn SetColumnInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IColumnManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propkey: *const PropertiesSystem::PROPERTYKEY, pcmci: *const CM_COLUMNINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetColumnInfo(::core::mem::transmute_copy(&propkey), ::core::mem::transmute_copy(&pcmci)).into()
}
unsafe extern "system" fn GetColumnInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IColumnManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propkey: *const PropertiesSystem::PROPERTYKEY, pcmci: *mut CM_COLUMNINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetColumnInfo(::core::mem::transmute_copy(&propkey), ::core::mem::transmute_copy(&pcmci)).into()
}
unsafe extern "system" fn GetColumnCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IColumnManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: CM_ENUM_FLAGS, pucount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetColumnCount(::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pucount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetColumns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IColumnManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: CM_ENUM_FLAGS, rgkeyorder: *mut PropertiesSystem::PROPERTYKEY, ccolumns: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetColumns(::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&rgkeyorder), ::core::mem::transmute_copy(&ccolumns)).into()
}
unsafe extern "system" fn SetColumns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IColumnManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rgkeyorder: *const PropertiesSystem::PROPERTYKEY, cvisible: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetColumns(::core::mem::transmute_copy(&rgkeyorder), ::core::mem::transmute_copy(&cvisible)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetColumnInfo: SetColumnInfo::<Identity, Impl, OFFSET>,
GetColumnInfo: GetColumnInfo::<Identity, Impl, OFFSET>,
GetColumnCount: GetColumnCount::<Identity, Impl, OFFSET>,
GetColumns: GetColumns::<Identity, Impl, OFFSET>,
SetColumns: SetColumns::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IColumnManager as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait IColumnProvider_Impl: Sized {
fn Initialize(&self, psci: *const SHCOLUMNINIT) -> ::windows_core::Result<()>;
fn GetColumnInfo(&self, dwindex: u32, psci: *mut SHCOLUMNINFO) -> ::windows_core::Result<()>;
fn GetItemData(&self, pscid: *const PropertiesSystem::PROPERTYKEY, pscd: *const SHCOLUMNDATA) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for IColumnProvider {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl IColumnProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IColumnProvider_Impl, const OFFSET: isize>() -> IColumnProvider_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IColumnProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psci: *const SHCOLUMNINIT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&psci)).into()
}
unsafe extern "system" fn GetColumnInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IColumnProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwindex: u32, psci: *mut SHCOLUMNINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetColumnInfo(::core::mem::transmute_copy(&dwindex), ::core::mem::transmute_copy(&psci)).into()
}
unsafe extern "system" fn GetItemData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IColumnProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pscid: *const PropertiesSystem::PROPERTYKEY, pscd: *const SHCOLUMNDATA, pvardata: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemData(::core::mem::transmute_copy(&pscid), ::core::mem::transmute_copy(&pscd)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvardata, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
GetColumnInfo: GetColumnInfo::<Identity, Impl, OFFSET>,
GetItemData: GetItemData::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IColumnProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
pub trait ICommDlgBrowser_Impl: Sized {
fn OnDefaultCommand(&self, ppshv: ::core::option::Option<&IShellView>) -> ::windows_core::Result<()>;
fn OnStateChange(&self, ppshv: ::core::option::Option<&IShellView>, uchange: u32) -> ::windows_core::Result<()>;
fn IncludeObject(&self, ppshv: ::core::option::Option<&IShellView>, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for ICommDlgBrowser {}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
impl ICommDlgBrowser_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser_Impl, const OFFSET: isize>() -> ICommDlgBrowser_Vtbl {
unsafe extern "system" fn OnDefaultCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppshv: *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.OnDefaultCommand(::windows_core::from_raw_borrowed(&ppshv)).into()
}
unsafe extern "system" fn OnStateChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppshv: *mut ::core::ffi::c_void, uchange: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnStateChange(::windows_core::from_raw_borrowed(&ppshv), ::core::mem::transmute_copy(&uchange)).into()
}
unsafe extern "system" fn IncludeObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppshv: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IncludeObject(::windows_core::from_raw_borrowed(&ppshv), ::core::mem::transmute_copy(&pidl)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnDefaultCommand: OnDefaultCommand::<Identity, Impl, OFFSET>,
OnStateChange: OnStateChange::<Identity, Impl, OFFSET>,
IncludeObject: IncludeObject::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICommDlgBrowser as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
pub trait ICommDlgBrowser2_Impl: Sized + ICommDlgBrowser_Impl {
fn Notify(&self, ppshv: ::core::option::Option<&IShellView>, dwnotifytype: u32) -> ::windows_core::Result<()>;
fn GetDefaultMenuText(&self, ppshv: ::core::option::Option<&IShellView>, psztext: ::windows_core::PWSTR, cchmax: i32) -> ::windows_core::Result<()>;
fn GetViewFlags(&self) -> ::windows_core::Result<u32>;
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for ICommDlgBrowser2 {}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
impl ICommDlgBrowser2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser2_Impl, const OFFSET: isize>() -> ICommDlgBrowser2_Vtbl {
unsafe extern "system" fn Notify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppshv: *mut ::core::ffi::c_void, dwnotifytype: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Notify(::windows_core::from_raw_borrowed(&ppshv), ::core::mem::transmute_copy(&dwnotifytype)).into()
}
unsafe extern "system" fn GetDefaultMenuText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppshv: *mut ::core::ffi::c_void, psztext: ::windows_core::PWSTR, cchmax: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDefaultMenuText(::windows_core::from_raw_borrowed(&ppshv), ::core::mem::transmute_copy(&psztext), ::core::mem::transmute_copy(&cchmax)).into()
}
unsafe extern "system" fn GetViewFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetViewFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ICommDlgBrowser_Vtbl::new::<Identity, Impl, OFFSET>(),
Notify: Notify::<Identity, Impl, OFFSET>,
GetDefaultMenuText: GetDefaultMenuText::<Identity, Impl, OFFSET>,
GetViewFlags: GetViewFlags::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICommDlgBrowser2 as ::windows_core::ComInterface>::IID || iid == &<ICommDlgBrowser as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
pub trait ICommDlgBrowser3_Impl: Sized + ICommDlgBrowser2_Impl {
fn OnColumnClicked(&self, ppshv: ::core::option::Option<&IShellView>, icolumn: i32) -> ::windows_core::Result<()>;
fn GetCurrentFilter(&self, pszfilespec: ::windows_core::PWSTR, cchfilespec: i32) -> ::windows_core::Result<()>;
fn OnPreViewCreated(&self, ppshv: ::core::option::Option<&IShellView>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for ICommDlgBrowser3 {}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
impl ICommDlgBrowser3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser3_Impl, const OFFSET: isize>() -> ICommDlgBrowser3_Vtbl {
unsafe extern "system" fn OnColumnClicked<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppshv: *mut ::core::ffi::c_void, icolumn: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnColumnClicked(::windows_core::from_raw_borrowed(&ppshv), ::core::mem::transmute_copy(&icolumn)).into()
}
unsafe extern "system" fn GetCurrentFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfilespec: ::windows_core::PWSTR, cchfilespec: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentFilter(::core::mem::transmute_copy(&pszfilespec), ::core::mem::transmute_copy(&cchfilespec)).into()
}
unsafe extern "system" fn OnPreViewCreated<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICommDlgBrowser3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppshv: *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.OnPreViewCreated(::windows_core::from_raw_borrowed(&ppshv)).into()
}
Self {
base__: ICommDlgBrowser2_Vtbl::new::<Identity, Impl, OFFSET>(),
OnColumnClicked: OnColumnClicked::<Identity, Impl, OFFSET>,
GetCurrentFilter: GetCurrentFilter::<Identity, Impl, OFFSET>,
OnPreViewCreated: OnPreViewCreated::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICommDlgBrowser3 as ::windows_core::ComInterface>::IID || iid == &<ICommDlgBrowser as ::windows_core::ComInterface>::IID || iid == &<ICommDlgBrowser2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IComputerInfoChangeNotify_Impl: Sized {
fn ComputerInfoChanged(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IComputerInfoChangeNotify {}
impl IComputerInfoChangeNotify_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IComputerInfoChangeNotify_Impl, const OFFSET: isize>() -> IComputerInfoChangeNotify_Vtbl {
unsafe extern "system" fn ComputerInfoChanged<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IComputerInfoChangeNotify_Impl, const OFFSET: isize>(this: *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.ComputerInfoChanged().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), ComputerInfoChanged: ComputerInfoChanged::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IComputerInfoChangeNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IConnectableCredentialProviderCredential_Impl: Sized + ICredentialProviderCredential_Impl {
fn Connect(&self, pqcws: ::core::option::Option<&IQueryContinueWithStatus>) -> ::windows_core::Result<()>;
fn Disconnect(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IConnectableCredentialProviderCredential {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IConnectableCredentialProviderCredential_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConnectableCredentialProviderCredential_Impl, const OFFSET: isize>() -> IConnectableCredentialProviderCredential_Vtbl {
unsafe extern "system" fn Connect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConnectableCredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pqcws: *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.Connect(::windows_core::from_raw_borrowed(&pqcws)).into()
}
unsafe extern "system" fn Disconnect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConnectableCredentialProviderCredential_Impl, const OFFSET: isize>(this: *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.Disconnect().into()
}
Self {
base__: ICredentialProviderCredential_Vtbl::new::<Identity, Impl, OFFSET>(),
Connect: Connect::<Identity, Impl, OFFSET>,
Disconnect: Disconnect::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IConnectableCredentialProviderCredential as ::windows_core::ComInterface>::IID || iid == &<ICredentialProviderCredential as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IContactManagerInterop_Impl: Sized {
fn ShowContactCardForWindow(&self, appwindow: super::super::Foundation::HWND, contact: ::core::option::Option<&::windows_core::IUnknown>, selection: *const super::super::Foundation::RECT, preferredplacement: FLYOUT_PLACEMENT) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IContactManagerInterop {}
#[cfg(feature = "Win32_Foundation")]
impl IContactManagerInterop_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContactManagerInterop_Impl, const OFFSET: isize>() -> IContactManagerInterop_Vtbl {
unsafe extern "system" fn ShowContactCardForWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContactManagerInterop_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appwindow: super::super::Foundation::HWND, contact: *mut ::core::ffi::c_void, selection: *const super::super::Foundation::RECT, preferredplacement: FLYOUT_PLACEMENT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowContactCardForWindow(::core::mem::transmute_copy(&appwindow), ::windows_core::from_raw_borrowed(&contact), ::core::mem::transmute_copy(&selection), ::core::mem::transmute_copy(&preferredplacement)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), ShowContactCardForWindow: ShowContactCardForWindow::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IContactManagerInterop as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IContextMenu_Impl: Sized {
fn QueryContextMenu(&self, hmenu: super::WindowsAndMessaging::HMENU, indexmenu: u32, idcmdfirst: u32, idcmdlast: u32, uflags: u32) -> ::windows_core::Result<()>;
fn InvokeCommand(&self, pici: *const CMINVOKECOMMANDINFO) -> ::windows_core::Result<()>;
fn GetCommandString(&self, idcmd: usize, utype: u32, preserved: *const u32, pszname: ::windows_core::PSTR, cchmax: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IContextMenu {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl IContextMenu_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenu_Impl, const OFFSET: isize>() -> IContextMenu_Vtbl {
unsafe extern "system" fn QueryContextMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hmenu: super::WindowsAndMessaging::HMENU, indexmenu: u32, idcmdfirst: u32, idcmdlast: u32, uflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryContextMenu(::core::mem::transmute_copy(&hmenu), ::core::mem::transmute_copy(&indexmenu), ::core::mem::transmute_copy(&idcmdfirst), ::core::mem::transmute_copy(&idcmdlast), ::core::mem::transmute_copy(&uflags)).into()
}
unsafe extern "system" fn InvokeCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pici: *const CMINVOKECOMMANDINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeCommand(::core::mem::transmute_copy(&pici)).into()
}
unsafe extern "system" fn GetCommandString<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idcmd: usize, utype: u32, preserved: *const u32, pszname: ::windows_core::PSTR, cchmax: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCommandString(::core::mem::transmute_copy(&idcmd), ::core::mem::transmute_copy(&utype), ::core::mem::transmute_copy(&preserved), ::core::mem::transmute_copy(&pszname), ::core::mem::transmute_copy(&cchmax)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
QueryContextMenu: QueryContextMenu::<Identity, Impl, OFFSET>,
InvokeCommand: InvokeCommand::<Identity, Impl, OFFSET>,
GetCommandString: GetCommandString::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IContextMenu as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IContextMenu2_Impl: Sized + IContextMenu_Impl {
fn HandleMenuMsg(&self, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IContextMenu2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl IContextMenu2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenu2_Impl, const OFFSET: isize>() -> IContextMenu2_Vtbl {
unsafe extern "system" fn HandleMenuMsg<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenu2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HandleMenuMsg(::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam)).into()
}
Self { base__: IContextMenu_Vtbl::new::<Identity, Impl, OFFSET>(), HandleMenuMsg: HandleMenuMsg::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IContextMenu2 as ::windows_core::ComInterface>::IID || iid == &<IContextMenu as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IContextMenu3_Impl: Sized + IContextMenu2_Impl {
fn HandleMenuMsg2(&self, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM, plresult: *mut super::super::Foundation::LRESULT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IContextMenu3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl IContextMenu3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenu3_Impl, const OFFSET: isize>() -> IContextMenu3_Vtbl {
unsafe extern "system" fn HandleMenuMsg2<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenu3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM, plresult: *mut super::super::Foundation::LRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HandleMenuMsg2(::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam), ::core::mem::transmute_copy(&plresult)).into()
}
Self { base__: IContextMenu2_Vtbl::new::<Identity, Impl, OFFSET>(), HandleMenuMsg2: HandleMenuMsg2::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IContextMenu3 as ::windows_core::ComInterface>::IID || iid == &<IContextMenu as ::windows_core::ComInterface>::IID || iid == &<IContextMenu2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IContextMenuCB_Impl: Sized {
fn CallBack(&self, psf: ::core::option::Option<&IShellFolder>, hwndowner: super::super::Foundation::HWND, pdtobj: ::core::option::Option<&super::super::System::Com::IDataObject>, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IContextMenuCB {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IContextMenuCB_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenuCB_Impl, const OFFSET: isize>() -> IContextMenuCB_Vtbl {
unsafe extern "system" fn CallBack<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenuCB_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psf: *mut ::core::ffi::c_void, hwndowner: super::super::Foundation::HWND, pdtobj: *mut ::core::ffi::c_void, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallBack(::windows_core::from_raw_borrowed(&psf), ::core::mem::transmute_copy(&hwndowner), ::windows_core::from_raw_borrowed(&pdtobj), ::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CallBack: CallBack::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IContextMenuCB as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IContextMenuSite_Impl: Sized {
fn DoContextMenuPopup(&self, punkcontextmenu: ::core::option::Option<&::windows_core::IUnknown>, fflags: u32, pt: &super::super::Foundation::POINT) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IContextMenuSite {}
#[cfg(feature = "Win32_Foundation")]
impl IContextMenuSite_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenuSite_Impl, const OFFSET: isize>() -> IContextMenuSite_Vtbl {
unsafe extern "system" fn DoContextMenuPopup<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IContextMenuSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkcontextmenu: *mut ::core::ffi::c_void, fflags: u32, pt: super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DoContextMenuPopup(::windows_core::from_raw_borrowed(&punkcontextmenu), ::core::mem::transmute_copy(&fflags), ::core::mem::transmute(&pt)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), DoContextMenuPopup: DoContextMenuPopup::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IContextMenuSite as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICopyHookA_Impl: Sized {
fn CopyCallback(&self, hwnd: super::super::Foundation::HWND, wfunc: u32, wflags: u32, pszsrcfile: &::windows_core::PCSTR, dwsrcattribs: u32, pszdestfile: &::windows_core::PCSTR, dwdestattribs: u32) -> u32;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ICopyHookA {}
#[cfg(feature = "Win32_Foundation")]
impl ICopyHookA_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICopyHookA_Impl, const OFFSET: isize>() -> ICopyHookA_Vtbl {
unsafe extern "system" fn CopyCallback<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICopyHookA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, wfunc: u32, wflags: u32, pszsrcfile: ::windows_core::PCSTR, dwsrcattribs: u32, pszdestfile: ::windows_core::PCSTR, dwdestattribs: u32) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CopyCallback(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&wfunc), ::core::mem::transmute_copy(&wflags), ::core::mem::transmute(&pszsrcfile), ::core::mem::transmute_copy(&dwsrcattribs), ::core::mem::transmute(&pszdestfile), ::core::mem::transmute_copy(&dwdestattribs))
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CopyCallback: CopyCallback::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICopyHookA as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICopyHookW_Impl: Sized {
fn CopyCallback(&self, hwnd: super::super::Foundation::HWND, wfunc: u32, wflags: u32, pszsrcfile: &::windows_core::PCWSTR, dwsrcattribs: u32, pszdestfile: &::windows_core::PCWSTR, dwdestattribs: u32) -> u32;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ICopyHookW {}
#[cfg(feature = "Win32_Foundation")]
impl ICopyHookW_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICopyHookW_Impl, const OFFSET: isize>() -> ICopyHookW_Vtbl {
unsafe extern "system" fn CopyCallback<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICopyHookW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, wfunc: u32, wflags: u32, pszsrcfile: ::windows_core::PCWSTR, dwsrcattribs: u32, pszdestfile: ::windows_core::PCWSTR, dwdestattribs: u32) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CopyCallback(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&wfunc), ::core::mem::transmute_copy(&wflags), ::core::mem::transmute(&pszsrcfile), ::core::mem::transmute_copy(&dwsrcattribs), ::core::mem::transmute(&pszdestfile), ::core::mem::transmute_copy(&dwdestattribs))
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CopyCallback: CopyCallback::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICopyHookW as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ICreateProcessInputs_Impl: Sized {
fn GetCreateFlags(&self) -> ::windows_core::Result<u32>;
fn SetCreateFlags(&self, dwcreationflags: u32) -> ::windows_core::Result<()>;
fn AddCreateFlags(&self, dwcreationflags: u32) -> ::windows_core::Result<()>;
fn SetHotKey(&self, whotkey: u16) -> ::windows_core::Result<()>;
fn AddStartupFlags(&self, dwstartupinfoflags: u32) -> ::windows_core::Result<()>;
fn SetTitle(&self, psztitle: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetEnvironmentVariable(&self, pszname: &::windows_core::PCWSTR, pszvalue: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ICreateProcessInputs {}
impl ICreateProcessInputs_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreateProcessInputs_Impl, const OFFSET: isize>() -> ICreateProcessInputs_Vtbl {
unsafe extern "system" fn GetCreateFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreateProcessInputs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwcreationflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCreateFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcreationflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCreateFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreateProcessInputs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcreationflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCreateFlags(::core::mem::transmute_copy(&dwcreationflags)).into()
}
unsafe extern "system" fn AddCreateFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreateProcessInputs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcreationflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddCreateFlags(::core::mem::transmute_copy(&dwcreationflags)).into()
}
unsafe extern "system" fn SetHotKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreateProcessInputs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, whotkey: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHotKey(::core::mem::transmute_copy(&whotkey)).into()
}
unsafe extern "system" fn AddStartupFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreateProcessInputs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstartupinfoflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddStartupFlags(::core::mem::transmute_copy(&dwstartupinfoflags)).into()
}
unsafe extern "system" fn SetTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreateProcessInputs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psztitle: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTitle(::core::mem::transmute(&psztitle)).into()
}
unsafe extern "system" fn SetEnvironmentVariable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreateProcessInputs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PCWSTR, pszvalue: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnvironmentVariable(::core::mem::transmute(&pszname), ::core::mem::transmute(&pszvalue)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCreateFlags: GetCreateFlags::<Identity, Impl, OFFSET>,
SetCreateFlags: SetCreateFlags::<Identity, Impl, OFFSET>,
AddCreateFlags: AddCreateFlags::<Identity, Impl, OFFSET>,
SetHotKey: SetHotKey::<Identity, Impl, OFFSET>,
AddStartupFlags: AddStartupFlags::<Identity, Impl, OFFSET>,
SetTitle: SetTitle::<Identity, Impl, OFFSET>,
SetEnvironmentVariable: SetEnvironmentVariable::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICreateProcessInputs as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ICreatingProcess_Impl: Sized {
fn OnCreating(&self, pcpi: ::core::option::Option<&ICreateProcessInputs>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ICreatingProcess {}
impl ICreatingProcess_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreatingProcess_Impl, const OFFSET: isize>() -> ICreatingProcess_Vtbl {
unsafe extern "system" fn OnCreating<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreatingProcess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpi: *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.OnCreating(::windows_core::from_raw_borrowed(&pcpi)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), OnCreating: OnCreating::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICreatingProcess as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICredentialProvider_Impl: Sized {
fn SetUsageScenario(&self, cpus: CREDENTIAL_PROVIDER_USAGE_SCENARIO, dwflags: u32) -> ::windows_core::Result<()>;
fn SetSerialization(&self, pcpcs: *const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION) -> ::windows_core::Result<()>;
fn Advise(&self, pcpe: ::core::option::Option<&ICredentialProviderEvents>, upadvisecontext: usize) -> ::windows_core::Result<()>;
fn UnAdvise(&self) -> ::windows_core::Result<()>;
fn GetFieldDescriptorCount(&self) -> ::windows_core::Result<u32>;
fn GetFieldDescriptorAt(&self, dwindex: u32) -> ::windows_core::Result<*mut CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR>;
fn GetCredentialCount(&self, pdwcount: *mut u32, pdwdefault: *mut u32, pbautologonwithdefault: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetCredentialAt(&self, dwindex: u32) -> ::windows_core::Result<ICredentialProviderCredential>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ICredentialProvider {}
#[cfg(feature = "Win32_Foundation")]
impl ICredentialProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProvider_Impl, const OFFSET: isize>() -> ICredentialProvider_Vtbl {
unsafe extern "system" fn SetUsageScenario<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cpus: CREDENTIAL_PROVIDER_USAGE_SCENARIO, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetUsageScenario(::core::mem::transmute_copy(&cpus), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn SetSerialization<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpcs: *const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSerialization(::core::mem::transmute_copy(&pcpcs)).into()
}
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpe: *mut ::core::ffi::c_void, upadvisecontext: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Advise(::windows_core::from_raw_borrowed(&pcpe), ::core::mem::transmute_copy(&upadvisecontext)).into()
}
unsafe extern "system" fn UnAdvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProvider_Impl, const OFFSET: isize>(this: *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.UnAdvise().into()
}
unsafe extern "system" fn GetFieldDescriptorCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwcount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldDescriptorCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFieldDescriptorAt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwindex: u32, ppcpfd: *mut *mut CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldDescriptorAt(::core::mem::transmute_copy(&dwindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcpfd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCredentialCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwcount: *mut u32, pdwdefault: *mut u32, pbautologonwithdefault: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCredentialCount(::core::mem::transmute_copy(&pdwcount), ::core::mem::transmute_copy(&pdwdefault), ::core::mem::transmute_copy(&pbautologonwithdefault)).into()
}
unsafe extern "system" fn GetCredentialAt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwindex: u32, ppcpc: *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.GetCredentialAt(::core::mem::transmute_copy(&dwindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcpc, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetUsageScenario: SetUsageScenario::<Identity, Impl, OFFSET>,
SetSerialization: SetSerialization::<Identity, Impl, OFFSET>,
Advise: Advise::<Identity, Impl, OFFSET>,
UnAdvise: UnAdvise::<Identity, Impl, OFFSET>,
GetFieldDescriptorCount: GetFieldDescriptorCount::<Identity, Impl, OFFSET>,
GetFieldDescriptorAt: GetFieldDescriptorAt::<Identity, Impl, OFFSET>,
GetCredentialCount: GetCredentialCount::<Identity, Impl, OFFSET>,
GetCredentialAt: GetCredentialAt::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait ICredentialProviderCredential_Impl: Sized {
fn Advise(&self, pcpce: ::core::option::Option<&ICredentialProviderCredentialEvents>) -> ::windows_core::Result<()>;
fn UnAdvise(&self) -> ::windows_core::Result<()>;
fn SetSelected(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn SetDeselected(&self) -> ::windows_core::Result<()>;
fn GetFieldState(&self, dwfieldid: u32, pcpfs: *mut CREDENTIAL_PROVIDER_FIELD_STATE, pcpfis: *mut CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE) -> ::windows_core::Result<()>;
fn GetStringValue(&self, dwfieldid: u32) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetBitmapValue(&self, dwfieldid: u32) -> ::windows_core::Result<super::super::Graphics::Gdi::HBITMAP>;
fn GetCheckboxValue(&self, dwfieldid: u32, pbchecked: *mut super::super::Foundation::BOOL, ppszlabel: *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
fn GetSubmitButtonValue(&self, dwfieldid: u32) -> ::windows_core::Result<u32>;
fn GetComboBoxValueCount(&self, dwfieldid: u32, pcitems: *mut u32, pdwselecteditem: *mut u32) -> ::windows_core::Result<()>;
fn GetComboBoxValueAt(&self, dwfieldid: u32, dwitem: u32) -> ::windows_core::Result<::windows_core::PWSTR>;
fn SetStringValue(&self, dwfieldid: u32, psz: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetCheckboxValue(&self, dwfieldid: u32, bchecked: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetComboBoxSelectedValue(&self, dwfieldid: u32, dwselecteditem: u32) -> ::windows_core::Result<()>;
fn CommandLinkClicked(&self, dwfieldid: u32) -> ::windows_core::Result<()>;
fn GetSerialization(&self, pcpgsr: *mut CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE, pcpcs: *mut CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION, ppszoptionalstatustext: *mut ::windows_core::PWSTR, pcpsioptionalstatusicon: *mut CREDENTIAL_PROVIDER_STATUS_ICON) -> ::windows_core::Result<()>;
fn ReportResult(&self, ntsstatus: super::super::Foundation::NTSTATUS, ntssubstatus: super::super::Foundation::NTSTATUS, ppszoptionalstatustext: *mut ::windows_core::PWSTR, pcpsioptionalstatusicon: *mut CREDENTIAL_PROVIDER_STATUS_ICON) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for ICredentialProviderCredential {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ICredentialProviderCredential_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>() -> ICredentialProviderCredential_Vtbl {
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpce: *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.Advise(::windows_core::from_raw_borrowed(&pcpce)).into()
}
unsafe extern "system" fn UnAdvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *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.UnAdvise().into()
}
unsafe extern "system" fn SetSelected<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbautologon: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SetSelected() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbautologon, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDeselected<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *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.SetDeselected().into()
}
unsafe extern "system" fn GetFieldState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32, pcpfs: *mut CREDENTIAL_PROVIDER_FIELD_STATE, pcpfis: *mut CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldState(::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&pcpfs), ::core::mem::transmute_copy(&pcpfis)).into()
}
unsafe extern "system" fn GetStringValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32, ppsz: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStringValue(::core::mem::transmute_copy(&dwfieldid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsz, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBitmapValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32, phbmp: *mut super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetBitmapValue(::core::mem::transmute_copy(&dwfieldid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phbmp, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCheckboxValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32, pbchecked: *mut super::super::Foundation::BOOL, ppszlabel: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCheckboxValue(::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&pbchecked), ::core::mem::transmute_copy(&ppszlabel)).into()
}
unsafe extern "system" fn GetSubmitButtonValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32, pdwadjacentto: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSubmitButtonValue(::core::mem::transmute_copy(&dwfieldid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwadjacentto, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetComboBoxValueCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32, pcitems: *mut u32, pdwselecteditem: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetComboBoxValueCount(::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&pcitems), ::core::mem::transmute_copy(&pdwselecteditem)).into()
}
unsafe extern "system" fn GetComboBoxValueAt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32, dwitem: u32, ppszitem: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetComboBoxValueAt(::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&dwitem)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetStringValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32, psz: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStringValue(::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute(&psz)).into()
}
unsafe extern "system" fn SetCheckboxValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32, bchecked: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCheckboxValue(::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&bchecked)).into()
}
unsafe extern "system" fn SetComboBoxSelectedValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32, dwselecteditem: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetComboBoxSelectedValue(::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&dwselecteditem)).into()
}
unsafe extern "system" fn CommandLinkClicked<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfieldid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CommandLinkClicked(::core::mem::transmute_copy(&dwfieldid)).into()
}
unsafe extern "system" fn GetSerialization<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpgsr: *mut CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE, pcpcs: *mut CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION, ppszoptionalstatustext: *mut ::windows_core::PWSTR, pcpsioptionalstatusicon: *mut CREDENTIAL_PROVIDER_STATUS_ICON) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSerialization(::core::mem::transmute_copy(&pcpgsr), ::core::mem::transmute_copy(&pcpcs), ::core::mem::transmute_copy(&ppszoptionalstatustext), ::core::mem::transmute_copy(&pcpsioptionalstatusicon)).into()
}
unsafe extern "system" fn ReportResult<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ntsstatus: super::super::Foundation::NTSTATUS, ntssubstatus: super::super::Foundation::NTSTATUS, ppszoptionalstatustext: *mut ::windows_core::PWSTR, pcpsioptionalstatusicon: *mut CREDENTIAL_PROVIDER_STATUS_ICON) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReportResult(::core::mem::transmute_copy(&ntsstatus), ::core::mem::transmute_copy(&ntssubstatus), ::core::mem::transmute_copy(&ppszoptionalstatustext), ::core::mem::transmute_copy(&pcpsioptionalstatusicon)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Advise: Advise::<Identity, Impl, OFFSET>,
UnAdvise: UnAdvise::<Identity, Impl, OFFSET>,
SetSelected: SetSelected::<Identity, Impl, OFFSET>,
SetDeselected: SetDeselected::<Identity, Impl, OFFSET>,
GetFieldState: GetFieldState::<Identity, Impl, OFFSET>,
GetStringValue: GetStringValue::<Identity, Impl, OFFSET>,
GetBitmapValue: GetBitmapValue::<Identity, Impl, OFFSET>,
GetCheckboxValue: GetCheckboxValue::<Identity, Impl, OFFSET>,
GetSubmitButtonValue: GetSubmitButtonValue::<Identity, Impl, OFFSET>,
GetComboBoxValueCount: GetComboBoxValueCount::<Identity, Impl, OFFSET>,
GetComboBoxValueAt: GetComboBoxValueAt::<Identity, Impl, OFFSET>,
SetStringValue: SetStringValue::<Identity, Impl, OFFSET>,
SetCheckboxValue: SetCheckboxValue::<Identity, Impl, OFFSET>,
SetComboBoxSelectedValue: SetComboBoxSelectedValue::<Identity, Impl, OFFSET>,
CommandLinkClicked: CommandLinkClicked::<Identity, Impl, OFFSET>,
GetSerialization: GetSerialization::<Identity, Impl, OFFSET>,
ReportResult: ReportResult::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProviderCredential as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait ICredentialProviderCredential2_Impl: Sized + ICredentialProviderCredential_Impl {
fn GetUserSid(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for ICredentialProviderCredential2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ICredentialProviderCredential2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential2_Impl, const OFFSET: isize>() -> ICredentialProviderCredential2_Vtbl {
unsafe extern "system" fn GetUserSid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredential2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sid: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetUserSid() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ICredentialProviderCredential_Vtbl::new::<Identity, Impl, OFFSET>(), GetUserSid: GetUserSid::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProviderCredential2 as ::windows_core::ComInterface>::IID || iid == &<ICredentialProviderCredential as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait ICredentialProviderCredentialEvents_Impl: Sized {
fn SetFieldState(&self, pcpc: ::core::option::Option<&ICredentialProviderCredential>, dwfieldid: u32, cpfs: CREDENTIAL_PROVIDER_FIELD_STATE) -> ::windows_core::Result<()>;
fn SetFieldInteractiveState(&self, pcpc: ::core::option::Option<&ICredentialProviderCredential>, dwfieldid: u32, cpfis: CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE) -> ::windows_core::Result<()>;
fn SetFieldString(&self, pcpc: ::core::option::Option<&ICredentialProviderCredential>, dwfieldid: u32, psz: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetFieldCheckbox(&self, pcpc: ::core::option::Option<&ICredentialProviderCredential>, dwfieldid: u32, bchecked: super::super::Foundation::BOOL, pszlabel: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetFieldBitmap(&self, pcpc: ::core::option::Option<&ICredentialProviderCredential>, dwfieldid: u32, hbmp: super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::Result<()>;
fn SetFieldComboBoxSelectedItem(&self, pcpc: ::core::option::Option<&ICredentialProviderCredential>, dwfieldid: u32, dwselecteditem: u32) -> ::windows_core::Result<()>;
fn DeleteFieldComboBoxItem(&self, pcpc: ::core::option::Option<&ICredentialProviderCredential>, dwfieldid: u32, dwitem: u32) -> ::windows_core::Result<()>;
fn AppendFieldComboBoxItem(&self, pcpc: ::core::option::Option<&ICredentialProviderCredential>, dwfieldid: u32, pszitem: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetFieldSubmitButton(&self, pcpc: ::core::option::Option<&ICredentialProviderCredential>, dwfieldid: u32, dwadjacentto: u32) -> ::windows_core::Result<()>;
fn OnCreatingWindow(&self) -> ::windows_core::Result<super::super::Foundation::HWND>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for ICredentialProviderCredentialEvents {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ICredentialProviderCredentialEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>() -> ICredentialProviderCredentialEvents_Vtbl {
unsafe extern "system" fn SetFieldState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpc: *mut ::core::ffi::c_void, dwfieldid: u32, cpfs: CREDENTIAL_PROVIDER_FIELD_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFieldState(::windows_core::from_raw_borrowed(&pcpc), ::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&cpfs)).into()
}
unsafe extern "system" fn SetFieldInteractiveState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpc: *mut ::core::ffi::c_void, dwfieldid: u32, cpfis: CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFieldInteractiveState(::windows_core::from_raw_borrowed(&pcpc), ::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&cpfis)).into()
}
unsafe extern "system" fn SetFieldString<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpc: *mut ::core::ffi::c_void, dwfieldid: u32, psz: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFieldString(::windows_core::from_raw_borrowed(&pcpc), ::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute(&psz)).into()
}
unsafe extern "system" fn SetFieldCheckbox<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpc: *mut ::core::ffi::c_void, dwfieldid: u32, bchecked: super::super::Foundation::BOOL, pszlabel: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFieldCheckbox(::windows_core::from_raw_borrowed(&pcpc), ::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&bchecked), ::core::mem::transmute(&pszlabel)).into()
}
unsafe extern "system" fn SetFieldBitmap<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpc: *mut ::core::ffi::c_void, dwfieldid: u32, hbmp: super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFieldBitmap(::windows_core::from_raw_borrowed(&pcpc), ::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&hbmp)).into()
}
unsafe extern "system" fn SetFieldComboBoxSelectedItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpc: *mut ::core::ffi::c_void, dwfieldid: u32, dwselecteditem: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFieldComboBoxSelectedItem(::windows_core::from_raw_borrowed(&pcpc), ::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&dwselecteditem)).into()
}
unsafe extern "system" fn DeleteFieldComboBoxItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpc: *mut ::core::ffi::c_void, dwfieldid: u32, dwitem: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteFieldComboBoxItem(::windows_core::from_raw_borrowed(&pcpc), ::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&dwitem)).into()
}
unsafe extern "system" fn AppendFieldComboBoxItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpc: *mut ::core::ffi::c_void, dwfieldid: u32, pszitem: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendFieldComboBoxItem(::windows_core::from_raw_borrowed(&pcpc), ::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute(&pszitem)).into()
}
unsafe extern "system" fn SetFieldSubmitButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpc: *mut ::core::ffi::c_void, dwfieldid: u32, dwadjacentto: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFieldSubmitButton(::windows_core::from_raw_borrowed(&pcpc), ::core::mem::transmute_copy(&dwfieldid), ::core::mem::transmute_copy(&dwadjacentto)).into()
}
unsafe extern "system" fn OnCreatingWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phwndowner: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OnCreatingWindow() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phwndowner, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetFieldState: SetFieldState::<Identity, Impl, OFFSET>,
SetFieldInteractiveState: SetFieldInteractiveState::<Identity, Impl, OFFSET>,
SetFieldString: SetFieldString::<Identity, Impl, OFFSET>,
SetFieldCheckbox: SetFieldCheckbox::<Identity, Impl, OFFSET>,
SetFieldBitmap: SetFieldBitmap::<Identity, Impl, OFFSET>,
SetFieldComboBoxSelectedItem: SetFieldComboBoxSelectedItem::<Identity, Impl, OFFSET>,
DeleteFieldComboBoxItem: DeleteFieldComboBoxItem::<Identity, Impl, OFFSET>,
AppendFieldComboBoxItem: AppendFieldComboBoxItem::<Identity, Impl, OFFSET>,
SetFieldSubmitButton: SetFieldSubmitButton::<Identity, Impl, OFFSET>,
OnCreatingWindow: OnCreatingWindow::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProviderCredentialEvents as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait ICredentialProviderCredentialEvents2_Impl: Sized + ICredentialProviderCredentialEvents_Impl {
fn BeginFieldUpdates(&self) -> ::windows_core::Result<()>;
fn EndFieldUpdates(&self) -> ::windows_core::Result<()>;
fn SetFieldOptions(&self, credential: ::core::option::Option<&ICredentialProviderCredential>, fieldid: u32, options: CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for ICredentialProviderCredentialEvents2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ICredentialProviderCredentialEvents2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents2_Impl, const OFFSET: isize>() -> ICredentialProviderCredentialEvents2_Vtbl {
unsafe extern "system" fn BeginFieldUpdates<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents2_Impl, const OFFSET: isize>(this: *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.BeginFieldUpdates().into()
}
unsafe extern "system" fn EndFieldUpdates<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents2_Impl, const OFFSET: isize>(this: *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.EndFieldUpdates().into()
}
unsafe extern "system" fn SetFieldOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialEvents2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, credential: *mut ::core::ffi::c_void, fieldid: u32, options: CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFieldOptions(::windows_core::from_raw_borrowed(&credential), ::core::mem::transmute_copy(&fieldid), ::core::mem::transmute_copy(&options)).into()
}
Self {
base__: ICredentialProviderCredentialEvents_Vtbl::new::<Identity, Impl, OFFSET>(),
BeginFieldUpdates: BeginFieldUpdates::<Identity, Impl, OFFSET>,
EndFieldUpdates: EndFieldUpdates::<Identity, Impl, OFFSET>,
SetFieldOptions: SetFieldOptions::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProviderCredentialEvents2 as ::windows_core::ComInterface>::IID || iid == &<ICredentialProviderCredentialEvents as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ICredentialProviderCredentialWithFieldOptions_Impl: Sized {
fn GetFieldOptions(&self, fieldid: u32) -> ::windows_core::Result<CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS>;
}
impl ::windows_core::RuntimeName for ICredentialProviderCredentialWithFieldOptions {}
impl ICredentialProviderCredentialWithFieldOptions_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialWithFieldOptions_Impl, const OFFSET: isize>() -> ICredentialProviderCredentialWithFieldOptions_Vtbl {
unsafe extern "system" fn GetFieldOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderCredentialWithFieldOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fieldid: u32, options: *mut CREDENTIAL_PROVIDER_CREDENTIAL_FIELD_OPTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldOptions(::core::mem::transmute_copy(&fieldid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetFieldOptions: GetFieldOptions::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProviderCredentialWithFieldOptions as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ICredentialProviderEvents_Impl: Sized {
fn CredentialsChanged(&self, upadvisecontext: usize) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ICredentialProviderEvents {}
impl ICredentialProviderEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderEvents_Impl, const OFFSET: isize>() -> ICredentialProviderEvents_Vtbl {
unsafe extern "system" fn CredentialsChanged<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, upadvisecontext: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CredentialsChanged(::core::mem::transmute_copy(&upadvisecontext)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CredentialsChanged: CredentialsChanged::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProviderEvents as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICredentialProviderFilter_Impl: Sized {
fn Filter(&self, cpus: CREDENTIAL_PROVIDER_USAGE_SCENARIO, dwflags: u32, rgclsidproviders: *const ::windows_core::GUID, rgballow: *mut super::super::Foundation::BOOL, cproviders: u32) -> ::windows_core::Result<()>;
fn UpdateRemoteCredential(&self, pcpcsin: *const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION, pcpcsout: *mut CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ICredentialProviderFilter {}
#[cfg(feature = "Win32_Foundation")]
impl ICredentialProviderFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderFilter_Impl, const OFFSET: isize>() -> ICredentialProviderFilter_Vtbl {
unsafe extern "system" fn Filter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cpus: CREDENTIAL_PROVIDER_USAGE_SCENARIO, dwflags: u32, rgclsidproviders: *const ::windows_core::GUID, rgballow: *mut super::super::Foundation::BOOL, cproviders: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Filter(::core::mem::transmute_copy(&cpus), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&rgclsidproviders), ::core::mem::transmute_copy(&rgballow), ::core::mem::transmute_copy(&cproviders)).into()
}
unsafe extern "system" fn UpdateRemoteCredential<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpcsin: *const CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION, pcpcsout: *mut CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateRemoteCredential(::core::mem::transmute_copy(&pcpcsin), ::core::mem::transmute_copy(&pcpcsout)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Filter: Filter::<Identity, Impl, OFFSET>,
UpdateRemoteCredential: UpdateRemoteCredential::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProviderFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ICredentialProviderSetUserArray_Impl: Sized {
fn SetUserArray(&self, users: ::core::option::Option<&ICredentialProviderUserArray>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ICredentialProviderSetUserArray {}
impl ICredentialProviderSetUserArray_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderSetUserArray_Impl, const OFFSET: isize>() -> ICredentialProviderSetUserArray_Vtbl {
unsafe extern "system" fn SetUserArray<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderSetUserArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, users: *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.SetUserArray(::windows_core::from_raw_borrowed(&users)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetUserArray: SetUserArray::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProviderSetUserArray as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait ICredentialProviderUser_Impl: Sized {
fn GetSid(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetProviderID(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn GetStringValue(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetValue(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<super::super::System::Com::StructuredStorage::PROPVARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for ICredentialProviderUser {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ICredentialProviderUser_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderUser_Impl, const OFFSET: isize>() -> ICredentialProviderUser_Vtbl {
unsafe extern "system" fn GetSid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderUser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sid: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSid() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProviderID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderUser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, providerid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProviderID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(providerid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStringValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderUser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, stringvalue: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStringValue(::core::mem::transmute_copy(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(stringvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderUser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, value: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetValue(::core::mem::transmute_copy(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSid: GetSid::<Identity, Impl, OFFSET>,
GetProviderID: GetProviderID::<Identity, Impl, OFFSET>,
GetStringValue: GetStringValue::<Identity, Impl, OFFSET>,
GetValue: GetValue::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProviderUser as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ICredentialProviderUserArray_Impl: Sized {
fn SetProviderFilter(&self, guidprovidertofilterto: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetAccountOptions(&self) -> ::windows_core::Result<CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS>;
fn GetCount(&self) -> ::windows_core::Result<u32>;
fn GetAt(&self, userindex: u32) -> ::windows_core::Result<ICredentialProviderUser>;
}
impl ::windows_core::RuntimeName for ICredentialProviderUserArray {}
impl ICredentialProviderUserArray_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderUserArray_Impl, const OFFSET: isize>() -> ICredentialProviderUserArray_Vtbl {
unsafe extern "system" fn SetProviderFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderUserArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidprovidertofilterto: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProviderFilter(::core::mem::transmute_copy(&guidprovidertofilterto)).into()
}
unsafe extern "system" fn GetAccountOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderUserArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, credentialprovideraccountoptions: *mut CREDENTIAL_PROVIDER_ACCOUNT_OPTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAccountOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(credentialprovideraccountoptions, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderUserArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usercount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(usercount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICredentialProviderUserArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, userindex: u32, user: *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.GetAt(::core::mem::transmute_copy(&userindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(user, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetProviderFilter: SetProviderFilter::<Identity, Impl, OFFSET>,
GetAccountOptions: GetAccountOptions::<Identity, Impl, OFFSET>,
GetCount: GetCount::<Identity, Impl, OFFSET>,
GetAt: GetAt::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICredentialProviderUserArray as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait ICurrentItem_Impl: Sized + IRelatedItem_Impl {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for ICurrentItem {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ICurrentItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICurrentItem_Impl, const OFFSET: isize>() -> ICurrentItem_Vtbl {
Self { base__: IRelatedItem_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICurrentItem as ::windows_core::ComInterface>::IID || iid == &<IRelatedItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ICurrentWorkingDirectory_Impl: Sized {
fn GetDirectory(&self, pwzpath: ::windows_core::PWSTR, cchsize: u32) -> ::windows_core::Result<()>;
fn SetDirectory(&self, pwzpath: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ICurrentWorkingDirectory {}
impl ICurrentWorkingDirectory_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICurrentWorkingDirectory_Impl, const OFFSET: isize>() -> ICurrentWorkingDirectory_Vtbl {
unsafe extern "system" fn GetDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICurrentWorkingDirectory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwzpath: ::windows_core::PWSTR, cchsize: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDirectory(::core::mem::transmute_copy(&pwzpath), ::core::mem::transmute_copy(&cchsize)).into()
}
unsafe extern "system" fn SetDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICurrentWorkingDirectory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwzpath: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDirectory(::core::mem::transmute(&pwzpath)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDirectory: GetDirectory::<Identity, Impl, OFFSET>,
SetDirectory: SetDirectory::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICurrentWorkingDirectory as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait ICustomDestinationList_Impl: Sized {
fn SetAppID(&self, pszappid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn BeginList(&self, pcminslots: *mut u32, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn AppendCategory(&self, pszcategory: &::windows_core::PCWSTR, poa: ::core::option::Option<&Common::IObjectArray>) -> ::windows_core::Result<()>;
fn AppendKnownCategory(&self, category: KNOWNDESTCATEGORY) -> ::windows_core::Result<()>;
fn AddUserTasks(&self, poa: ::core::option::Option<&Common::IObjectArray>) -> ::windows_core::Result<()>;
fn CommitList(&self) -> ::windows_core::Result<()>;
fn GetRemovedDestinations(&self, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn DeleteList(&self, pszappid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn AbortList(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for ICustomDestinationList {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ICustomDestinationList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomDestinationList_Impl, const OFFSET: isize>() -> ICustomDestinationList_Vtbl {
unsafe extern "system" fn SetAppID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomDestinationList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszappid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAppID(::core::mem::transmute(&pszappid)).into()
}
unsafe extern "system" fn BeginList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomDestinationList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcminslots: *mut u32, riid: *const ::windows_core::GUID, ppv: *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();
this.BeginList(::core::mem::transmute_copy(&pcminslots), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn AppendCategory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomDestinationList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszcategory: ::windows_core::PCWSTR, poa: *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.AppendCategory(::core::mem::transmute(&pszcategory), ::windows_core::from_raw_borrowed(&poa)).into()
}
unsafe extern "system" fn AppendKnownCategory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomDestinationList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, category: KNOWNDESTCATEGORY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendKnownCategory(::core::mem::transmute_copy(&category)).into()
}
unsafe extern "system" fn AddUserTasks<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomDestinationList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, poa: *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.AddUserTasks(::windows_core::from_raw_borrowed(&poa)).into()
}
unsafe extern "system" fn CommitList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomDestinationList_Impl, const OFFSET: isize>(this: *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.CommitList().into()
}
unsafe extern "system" fn GetRemovedDestinations<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomDestinationList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetRemovedDestinations(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn DeleteList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomDestinationList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszappid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteList(::core::mem::transmute(&pszappid)).into()
}
unsafe extern "system" fn AbortList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICustomDestinationList_Impl, const OFFSET: isize>(this: *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.AbortList().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAppID: SetAppID::<Identity, Impl, OFFSET>,
BeginList: BeginList::<Identity, Impl, OFFSET>,
AppendCategory: AppendCategory::<Identity, Impl, OFFSET>,
AppendKnownCategory: AppendKnownCategory::<Identity, Impl, OFFSET>,
AddUserTasks: AddUserTasks::<Identity, Impl, OFFSET>,
CommitList: CommitList::<Identity, Impl, OFFSET>,
GetRemovedDestinations: GetRemovedDestinations::<Identity, Impl, OFFSET>,
DeleteList: DeleteList::<Identity, Impl, OFFSET>,
AbortList: AbortList::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICustomDestinationList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IDataObjectAsyncCapability_Impl: Sized {
fn SetAsyncMode(&self, fdoopasync: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetAsyncMode(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn StartOperation(&self, pbcreserved: ::core::option::Option<&super::super::System::Com::IBindCtx>) -> ::windows_core::Result<()>;
fn InOperation(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn EndOperation(&self, hresult: ::windows_core::HRESULT, pbcreserved: ::core::option::Option<&super::super::System::Com::IBindCtx>, dweffects: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IDataObjectAsyncCapability {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IDataObjectAsyncCapability_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataObjectAsyncCapability_Impl, const OFFSET: isize>() -> IDataObjectAsyncCapability_Vtbl {
unsafe extern "system" fn SetAsyncMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataObjectAsyncCapability_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fdoopasync: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAsyncMode(::core::mem::transmute_copy(&fdoopasync)).into()
}
unsafe extern "system" fn GetAsyncMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataObjectAsyncCapability_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfisopasync: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAsyncMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfisopasync, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartOperation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataObjectAsyncCapability_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbcreserved: *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.StartOperation(::windows_core::from_raw_borrowed(&pbcreserved)).into()
}
unsafe extern "system" fn InOperation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataObjectAsyncCapability_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfinasyncop: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.InOperation() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfinasyncop, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EndOperation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataObjectAsyncCapability_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hresult: ::windows_core::HRESULT, pbcreserved: *mut ::core::ffi::c_void, dweffects: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndOperation(::core::mem::transmute_copy(&hresult), ::windows_core::from_raw_borrowed(&pbcreserved), ::core::mem::transmute_copy(&dweffects)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAsyncMode: SetAsyncMode::<Identity, Impl, OFFSET>,
GetAsyncMode: GetAsyncMode::<Identity, Impl, OFFSET>,
StartOperation: StartOperation::<Identity, Impl, OFFSET>,
InOperation: InOperation::<Identity, Impl, OFFSET>,
EndOperation: EndOperation::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDataObjectAsyncCapability as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IDataObjectProvider_Impl: Sized {
fn GetDataObject(&self) -> ::windows_core::Result<super::super::System::Com::IDataObject>;
fn SetDataObject(&self, dataobject: ::core::option::Option<&super::super::System::Com::IDataObject>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IDataObjectProvider {}
#[cfg(feature = "Win32_System_Com")]
impl IDataObjectProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataObjectProvider_Impl, const OFFSET: isize>() -> IDataObjectProvider_Vtbl {
unsafe extern "system" fn GetDataObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataObjectProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dataobject: *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.GetDataObject() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(dataobject, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDataObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataObjectProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dataobject: *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.SetDataObject(::windows_core::from_raw_borrowed(&dataobject)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDataObject: GetDataObject::<Identity, Impl, OFFSET>,
SetDataObject: SetDataObject::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDataObjectProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDataTransferManagerInterop_Impl: Sized {
fn GetForWindow(&self, appwindow: super::super::Foundation::HWND, riid: *const ::windows_core::GUID, datatransfermanager: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn ShowShareUIForWindow(&self, appwindow: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IDataTransferManagerInterop {}
#[cfg(feature = "Win32_Foundation")]
impl IDataTransferManagerInterop_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataTransferManagerInterop_Impl, const OFFSET: isize>() -> IDataTransferManagerInterop_Vtbl {
unsafe extern "system" fn GetForWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataTransferManagerInterop_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appwindow: super::super::Foundation::HWND, riid: *const ::windows_core::GUID, datatransfermanager: *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();
this.GetForWindow(::core::mem::transmute_copy(&appwindow), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&datatransfermanager)).into()
}
unsafe extern "system" fn ShowShareUIForWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDataTransferManagerInterop_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appwindow: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowShareUIForWindow(::core::mem::transmute_copy(&appwindow)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetForWindow: GetForWindow::<Identity, Impl, OFFSET>,
ShowShareUIForWindow: ShowShareUIForWindow::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDataTransferManagerInterop as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Registry\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Registry")]
pub trait IDefaultExtractIconInit_Impl: Sized {
fn SetFlags(&self, uflags: u32) -> ::windows_core::Result<()>;
fn SetKey(&self, hkey: super::super::System::Registry::HKEY) -> ::windows_core::Result<()>;
fn SetNormalIcon(&self, pszfile: &::windows_core::PCWSTR, iicon: i32) -> ::windows_core::Result<()>;
fn SetOpenIcon(&self, pszfile: &::windows_core::PCWSTR, iicon: i32) -> ::windows_core::Result<()>;
fn SetShortcutIcon(&self, pszfile: &::windows_core::PCWSTR, iicon: i32) -> ::windows_core::Result<()>;
fn SetDefaultIcon(&self, pszfile: &::windows_core::PCWSTR, iicon: i32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Registry")]
impl ::windows_core::RuntimeName for IDefaultExtractIconInit {}
#[cfg(feature = "Win32_System_Registry")]
impl IDefaultExtractIconInit_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultExtractIconInit_Impl, const OFFSET: isize>() -> IDefaultExtractIconInit_Vtbl {
unsafe extern "system" fn SetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultExtractIconInit_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFlags(::core::mem::transmute_copy(&uflags)).into()
}
unsafe extern "system" fn SetKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultExtractIconInit_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hkey: super::super::System::Registry::HKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKey(::core::mem::transmute_copy(&hkey)).into()
}
unsafe extern "system" fn SetNormalIcon<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultExtractIconInit_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfile: ::windows_core::PCWSTR, iicon: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNormalIcon(::core::mem::transmute(&pszfile), ::core::mem::transmute_copy(&iicon)).into()
}
unsafe extern "system" fn SetOpenIcon<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultExtractIconInit_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfile: ::windows_core::PCWSTR, iicon: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOpenIcon(::core::mem::transmute(&pszfile), ::core::mem::transmute_copy(&iicon)).into()
}
unsafe extern "system" fn SetShortcutIcon<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultExtractIconInit_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfile: ::windows_core::PCWSTR, iicon: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetShortcutIcon(::core::mem::transmute(&pszfile), ::core::mem::transmute_copy(&iicon)).into()
}
unsafe extern "system" fn SetDefaultIcon<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultExtractIconInit_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfile: ::windows_core::PCWSTR, iicon: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDefaultIcon(::core::mem::transmute(&pszfile), ::core::mem::transmute_copy(&iicon)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetFlags: SetFlags::<Identity, Impl, OFFSET>,
SetKey: SetKey::<Identity, Impl, OFFSET>,
SetNormalIcon: SetNormalIcon::<Identity, Impl, OFFSET>,
SetOpenIcon: SetOpenIcon::<Identity, Impl, OFFSET>,
SetShortcutIcon: SetShortcutIcon::<Identity, Impl, OFFSET>,
SetDefaultIcon: SetDefaultIcon::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDefaultExtractIconInit as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))]
pub trait IDefaultFolderMenuInitialize_Impl: Sized {
fn Initialize(&self, hwnd: super::super::Foundation::HWND, pcmcb: ::core::option::Option<&IContextMenuCB>, pidlfolder: *const Common::ITEMIDLIST, psf: ::core::option::Option<&IShellFolder>, cidl: u32, apidl: *const *const Common::ITEMIDLIST, punkassociation: ::core::option::Option<&::windows_core::IUnknown>, ckeys: u32, akeys: *const super::super::System::Registry::HKEY) -> ::windows_core::Result<()>;
fn SetMenuRestrictions(&self, dfmrvalues: DEFAULT_FOLDER_MENU_RESTRICTIONS) -> ::windows_core::Result<()>;
fn GetMenuRestrictions(&self, dfmrmask: DEFAULT_FOLDER_MENU_RESTRICTIONS) -> ::windows_core::Result<DEFAULT_FOLDER_MENU_RESTRICTIONS>;
fn SetHandlerClsid(&self, rclsid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IDefaultFolderMenuInitialize {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))]
impl IDefaultFolderMenuInitialize_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultFolderMenuInitialize_Impl, const OFFSET: isize>() -> IDefaultFolderMenuInitialize_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultFolderMenuInitialize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, pcmcb: *mut ::core::ffi::c_void, pidlfolder: *const Common::ITEMIDLIST, psf: *mut ::core::ffi::c_void, cidl: u32, apidl: *const *const Common::ITEMIDLIST, punkassociation: *mut ::core::ffi::c_void, ckeys: u32, akeys: *const super::super::System::Registry::HKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&hwnd), ::windows_core::from_raw_borrowed(&pcmcb), ::core::mem::transmute_copy(&pidlfolder), ::windows_core::from_raw_borrowed(&psf), ::core::mem::transmute_copy(&cidl), ::core::mem::transmute_copy(&apidl), ::windows_core::from_raw_borrowed(&punkassociation), ::core::mem::transmute_copy(&ckeys), ::core::mem::transmute_copy(&akeys)).into()
}
unsafe extern "system" fn SetMenuRestrictions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultFolderMenuInitialize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dfmrvalues: DEFAULT_FOLDER_MENU_RESTRICTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMenuRestrictions(::core::mem::transmute_copy(&dfmrvalues)).into()
}
unsafe extern "system" fn GetMenuRestrictions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultFolderMenuInitialize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dfmrmask: DEFAULT_FOLDER_MENU_RESTRICTIONS, pdfmrvalues: *mut DEFAULT_FOLDER_MENU_RESTRICTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMenuRestrictions(::core::mem::transmute_copy(&dfmrmask)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdfmrvalues, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetHandlerClsid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDefaultFolderMenuInitialize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rclsid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHandlerClsid(::core::mem::transmute_copy(&rclsid)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
SetMenuRestrictions: SetMenuRestrictions::<Identity, Impl, OFFSET>,
GetMenuRestrictions: GetMenuRestrictions::<Identity, Impl, OFFSET>,
SetHandlerClsid: SetHandlerClsid::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDefaultFolderMenuInitialize as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IDelegateFolder_Impl: Sized {
fn SetItemAlloc(&self, pmalloc: ::core::option::Option<&super::super::System::Com::IMalloc>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IDelegateFolder {}
#[cfg(feature = "Win32_System_Com")]
impl IDelegateFolder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDelegateFolder_Impl, const OFFSET: isize>() -> IDelegateFolder_Vtbl {
unsafe extern "system" fn SetItemAlloc<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDelegateFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmalloc: *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.SetItemAlloc(::windows_core::from_raw_borrowed(&pmalloc)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetItemAlloc: SetItemAlloc::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDelegateFolder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IDelegateItem_Impl: Sized + IRelatedItem_Impl {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IDelegateItem {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IDelegateItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDelegateItem_Impl, const OFFSET: isize>() -> IDelegateItem_Vtbl {
Self { base__: IRelatedItem_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDelegateItem as ::windows_core::ComInterface>::IID || iid == &<IRelatedItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
pub trait IDeskBand_Impl: Sized + IDockingWindow_Impl {
fn GetBandInfo(&self, dwbandid: u32, dwviewmode: u32, pdbi: *mut DESKBANDINFO) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl ::windows_core::RuntimeName for IDeskBand {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl IDeskBand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBand_Impl, const OFFSET: isize>() -> IDeskBand_Vtbl {
unsafe extern "system" fn GetBandInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwbandid: u32, dwviewmode: u32, pdbi: *mut DESKBANDINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBandInfo(::core::mem::transmute_copy(&dwbandid), ::core::mem::transmute_copy(&dwviewmode), ::core::mem::transmute_copy(&pdbi)).into()
}
Self { base__: IDockingWindow_Vtbl::new::<Identity, Impl, OFFSET>(), GetBandInfo: GetBandInfo::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDeskBand as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID || iid == &<IDockingWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
pub trait IDeskBand2_Impl: Sized + IDeskBand_Impl {
fn CanRenderComposited(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn SetCompositionState(&self, fcompositionenabled: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetCompositionState(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl ::windows_core::RuntimeName for IDeskBand2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl IDeskBand2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBand2_Impl, const OFFSET: isize>() -> IDeskBand2_Vtbl {
unsafe extern "system" fn CanRenderComposited<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBand2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfcanrendercomposited: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CanRenderComposited() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfcanrendercomposited, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCompositionState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBand2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fcompositionenabled: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCompositionState(::core::mem::transmute_copy(&fcompositionenabled)).into()
}
unsafe extern "system" fn GetCompositionState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBand2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfcompositionenabled: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCompositionState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfcompositionenabled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IDeskBand_Vtbl::new::<Identity, Impl, OFFSET>(),
CanRenderComposited: CanRenderComposited::<Identity, Impl, OFFSET>,
SetCompositionState: SetCompositionState::<Identity, Impl, OFFSET>,
GetCompositionState: GetCompositionState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDeskBand2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID || iid == &<IDockingWindow as ::windows_core::ComInterface>::IID || iid == &<IDeskBand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IDeskBandInfo_Impl: Sized {
fn GetDefaultBandWidth(&self, dwbandid: u32, dwviewmode: u32) -> ::windows_core::Result<i32>;
}
impl ::windows_core::RuntimeName for IDeskBandInfo {}
impl IDeskBandInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBandInfo_Impl, const OFFSET: isize>() -> IDeskBandInfo_Vtbl {
unsafe extern "system" fn GetDefaultBandWidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBandInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwbandid: u32, dwviewmode: u32, pnwidth: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDefaultBandWidth(::core::mem::transmute_copy(&dwbandid), ::core::mem::transmute_copy(&dwviewmode)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pnwidth, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetDefaultBandWidth: GetDefaultBandWidth::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDeskBandInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
pub trait IDeskBar_Impl: Sized + super::super::System::Ole::IOleWindow_Impl {
fn SetClient(&self, punkclient: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn GetClient(&self) -> ::windows_core::Result<::windows_core::IUnknown>;
fn OnPosRectChangeDB(&self, prc: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl ::windows_core::RuntimeName for IDeskBar {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl IDeskBar_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBar_Impl, const OFFSET: isize>() -> IDeskBar_Vtbl {
unsafe extern "system" fn SetClient<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkclient: *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.SetClient(::windows_core::from_raw_borrowed(&punkclient)).into()
}
unsafe extern "system" fn GetClient<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunkclient: *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.GetClient() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunkclient, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OnPosRectChangeDB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prc: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnPosRectChangeDB(::core::mem::transmute_copy(&prc)).into()
}
Self {
base__: super::super::System::Ole::IOleWindow_Vtbl::new::<Identity, Impl, OFFSET>(),
SetClient: SetClient::<Identity, Impl, OFFSET>,
GetClient: GetClient::<Identity, Impl, OFFSET>,
OnPosRectChangeDB: OnPosRectChangeDB::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDeskBar as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
pub trait IDeskBarClient_Impl: Sized + super::super::System::Ole::IOleWindow_Impl {
fn SetDeskBarSite(&self, punksite: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn SetModeDBC(&self, dwmode: u32) -> ::windows_core::Result<()>;
fn UIActivateDBC(&self, dwstate: u32) -> ::windows_core::Result<()>;
fn GetSize(&self, dwwhich: u32) -> ::windows_core::Result<super::super::Foundation::RECT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl ::windows_core::RuntimeName for IDeskBarClient {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl IDeskBarClient_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBarClient_Impl, const OFFSET: isize>() -> IDeskBarClient_Vtbl {
unsafe extern "system" fn SetDeskBarSite<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBarClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punksite: *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.SetDeskBarSite(::windows_core::from_raw_borrowed(&punksite)).into()
}
unsafe extern "system" fn SetModeDBC<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBarClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwmode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetModeDBC(::core::mem::transmute_copy(&dwmode)).into()
}
unsafe extern "system" fn UIActivateDBC<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBarClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstate: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UIActivateDBC(::core::mem::transmute_copy(&dwstate)).into()
}
unsafe extern "system" fn GetSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeskBarClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwwhich: u32, prc: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSize(::core::mem::transmute_copy(&dwwhich)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prc, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Ole::IOleWindow_Vtbl::new::<Identity, Impl, OFFSET>(),
SetDeskBarSite: SetDeskBarSite::<Identity, Impl, OFFSET>,
SetModeDBC: SetModeDBC::<Identity, Impl, OFFSET>,
UIActivateDBC: UIActivateDBC::<Identity, Impl, OFFSET>,
GetSize: GetSize::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDeskBarClient as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IDesktopGadget_Impl: Sized {
fn RunGadget(&self, gadgetpath: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IDesktopGadget {}
impl IDesktopGadget_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopGadget_Impl, const OFFSET: isize>() -> IDesktopGadget_Vtbl {
unsafe extern "system" fn RunGadget<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopGadget_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, gadgetpath: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RunGadget(::core::mem::transmute(&gadgetpath)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), RunGadget: RunGadget::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDesktopGadget as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDesktopWallpaper_Impl: Sized {
fn SetWallpaper(&self, monitorid: &::windows_core::PCWSTR, wallpaper: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetWallpaper(&self, monitorid: &::windows_core::PCWSTR) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetMonitorDevicePathAt(&self, monitorindex: u32) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetMonitorDevicePathCount(&self) -> ::windows_core::Result<u32>;
fn GetMonitorRECT(&self, monitorid: &::windows_core::PCWSTR) -> ::windows_core::Result<super::super::Foundation::RECT>;
fn SetBackgroundColor(&self, color: super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
fn GetBackgroundColor(&self) -> ::windows_core::Result<super::super::Foundation::COLORREF>;
fn SetPosition(&self, position: DESKTOP_WALLPAPER_POSITION) -> ::windows_core::Result<()>;
fn GetPosition(&self) -> ::windows_core::Result<DESKTOP_WALLPAPER_POSITION>;
fn SetSlideshow(&self, items: ::core::option::Option<&IShellItemArray>) -> ::windows_core::Result<()>;
fn GetSlideshow(&self) -> ::windows_core::Result<IShellItemArray>;
fn SetSlideshowOptions(&self, options: DESKTOP_SLIDESHOW_OPTIONS, slideshowtick: u32) -> ::windows_core::Result<()>;
fn GetSlideshowOptions(&self, options: *mut DESKTOP_SLIDESHOW_OPTIONS, slideshowtick: *mut u32) -> ::windows_core::Result<()>;
fn AdvanceSlideshow(&self, monitorid: &::windows_core::PCWSTR, direction: DESKTOP_SLIDESHOW_DIRECTION) -> ::windows_core::Result<()>;
fn GetStatus(&self) -> ::windows_core::Result<DESKTOP_SLIDESHOW_STATE>;
fn Enable(&self, enable: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IDesktopWallpaper {}
#[cfg(feature = "Win32_Foundation")]
impl IDesktopWallpaper_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>() -> IDesktopWallpaper_Vtbl {
unsafe extern "system" fn SetWallpaper<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, monitorid: ::windows_core::PCWSTR, wallpaper: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWallpaper(::core::mem::transmute(&monitorid), ::core::mem::transmute(&wallpaper)).into()
}
unsafe extern "system" fn GetWallpaper<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, monitorid: ::windows_core::PCWSTR, wallpaper: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetWallpaper(::core::mem::transmute(&monitorid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(wallpaper, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMonitorDevicePathAt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, monitorindex: u32, monitorid: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMonitorDevicePathAt(::core::mem::transmute_copy(&monitorindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(monitorid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMonitorDevicePathCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMonitorDevicePathCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMonitorRECT<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, monitorid: ::windows_core::PCWSTR, displayrect: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMonitorRECT(::core::mem::transmute(&monitorid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(displayrect, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBackgroundColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, color: super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBackgroundColor(::core::mem::transmute_copy(&color)).into()
}
unsafe extern "system" fn GetBackgroundColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, color: *mut super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetBackgroundColor() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(color, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, position: DESKTOP_WALLPAPER_POSITION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPosition(::core::mem::transmute_copy(&position)).into()
}
unsafe extern "system" fn GetPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, position: *mut DESKTOP_WALLPAPER_POSITION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPosition() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(position, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSlideshow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, items: *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.SetSlideshow(::windows_core::from_raw_borrowed(&items)).into()
}
unsafe extern "system" fn GetSlideshow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, items: *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.GetSlideshow() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(items, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSlideshowOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: DESKTOP_SLIDESHOW_OPTIONS, slideshowtick: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSlideshowOptions(::core::mem::transmute_copy(&options), ::core::mem::transmute_copy(&slideshowtick)).into()
}
unsafe extern "system" fn GetSlideshowOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut DESKTOP_SLIDESHOW_OPTIONS, slideshowtick: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSlideshowOptions(::core::mem::transmute_copy(&options), ::core::mem::transmute_copy(&slideshowtick)).into()
}
unsafe extern "system" fn AdvanceSlideshow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, monitorid: ::windows_core::PCWSTR, direction: DESKTOP_SLIDESHOW_DIRECTION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AdvanceSlideshow(::core::mem::transmute(&monitorid), ::core::mem::transmute_copy(&direction)).into()
}
unsafe extern "system" fn GetStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, state: *mut DESKTOP_SLIDESHOW_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(state, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Enable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDesktopWallpaper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Enable(::core::mem::transmute_copy(&enable)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetWallpaper: SetWallpaper::<Identity, Impl, OFFSET>,
GetWallpaper: GetWallpaper::<Identity, Impl, OFFSET>,
GetMonitorDevicePathAt: GetMonitorDevicePathAt::<Identity, Impl, OFFSET>,
GetMonitorDevicePathCount: GetMonitorDevicePathCount::<Identity, Impl, OFFSET>,
GetMonitorRECT: GetMonitorRECT::<Identity, Impl, OFFSET>,
SetBackgroundColor: SetBackgroundColor::<Identity, Impl, OFFSET>,
GetBackgroundColor: GetBackgroundColor::<Identity, Impl, OFFSET>,
SetPosition: SetPosition::<Identity, Impl, OFFSET>,
GetPosition: GetPosition::<Identity, Impl, OFFSET>,
SetSlideshow: SetSlideshow::<Identity, Impl, OFFSET>,
GetSlideshow: GetSlideshow::<Identity, Impl, OFFSET>,
SetSlideshowOptions: SetSlideshowOptions::<Identity, Impl, OFFSET>,
GetSlideshowOptions: GetSlideshowOptions::<Identity, Impl, OFFSET>,
AdvanceSlideshow: AdvanceSlideshow::<Identity, Impl, OFFSET>,
GetStatus: GetStatus::<Identity, Impl, OFFSET>,
Enable: Enable::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDesktopWallpaper as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IDestinationStreamFactory_Impl: Sized {
fn GetDestinationStream(&self) -> ::windows_core::Result<super::super::System::Com::IStream>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IDestinationStreamFactory {}
#[cfg(feature = "Win32_System_Com")]
impl IDestinationStreamFactory_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDestinationStreamFactory_Impl, const OFFSET: isize>() -> IDestinationStreamFactory_Vtbl {
unsafe extern "system" fn GetDestinationStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDestinationStreamFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppstm: *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.GetDestinationStream() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppstm, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetDestinationStream: GetDestinationStream::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDestinationStreamFactory as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IDisplayItem_Impl: Sized + IRelatedItem_Impl {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IDisplayItem {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IDisplayItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDisplayItem_Impl, const OFFSET: isize>() -> IDisplayItem_Vtbl {
Self { base__: IRelatedItem_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDisplayItem as ::windows_core::ComInterface>::IID || iid == &<IRelatedItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IDocViewSite_Impl: Sized {
fn OnSetTitle(&self, pvtitle: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IDocViewSite {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IDocViewSite_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDocViewSite_Impl, const OFFSET: isize>() -> IDocViewSite_Vtbl {
unsafe extern "system" fn OnSetTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDocViewSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvtitle: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnSetTitle(::core::mem::transmute_copy(&pvtitle)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), OnSetTitle: OnSetTitle::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDocViewSite as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
pub trait IDockingWindow_Impl: Sized + super::super::System::Ole::IOleWindow_Impl {
fn ShowDW(&self, fshow: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn CloseDW(&self, dwreserved: u32) -> ::windows_core::Result<()>;
fn ResizeBorderDW(&self, prcborder: *const super::super::Foundation::RECT, punktoolbarsite: ::core::option::Option<&::windows_core::IUnknown>, freserved: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl ::windows_core::RuntimeName for IDockingWindow {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl IDockingWindow_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindow_Impl, const OFFSET: isize>() -> IDockingWindow_Vtbl {
unsafe extern "system" fn ShowDW<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fshow: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowDW(::core::mem::transmute_copy(&fshow)).into()
}
unsafe extern "system" fn CloseDW<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CloseDW(::core::mem::transmute_copy(&dwreserved)).into()
}
unsafe extern "system" fn ResizeBorderDW<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prcborder: *const super::super::Foundation::RECT, punktoolbarsite: *mut ::core::ffi::c_void, freserved: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ResizeBorderDW(::core::mem::transmute_copy(&prcborder), ::windows_core::from_raw_borrowed(&punktoolbarsite), ::core::mem::transmute_copy(&freserved)).into()
}
Self {
base__: super::super::System::Ole::IOleWindow_Vtbl::new::<Identity, Impl, OFFSET>(),
ShowDW: ShowDW::<Identity, Impl, OFFSET>,
CloseDW: CloseDW::<Identity, Impl, OFFSET>,
ResizeBorderDW: ResizeBorderDW::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDockingWindow as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
pub trait IDockingWindowFrame_Impl: Sized + super::super::System::Ole::IOleWindow_Impl {
fn AddToolbar(&self, punksrc: ::core::option::Option<&::windows_core::IUnknown>, pwszitem: &::windows_core::PCWSTR, dwaddflags: u32) -> ::windows_core::Result<()>;
fn RemoveToolbar(&self, punksrc: ::core::option::Option<&::windows_core::IUnknown>, dwremoveflags: u32) -> ::windows_core::Result<()>;
fn FindToolbar(&self, pwszitem: &::windows_core::PCWSTR, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl ::windows_core::RuntimeName for IDockingWindowFrame {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl IDockingWindowFrame_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindowFrame_Impl, const OFFSET: isize>() -> IDockingWindowFrame_Vtbl {
unsafe extern "system" fn AddToolbar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindowFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punksrc: *mut ::core::ffi::c_void, pwszitem: ::windows_core::PCWSTR, dwaddflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddToolbar(::windows_core::from_raw_borrowed(&punksrc), ::core::mem::transmute(&pwszitem), ::core::mem::transmute_copy(&dwaddflags)).into()
}
unsafe extern "system" fn RemoveToolbar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindowFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punksrc: *mut ::core::ffi::c_void, dwremoveflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveToolbar(::windows_core::from_raw_borrowed(&punksrc), ::core::mem::transmute_copy(&dwremoveflags)).into()
}
unsafe extern "system" fn FindToolbar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindowFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwszitem: ::windows_core::PCWSTR, riid: *const ::windows_core::GUID, ppv: *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();
this.FindToolbar(::core::mem::transmute(&pwszitem), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self {
base__: super::super::System::Ole::IOleWindow_Vtbl::new::<Identity, Impl, OFFSET>(),
AddToolbar: AddToolbar::<Identity, Impl, OFFSET>,
RemoveToolbar: RemoveToolbar::<Identity, Impl, OFFSET>,
FindToolbar: FindToolbar::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDockingWindowFrame as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
pub trait IDockingWindowSite_Impl: Sized + super::super::System::Ole::IOleWindow_Impl {
fn GetBorderDW(&self, punkobj: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<super::super::Foundation::RECT>;
fn RequestBorderSpaceDW(&self, punkobj: ::core::option::Option<&::windows_core::IUnknown>, pbw: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn SetBorderSpaceDW(&self, punkobj: ::core::option::Option<&::windows_core::IUnknown>, pbw: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl ::windows_core::RuntimeName for IDockingWindowSite {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl IDockingWindowSite_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindowSite_Impl, const OFFSET: isize>() -> IDockingWindowSite_Vtbl {
unsafe extern "system" fn GetBorderDW<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindowSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkobj: *mut ::core::ffi::c_void, prcborder: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetBorderDW(::windows_core::from_raw_borrowed(&punkobj)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prcborder, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RequestBorderSpaceDW<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindowSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkobj: *mut ::core::ffi::c_void, pbw: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RequestBorderSpaceDW(::windows_core::from_raw_borrowed(&punkobj), ::core::mem::transmute_copy(&pbw)).into()
}
unsafe extern "system" fn SetBorderSpaceDW<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDockingWindowSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkobj: *mut ::core::ffi::c_void, pbw: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBorderSpaceDW(::windows_core::from_raw_borrowed(&punkobj), ::core::mem::transmute_copy(&pbw)).into()
}
Self {
base__: super::super::System::Ole::IOleWindow_Vtbl::new::<Identity, Impl, OFFSET>(),
GetBorderDW: GetBorderDW::<Identity, Impl, OFFSET>,
RequestBorderSpaceDW: RequestBorderSpaceDW::<Identity, Impl, OFFSET>,
SetBorderSpaceDW: SetBorderSpaceDW::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDockingWindowSite as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))]
pub trait IDragSourceHelper_Impl: Sized {
fn InitializeFromBitmap(&self, pshdi: *const SHDRAGIMAGE, pdataobject: ::core::option::Option<&super::super::System::Com::IDataObject>) -> ::windows_core::Result<()>;
fn InitializeFromWindow(&self, hwnd: super::super::Foundation::HWND, ppt: *const super::super::Foundation::POINT, pdataobject: ::core::option::Option<&super::super::System::Com::IDataObject>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IDragSourceHelper {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))]
impl IDragSourceHelper_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDragSourceHelper_Impl, const OFFSET: isize>() -> IDragSourceHelper_Vtbl {
unsafe extern "system" fn InitializeFromBitmap<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDragSourceHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pshdi: *const SHDRAGIMAGE, pdataobject: *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.InitializeFromBitmap(::core::mem::transmute_copy(&pshdi), ::windows_core::from_raw_borrowed(&pdataobject)).into()
}
unsafe extern "system" fn InitializeFromWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDragSourceHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, ppt: *const super::super::Foundation::POINT, pdataobject: *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.InitializeFromWindow(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&ppt), ::windows_core::from_raw_borrowed(&pdataobject)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
InitializeFromBitmap: InitializeFromBitmap::<Identity, Impl, OFFSET>,
InitializeFromWindow: InitializeFromWindow::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDragSourceHelper as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))]
pub trait IDragSourceHelper2_Impl: Sized + IDragSourceHelper_Impl {
fn SetFlags(&self, dwflags: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IDragSourceHelper2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com"))]
impl IDragSourceHelper2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDragSourceHelper2_Impl, const OFFSET: isize>() -> IDragSourceHelper2_Vtbl {
unsafe extern "system" fn SetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDragSourceHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFlags(::core::mem::transmute_copy(&dwflags)).into()
}
Self { base__: IDragSourceHelper_Vtbl::new::<Identity, Impl, OFFSET>(), SetFlags: SetFlags::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDragSourceHelper2 as ::windows_core::ComInterface>::IID || iid == &<IDragSourceHelper as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
pub trait IDropTargetHelper_Impl: Sized {
fn DragEnter(&self, hwndtarget: super::super::Foundation::HWND, pdataobject: ::core::option::Option<&super::super::System::Com::IDataObject>, ppt: *const super::super::Foundation::POINT, dweffect: super::super::System::Ole::DROPEFFECT) -> ::windows_core::Result<()>;
fn DragLeave(&self) -> ::windows_core::Result<()>;
fn DragOver(&self, ppt: *const super::super::Foundation::POINT, dweffect: super::super::System::Ole::DROPEFFECT) -> ::windows_core::Result<()>;
fn Drop(&self, pdataobject: ::core::option::Option<&super::super::System::Com::IDataObject>, ppt: *const super::super::Foundation::POINT, dweffect: super::super::System::Ole::DROPEFFECT) -> ::windows_core::Result<()>;
fn Show(&self, fshow: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl ::windows_core::RuntimeName for IDropTargetHelper {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl IDropTargetHelper_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDropTargetHelper_Impl, const OFFSET: isize>() -> IDropTargetHelper_Vtbl {
unsafe extern "system" fn DragEnter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDropTargetHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndtarget: super::super::Foundation::HWND, pdataobject: *mut ::core::ffi::c_void, ppt: *const super::super::Foundation::POINT, dweffect: super::super::System::Ole::DROPEFFECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DragEnter(::core::mem::transmute_copy(&hwndtarget), ::windows_core::from_raw_borrowed(&pdataobject), ::core::mem::transmute_copy(&ppt), ::core::mem::transmute_copy(&dweffect)).into()
}
unsafe extern "system" fn DragLeave<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDropTargetHelper_Impl, const OFFSET: isize>(this: *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.DragLeave().into()
}
unsafe extern "system" fn DragOver<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDropTargetHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppt: *const super::super::Foundation::POINT, dweffect: super::super::System::Ole::DROPEFFECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DragOver(::core::mem::transmute_copy(&ppt), ::core::mem::transmute_copy(&dweffect)).into()
}
unsafe extern "system" fn Drop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDropTargetHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdataobject: *mut ::core::ffi::c_void, ppt: *const super::super::Foundation::POINT, dweffect: super::super::System::Ole::DROPEFFECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Drop(::windows_core::from_raw_borrowed(&pdataobject), ::core::mem::transmute_copy(&ppt), ::core::mem::transmute_copy(&dweffect)).into()
}
unsafe extern "system" fn Show<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDropTargetHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fshow: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Show(::core::mem::transmute_copy(&fshow)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
DragEnter: DragEnter::<Identity, Impl, OFFSET>,
DragLeave: DragLeave::<Identity, Impl, OFFSET>,
DragOver: DragOver::<Identity, Impl, OFFSET>,
Drop: Drop::<Identity, Impl, OFFSET>,
Show: Show::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDropTargetHelper as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IDynamicHWHandler_Impl: Sized {
fn GetDynamicInfo(&self, pszdeviceid: &::windows_core::PCWSTR, dwcontenttype: u32) -> ::windows_core::Result<::windows_core::PWSTR>;
}
impl ::windows_core::RuntimeName for IDynamicHWHandler {}
impl IDynamicHWHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDynamicHWHandler_Impl, const OFFSET: isize>() -> IDynamicHWHandler_Vtbl {
unsafe extern "system" fn GetDynamicInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDynamicHWHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdeviceid: ::windows_core::PCWSTR, dwcontenttype: u32, ppszaction: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDynamicInfo(::core::mem::transmute(&pszdeviceid), ::core::mem::transmute_copy(&dwcontenttype)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszaction, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetDynamicInfo: GetDynamicInfo::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDynamicHWHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IEnumACString_Impl: Sized + super::super::System::Com::IEnumString_Impl {
fn NextItem(&self, pszurl: ::windows_core::PWSTR, cchmax: u32, pulsortindex: *mut u32) -> ::windows_core::Result<()>;
fn SetEnumOptions(&self, dwoptions: u32) -> ::windows_core::Result<()>;
fn GetEnumOptions(&self) -> ::windows_core::Result<u32>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IEnumACString {}
#[cfg(feature = "Win32_System_Com")]
impl IEnumACString_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumACString_Impl, const OFFSET: isize>() -> IEnumACString_Vtbl {
unsafe extern "system" fn NextItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumACString_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszurl: ::windows_core::PWSTR, cchmax: u32, pulsortindex: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NextItem(::core::mem::transmute_copy(&pszurl), ::core::mem::transmute_copy(&cchmax), ::core::mem::transmute_copy(&pulsortindex)).into()
}
unsafe extern "system" fn SetEnumOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumACString_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwoptions: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnumOptions(::core::mem::transmute_copy(&dwoptions)).into()
}
unsafe extern "system" fn GetEnumOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumACString_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwoptions: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEnumOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwoptions, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IEnumString_Vtbl::new::<Identity, Impl, OFFSET>(),
NextItem: NextItem::<Identity, Impl, OFFSET>,
SetEnumOptions: SetEnumOptions::<Identity, Impl, OFFSET>,
GetEnumOptions: GetEnumOptions::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumACString as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IEnumString as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumAssocHandlers_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<IAssocHandler>, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IEnumAssocHandlers {}
impl IEnumAssocHandlers_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumAssocHandlers_Impl, const OFFSET: isize>() -> IEnumAssocHandlers_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumAssocHandlers_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Next: Next::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumAssocHandlers as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumExplorerCommand_Impl: Sized {
fn Next(&self, celt: u32, puicommand: *mut ::core::option::Option<IExplorerCommand>, pceltfetched: *mut u32) -> ::windows_core::HRESULT;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumExplorerCommand>;
}
impl ::windows_core::RuntimeName for IEnumExplorerCommand {}
impl IEnumExplorerCommand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumExplorerCommand_Impl, const OFFSET: isize>() -> IEnumExplorerCommand_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, puicommand: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&puicommand), ::core::mem::transmute_copy(&pceltfetched))
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumExplorerCommand_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumExplorerCommand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumExtraSearch_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut EXTRASEARCH, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumExtraSearch>;
}
impl ::windows_core::RuntimeName for IEnumExtraSearch {}
impl IEnumExtraSearch_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumExtraSearch_Impl, const OFFSET: isize>() -> IEnumExtraSearch_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumExtraSearch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut EXTRASEARCH, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumExtraSearch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumExtraSearch_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumExtraSearch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumExtraSearch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IEnumFullIDList_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut *mut Common::ITEMIDLIST, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumFullIDList>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IEnumFullIDList {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IEnumFullIDList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumFullIDList_Impl, const OFFSET: isize>() -> IEnumFullIDList_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumFullIDList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut Common::ITEMIDLIST, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumFullIDList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumFullIDList_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumFullIDList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumFullIDList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumHLITEM_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut HLITEM, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumHLITEM>;
}
impl ::windows_core::RuntimeName for IEnumHLITEM {}
impl IEnumHLITEM_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumHLITEM_Impl, const OFFSET: isize>() -> IEnumHLITEM_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumHLITEM_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut HLITEM, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumHLITEM_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumHLITEM_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumHLITEM_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppienumhlitem: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppienumhlitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumHLITEM as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IEnumIDList_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut *mut Common::ITEMIDLIST, pceltfetched: *mut u32) -> ::windows_core::HRESULT;
fn Skip(&self, celt: u32) -> ::windows_core::HRESULT;
fn Reset(&self) -> ::windows_core::HRESULT;
fn Clone(&self, ppenum: *mut ::core::option::Option<IEnumIDList>) -> ::windows_core::HRESULT;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IEnumIDList {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IEnumIDList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumIDList_Impl, const OFFSET: isize>() -> IEnumIDList_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumIDList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut Common::ITEMIDLIST, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched))
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumIDList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt))
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumIDList_Impl, const OFFSET: isize>(this: *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.Reset()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumIDList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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();
this.Clone(::core::mem::transmute_copy(&ppenum))
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumIDList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumObjects_Impl: Sized {
fn Next(&self, celt: u32, riid: *const ::windows_core::GUID, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumObjects>;
}
impl ::windows_core::RuntimeName for IEnumObjects {}
impl IEnumObjects_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumObjects_Impl, const OFFSET: isize>() -> IEnumObjects_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, riid: *const ::windows_core::GUID, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumObjects_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumObjects as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumPublishedApps_Impl: Sized {
fn Next(&self) -> ::windows_core::Result<IPublishedApp>;
fn Reset(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IEnumPublishedApps {}
impl IEnumPublishedApps_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPublishedApps_Impl, const OFFSET: isize>() -> IEnumPublishedApps_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPublishedApps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pia: *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.Next() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pia, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPublishedApps_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Next: Next::<Identity, Impl, OFFSET>, Reset: Reset::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumPublishedApps as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumReadyCallback_Impl: Sized {
fn EnumReady(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IEnumReadyCallback {}
impl IEnumReadyCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumReadyCallback_Impl, const OFFSET: isize>() -> IEnumReadyCallback_Vtbl {
unsafe extern "system" fn EnumReady<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumReadyCallback_Impl, const OFFSET: isize>(this: *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.EnumReady().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), EnumReady: EnumReady::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumReadyCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumResources_Impl: Sized {
fn Next(&self, celt: u32, psir: *mut SHELL_ITEM_RESOURCE, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumResources>;
}
impl ::windows_core::RuntimeName for IEnumResources {}
impl IEnumResources_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumResources_Impl, const OFFSET: isize>() -> IEnumResources_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, psir: *mut SHELL_ITEM_RESOURCE, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&psir), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumResources_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenumr: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenumr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumResources as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumShellItems_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<IShellItem>, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumShellItems>;
}
impl ::windows_core::RuntimeName for IEnumShellItems {}
impl IEnumShellItems_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumShellItems_Impl, const OFFSET: isize>() -> IEnumShellItems_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumShellItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumShellItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumShellItems_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumShellItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumShellItems as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumSyncMgrConflict_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<ISyncMgrConflict>, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumSyncMgrConflict>;
}
impl ::windows_core::RuntimeName for IEnumSyncMgrConflict {}
impl IEnumSyncMgrConflict_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrConflict_Impl, const OFFSET: isize>() -> IEnumSyncMgrConflict_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrConflict_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrConflict_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrConflict_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrConflict_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumSyncMgrConflict as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumSyncMgrEvents_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<ISyncMgrEvent>, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumSyncMgrEvents>;
}
impl ::windows_core::RuntimeName for IEnumSyncMgrEvents {}
impl IEnumSyncMgrEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrEvents_Impl, const OFFSET: isize>() -> IEnumSyncMgrEvents_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrEvents_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumSyncMgrEvents as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumSyncMgrSyncItems_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<ISyncMgrSyncItem>, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumSyncMgrSyncItems>;
}
impl ::windows_core::RuntimeName for IEnumSyncMgrSyncItems {}
impl IEnumSyncMgrSyncItems_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrSyncItems_Impl, const OFFSET: isize>() -> IEnumSyncMgrSyncItems_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrSyncItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrSyncItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrSyncItems_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumSyncMgrSyncItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumSyncMgrSyncItems as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IEnumTravelLogEntry_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<ITravelLogEntry>, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumTravelLogEntry>;
}
impl ::windows_core::RuntimeName for IEnumTravelLogEntry {}
impl IEnumTravelLogEntry_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumTravelLogEntry_Impl, const OFFSET: isize>() -> IEnumTravelLogEntry_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumTravelLogEntry_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumTravelLogEntry_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumTravelLogEntry_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumTravelLogEntry_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumTravelLogEntry as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IEnumerableView_Impl: Sized {
fn SetEnumReadyCallback(&self, percb: ::core::option::Option<&IEnumReadyCallback>) -> ::windows_core::Result<()>;
fn CreateEnumIDListFromContents(&self, pidlfolder: *const Common::ITEMIDLIST, dwenumflags: u32) -> ::windows_core::Result<IEnumIDList>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IEnumerableView {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IEnumerableView_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumerableView_Impl, const OFFSET: isize>() -> IEnumerableView_Vtbl {
unsafe extern "system" fn SetEnumReadyCallback<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumerableView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, percb: *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.SetEnumReadyCallback(::windows_core::from_raw_borrowed(&percb)).into()
}
unsafe extern "system" fn CreateEnumIDListFromContents<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumerableView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlfolder: *const Common::ITEMIDLIST, dwenumflags: u32, ppenumidlist: *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.CreateEnumIDListFromContents(::core::mem::transmute_copy(&pidlfolder), ::core::mem::transmute_copy(&dwenumflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenumidlist, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetEnumReadyCallback: SetEnumReadyCallback::<Identity, Impl, OFFSET>,
CreateEnumIDListFromContents: CreateEnumIDListFromContents::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumerableView as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IExecuteCommand_Impl: Sized {
fn SetKeyState(&self, grfkeystate: u32) -> ::windows_core::Result<()>;
fn SetParameters(&self, pszparameters: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetPosition(&self, pt: &super::super::Foundation::POINT) -> ::windows_core::Result<()>;
fn SetShowWindow(&self, nshow: i32) -> ::windows_core::Result<()>;
fn SetNoShowUI(&self, fnoshowui: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetDirectory(&self, pszdirectory: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn Execute(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IExecuteCommand {}
#[cfg(feature = "Win32_Foundation")]
impl IExecuteCommand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommand_Impl, const OFFSET: isize>() -> IExecuteCommand_Vtbl {
unsafe extern "system" fn SetKeyState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfkeystate: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKeyState(::core::mem::transmute_copy(&grfkeystate)).into()
}
unsafe extern "system" fn SetParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszparameters: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetParameters(::core::mem::transmute(&pszparameters)).into()
}
unsafe extern "system" fn SetPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pt: super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPosition(::core::mem::transmute(&pt)).into()
}
unsafe extern "system" fn SetShowWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nshow: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetShowWindow(::core::mem::transmute_copy(&nshow)).into()
}
unsafe extern "system" fn SetNoShowUI<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fnoshowui: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNoShowUI(::core::mem::transmute_copy(&fnoshowui)).into()
}
unsafe extern "system" fn SetDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdirectory: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDirectory(::core::mem::transmute(&pszdirectory)).into()
}
unsafe extern "system" fn Execute<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommand_Impl, const OFFSET: isize>(this: *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.Execute().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetKeyState: SetKeyState::<Identity, Impl, OFFSET>,
SetParameters: SetParameters::<Identity, Impl, OFFSET>,
SetPosition: SetPosition::<Identity, Impl, OFFSET>,
SetShowWindow: SetShowWindow::<Identity, Impl, OFFSET>,
SetNoShowUI: SetNoShowUI::<Identity, Impl, OFFSET>,
SetDirectory: SetDirectory::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExecuteCommand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IExecuteCommandApplicationHostEnvironment_Impl: Sized {
fn GetValue(&self) -> ::windows_core::Result<AHE_TYPE>;
}
impl ::windows_core::RuntimeName for IExecuteCommandApplicationHostEnvironment {}
impl IExecuteCommandApplicationHostEnvironment_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommandApplicationHostEnvironment_Impl, const OFFSET: isize>() -> IExecuteCommandApplicationHostEnvironment_Vtbl {
unsafe extern "system" fn GetValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommandApplicationHostEnvironment_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pahe: *mut AHE_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetValue() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pahe, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetValue: GetValue::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExecuteCommandApplicationHostEnvironment as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IExecuteCommandHost_Impl: Sized {
fn GetUIMode(&self) -> ::windows_core::Result<EC_HOST_UI_MODE>;
}
impl ::windows_core::RuntimeName for IExecuteCommandHost {}
impl IExecuteCommandHost_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommandHost_Impl, const OFFSET: isize>() -> IExecuteCommandHost_Vtbl {
unsafe extern "system" fn GetUIMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExecuteCommandHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puimode: *mut EC_HOST_UI_MODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetUIMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puimode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetUIMode: GetUIMode::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExecuteCommandHost as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IExpDispSupport_Impl: Sized {
fn FindConnectionPoint(&self, riid: *const ::windows_core::GUID) -> ::windows_core::Result<super::super::System::Com::IConnectionPoint>;
fn OnTranslateAccelerator(&self, pmsg: *const super::WindowsAndMessaging::MSG, grfmodifiers: u32) -> ::windows_core::Result<()>;
fn OnInvoke(&self, dispidmember: i32, iid: *const ::windows_core::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Com::DISPPARAMS, pvarresult: *mut super::super::System::Variant::VARIANT, pexcepinfo: *mut super::super::System::Com::EXCEPINFO, puargerr: *mut u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IExpDispSupport {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_WindowsAndMessaging"))]
impl IExpDispSupport_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExpDispSupport_Impl, const OFFSET: isize>() -> IExpDispSupport_Vtbl {
unsafe extern "system" fn FindConnectionPoint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExpDispSupport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppccp: *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.FindConnectionPoint(::core::mem::transmute_copy(&riid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppccp, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OnTranslateAccelerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExpDispSupport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *const super::WindowsAndMessaging::MSG, grfmodifiers: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnTranslateAccelerator(::core::mem::transmute_copy(&pmsg), ::core::mem::transmute_copy(&grfmodifiers)).into()
}
unsafe extern "system" fn OnInvoke<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExpDispSupport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dispidmember: i32, iid: *const ::windows_core::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Com::DISPPARAMS, pvarresult: *mut super::super::System::Variant::VARIANT, pexcepinfo: *mut super::super::System::Com::EXCEPINFO, puargerr: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnInvoke(::core::mem::transmute_copy(&dispidmember), ::core::mem::transmute_copy(&iid), ::core::mem::transmute_copy(&lcid), ::core::mem::transmute_copy(&wflags), ::core::mem::transmute_copy(&pdispparams), ::core::mem::transmute_copy(&pvarresult), ::core::mem::transmute_copy(&pexcepinfo), ::core::mem::transmute_copy(&puargerr)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FindConnectionPoint: FindConnectionPoint::<Identity, Impl, OFFSET>,
OnTranslateAccelerator: OnTranslateAccelerator::<Identity, Impl, OFFSET>,
OnInvoke: OnInvoke::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExpDispSupport as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IExpDispSupportXP_Impl: Sized {
fn FindCIE4ConnectionPoint(&self, riid: *const ::windows_core::GUID) -> ::windows_core::Result<CIE4ConnectionPoint>;
fn OnTranslateAccelerator(&self, pmsg: *const super::WindowsAndMessaging::MSG, grfmodifiers: u32) -> ::windows_core::Result<()>;
fn OnInvoke(&self, dispidmember: i32, iid: *const ::windows_core::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Com::DISPPARAMS, pvarresult: *mut super::super::System::Variant::VARIANT, pexcepinfo: *mut super::super::System::Com::EXCEPINFO, puargerr: *mut u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IExpDispSupportXP {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_WindowsAndMessaging"))]
impl IExpDispSupportXP_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExpDispSupportXP_Impl, const OFFSET: isize>() -> IExpDispSupportXP_Vtbl {
unsafe extern "system" fn FindCIE4ConnectionPoint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExpDispSupportXP_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppccp: *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.FindCIE4ConnectionPoint(::core::mem::transmute_copy(&riid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppccp, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OnTranslateAccelerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExpDispSupportXP_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *const super::WindowsAndMessaging::MSG, grfmodifiers: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnTranslateAccelerator(::core::mem::transmute_copy(&pmsg), ::core::mem::transmute_copy(&grfmodifiers)).into()
}
unsafe extern "system" fn OnInvoke<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExpDispSupportXP_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dispidmember: i32, iid: *const ::windows_core::GUID, lcid: u32, wflags: u16, pdispparams: *const super::super::System::Com::DISPPARAMS, pvarresult: *mut super::super::System::Variant::VARIANT, pexcepinfo: *mut super::super::System::Com::EXCEPINFO, puargerr: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnInvoke(::core::mem::transmute_copy(&dispidmember), ::core::mem::transmute_copy(&iid), ::core::mem::transmute_copy(&lcid), ::core::mem::transmute_copy(&wflags), ::core::mem::transmute_copy(&pdispparams), ::core::mem::transmute_copy(&pvarresult), ::core::mem::transmute_copy(&pexcepinfo), ::core::mem::transmute_copy(&puargerr)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FindCIE4ConnectionPoint: FindCIE4ConnectionPoint::<Identity, Impl, OFFSET>,
OnTranslateAccelerator: OnTranslateAccelerator::<Identity, Impl, OFFSET>,
OnInvoke: OnInvoke::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExpDispSupportXP as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IExplorerBrowser_Impl: Sized {
fn Initialize(&self, hwndparent: super::super::Foundation::HWND, prc: *const super::super::Foundation::RECT, pfs: *const FOLDERSETTINGS) -> ::windows_core::Result<()>;
fn Destroy(&self) -> ::windows_core::Result<()>;
fn SetRect(&self, phdwp: *mut super::WindowsAndMessaging::HDWP, rcbrowser: &super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn SetPropertyBag(&self, pszpropertybag: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetEmptyText(&self, pszemptytext: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetFolderSettings(&self, pfs: *const FOLDERSETTINGS) -> ::windows_core::Result<()>;
fn Advise(&self, psbe: ::core::option::Option<&IExplorerBrowserEvents>) -> ::windows_core::Result<u32>;
fn Unadvise(&self, dwcookie: u32) -> ::windows_core::Result<()>;
fn SetOptions(&self, dwflag: EXPLORER_BROWSER_OPTIONS) -> ::windows_core::Result<()>;
fn GetOptions(&self) -> ::windows_core::Result<EXPLORER_BROWSER_OPTIONS>;
fn BrowseToIDList(&self, pidl: *const Common::ITEMIDLIST, uflags: u32) -> ::windows_core::Result<()>;
fn BrowseToObject(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, uflags: u32) -> ::windows_core::Result<()>;
fn FillFromObject(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, dwflags: EXPLORER_BROWSER_FILL_FLAGS) -> ::windows_core::Result<()>;
fn RemoveAll(&self) -> ::windows_core::Result<()>;
fn GetCurrentView(&self, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IExplorerBrowser {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IExplorerBrowser_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>() -> IExplorerBrowser_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndparent: super::super::Foundation::HWND, prc: *const super::super::Foundation::RECT, pfs: *const FOLDERSETTINGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&hwndparent), ::core::mem::transmute_copy(&prc), ::core::mem::transmute_copy(&pfs)).into()
}
unsafe extern "system" fn Destroy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *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.Destroy().into()
}
unsafe extern "system" fn SetRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phdwp: *mut super::WindowsAndMessaging::HDWP, rcbrowser: super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRect(::core::mem::transmute_copy(&phdwp), ::core::mem::transmute(&rcbrowser)).into()
}
unsafe extern "system" fn SetPropertyBag<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpropertybag: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPropertyBag(::core::mem::transmute(&pszpropertybag)).into()
}
unsafe extern "system" fn SetEmptyText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszemptytext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEmptyText(::core::mem::transmute(&pszemptytext)).into()
}
unsafe extern "system" fn SetFolderSettings<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfs: *const FOLDERSETTINGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFolderSettings(::core::mem::transmute_copy(&pfs)).into()
}
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psbe: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Advise(::windows_core::from_raw_borrowed(&psbe)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Unadvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Unadvise(::core::mem::transmute_copy(&dwcookie)).into()
}
unsafe extern "system" fn SetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflag: EXPLORER_BROWSER_OPTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOptions(::core::mem::transmute_copy(&dwflag)).into()
}
unsafe extern "system" fn GetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflag: *mut EXPLORER_BROWSER_OPTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflag, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn BrowseToIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, uflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BrowseToIDList(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&uflags)).into()
}
unsafe extern "system" fn BrowseToObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, uflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BrowseToObject(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&uflags)).into()
}
unsafe extern "system" fn FillFromObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, dwflags: EXPLORER_BROWSER_FILL_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FillFromObject(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn RemoveAll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *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.RemoveAll().into()
}
unsafe extern "system" fn GetCurrentView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetCurrentView(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
Destroy: Destroy::<Identity, Impl, OFFSET>,
SetRect: SetRect::<Identity, Impl, OFFSET>,
SetPropertyBag: SetPropertyBag::<Identity, Impl, OFFSET>,
SetEmptyText: SetEmptyText::<Identity, Impl, OFFSET>,
SetFolderSettings: SetFolderSettings::<Identity, Impl, OFFSET>,
Advise: Advise::<Identity, Impl, OFFSET>,
Unadvise: Unadvise::<Identity, Impl, OFFSET>,
SetOptions: SetOptions::<Identity, Impl, OFFSET>,
GetOptions: GetOptions::<Identity, Impl, OFFSET>,
BrowseToIDList: BrowseToIDList::<Identity, Impl, OFFSET>,
BrowseToObject: BrowseToObject::<Identity, Impl, OFFSET>,
FillFromObject: FillFromObject::<Identity, Impl, OFFSET>,
RemoveAll: RemoveAll::<Identity, Impl, OFFSET>,
GetCurrentView: GetCurrentView::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExplorerBrowser as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
pub trait IExplorerBrowserEvents_Impl: Sized {
fn OnNavigationPending(&self, pidlfolder: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn OnViewCreated(&self, psv: ::core::option::Option<&IShellView>) -> ::windows_core::Result<()>;
fn OnNavigationComplete(&self, pidlfolder: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn OnNavigationFailed(&self, pidlfolder: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IExplorerBrowserEvents {}
#[cfg(all(feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
impl IExplorerBrowserEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowserEvents_Impl, const OFFSET: isize>() -> IExplorerBrowserEvents_Vtbl {
unsafe extern "system" fn OnNavigationPending<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowserEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlfolder: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnNavigationPending(::core::mem::transmute_copy(&pidlfolder)).into()
}
unsafe extern "system" fn OnViewCreated<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowserEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psv: *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.OnViewCreated(::windows_core::from_raw_borrowed(&psv)).into()
}
unsafe extern "system" fn OnNavigationComplete<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowserEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlfolder: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnNavigationComplete(::core::mem::transmute_copy(&pidlfolder)).into()
}
unsafe extern "system" fn OnNavigationFailed<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerBrowserEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlfolder: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnNavigationFailed(::core::mem::transmute_copy(&pidlfolder)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnNavigationPending: OnNavigationPending::<Identity, Impl, OFFSET>,
OnViewCreated: OnViewCreated::<Identity, Impl, OFFSET>,
OnNavigationComplete: OnNavigationComplete::<Identity, Impl, OFFSET>,
OnNavigationFailed: OnNavigationFailed::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExplorerBrowserEvents as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IExplorerCommand_Impl: Sized {
fn GetTitle(&self, psiitemarray: ::core::option::Option<&IShellItemArray>) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetIcon(&self, psiitemarray: ::core::option::Option<&IShellItemArray>) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetToolTip(&self, psiitemarray: ::core::option::Option<&IShellItemArray>) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetCanonicalName(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn GetState(&self, psiitemarray: ::core::option::Option<&IShellItemArray>, foktobeslow: super::super::Foundation::BOOL) -> ::windows_core::Result<u32>;
fn Invoke(&self, psiitemarray: ::core::option::Option<&IShellItemArray>, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>) -> ::windows_core::Result<()>;
fn GetFlags(&self) -> ::windows_core::Result<u32>;
fn EnumSubCommands(&self) -> ::windows_core::Result<IEnumExplorerCommand>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IExplorerCommand {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IExplorerCommand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommand_Impl, const OFFSET: isize>() -> IExplorerCommand_Vtbl {
unsafe extern "system" fn GetTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitemarray: *mut ::core::ffi::c_void, ppszname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTitle(::windows_core::from_raw_borrowed(&psiitemarray)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetIcon<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitemarray: *mut ::core::ffi::c_void, ppszicon: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIcon(::windows_core::from_raw_borrowed(&psiitemarray)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszicon, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetToolTip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitemarray: *mut ::core::ffi::c_void, ppszinfotip: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetToolTip(::windows_core::from_raw_borrowed(&psiitemarray)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszinfotip, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCanonicalName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidcommandname: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCanonicalName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pguidcommandname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitemarray: *mut ::core::ffi::c_void, foktobeslow: super::super::Foundation::BOOL, pcmdstate: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetState(::windows_core::from_raw_borrowed(&psiitemarray), ::core::mem::transmute_copy(&foktobeslow)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcmdstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Invoke<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitemarray: *mut ::core::ffi::c_void, pbc: *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.Invoke(::windows_core::from_raw_borrowed(&psiitemarray), ::windows_core::from_raw_borrowed(&pbc)).into()
}
unsafe extern "system" fn GetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumSubCommands<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.EnumSubCommands() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTitle: GetTitle::<Identity, Impl, OFFSET>,
GetIcon: GetIcon::<Identity, Impl, OFFSET>,
GetToolTip: GetToolTip::<Identity, Impl, OFFSET>,
GetCanonicalName: GetCanonicalName::<Identity, Impl, OFFSET>,
GetState: GetState::<Identity, Impl, OFFSET>,
Invoke: Invoke::<Identity, Impl, OFFSET>,
GetFlags: GetFlags::<Identity, Impl, OFFSET>,
EnumSubCommands: EnumSubCommands::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExplorerCommand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IExplorerCommandProvider_Impl: Sized {
fn GetCommands(&self, punksite: ::core::option::Option<&::windows_core::IUnknown>, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetCommand(&self, rguidcommandid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IExplorerCommandProvider {}
impl IExplorerCommandProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommandProvider_Impl, const OFFSET: isize>() -> IExplorerCommandProvider_Vtbl {
unsafe extern "system" fn GetCommands<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommandProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punksite: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetCommands(::windows_core::from_raw_borrowed(&punksite), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommandProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rguidcommandid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *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();
this.GetCommand(::core::mem::transmute_copy(&rguidcommandid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCommands: GetCommands::<Identity, Impl, OFFSET>,
GetCommand: GetCommand::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExplorerCommandProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IExplorerCommandState_Impl: Sized {
fn GetState(&self, psiitemarray: ::core::option::Option<&IShellItemArray>, foktobeslow: super::super::Foundation::BOOL) -> ::windows_core::Result<u32>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IExplorerCommandState {}
#[cfg(feature = "Win32_Foundation")]
impl IExplorerCommandState_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommandState_Impl, const OFFSET: isize>() -> IExplorerCommandState_Vtbl {
unsafe extern "system" fn GetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerCommandState_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitemarray: *mut ::core::ffi::c_void, foktobeslow: super::super::Foundation::BOOL, pcmdstate: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetState(::windows_core::from_raw_borrowed(&psiitemarray), ::core::mem::transmute_copy(&foktobeslow)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcmdstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetState: GetState::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExplorerCommandState as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IExplorerPaneVisibility_Impl: Sized {
fn GetPaneState(&self, ep: *const ::windows_core::GUID) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IExplorerPaneVisibility {}
impl IExplorerPaneVisibility_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerPaneVisibility_Impl, const OFFSET: isize>() -> IExplorerPaneVisibility_Vtbl {
unsafe extern "system" fn GetPaneState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExplorerPaneVisibility_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ep: *const ::windows_core::GUID, peps: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPaneState(::core::mem::transmute_copy(&ep)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(peps, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetPaneState: GetPaneState::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExplorerPaneVisibility as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IExtensionServices_Impl: Sized {
fn SetAdditionalHeaders(&self, pwzadditionalheaders: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetAuthenticateData(&self, phwnd: super::super::Foundation::HWND, pwzusername: &::windows_core::PCWSTR, pwzpassword: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IExtensionServices {}
#[cfg(feature = "Win32_Foundation")]
impl IExtensionServices_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtensionServices_Impl, const OFFSET: isize>() -> IExtensionServices_Vtbl {
unsafe extern "system" fn SetAdditionalHeaders<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtensionServices_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwzadditionalheaders: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAdditionalHeaders(::core::mem::transmute(&pwzadditionalheaders)).into()
}
unsafe extern "system" fn SetAuthenticateData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtensionServices_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phwnd: super::super::Foundation::HWND, pwzusername: ::windows_core::PCWSTR, pwzpassword: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAuthenticateData(::core::mem::transmute_copy(&phwnd), ::core::mem::transmute(&pwzusername), ::core::mem::transmute(&pwzpassword)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAdditionalHeaders: SetAdditionalHeaders::<Identity, Impl, OFFSET>,
SetAuthenticateData: SetAuthenticateData::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExtensionServices as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
pub trait IExtractIconA_Impl: Sized {
fn GetIconLocation(&self, uflags: u32, psziconfile: ::windows_core::PSTR, cchmax: u32, piindex: *mut i32, pwflags: *mut u32) -> ::windows_core::Result<()>;
fn Extract(&self, pszfile: &::windows_core::PCSTR, niconindex: u32, phiconlarge: *mut super::WindowsAndMessaging::HICON, phiconsmall: *mut super::WindowsAndMessaging::HICON, niconsize: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
impl ::windows_core::RuntimeName for IExtractIconA {}
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
impl IExtractIconA_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractIconA_Impl, const OFFSET: isize>() -> IExtractIconA_Vtbl {
unsafe extern "system" fn GetIconLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractIconA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uflags: u32, psziconfile: ::windows_core::PSTR, cchmax: u32, piindex: *mut i32, pwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIconLocation(::core::mem::transmute_copy(&uflags), ::core::mem::transmute_copy(&psziconfile), ::core::mem::transmute_copy(&cchmax), ::core::mem::transmute_copy(&piindex), ::core::mem::transmute_copy(&pwflags)).into()
}
unsafe extern "system" fn Extract<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractIconA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfile: ::windows_core::PCSTR, niconindex: u32, phiconlarge: *mut super::WindowsAndMessaging::HICON, phiconsmall: *mut super::WindowsAndMessaging::HICON, niconsize: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Extract(::core::mem::transmute(&pszfile), ::core::mem::transmute_copy(&niconindex), ::core::mem::transmute_copy(&phiconlarge), ::core::mem::transmute_copy(&phiconsmall), ::core::mem::transmute_copy(&niconsize)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetIconLocation: GetIconLocation::<Identity, Impl, OFFSET>,
Extract: Extract::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExtractIconA as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
pub trait IExtractIconW_Impl: Sized {
fn GetIconLocation(&self, uflags: u32, psziconfile: ::windows_core::PWSTR, cchmax: u32, piindex: *mut i32, pwflags: *mut u32) -> ::windows_core::Result<()>;
fn Extract(&self, pszfile: &::windows_core::PCWSTR, niconindex: u32, phiconlarge: *mut super::WindowsAndMessaging::HICON, phiconsmall: *mut super::WindowsAndMessaging::HICON, niconsize: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
impl ::windows_core::RuntimeName for IExtractIconW {}
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
impl IExtractIconW_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractIconW_Impl, const OFFSET: isize>() -> IExtractIconW_Vtbl {
unsafe extern "system" fn GetIconLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractIconW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uflags: u32, psziconfile: ::windows_core::PWSTR, cchmax: u32, piindex: *mut i32, pwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIconLocation(::core::mem::transmute_copy(&uflags), ::core::mem::transmute_copy(&psziconfile), ::core::mem::transmute_copy(&cchmax), ::core::mem::transmute_copy(&piindex), ::core::mem::transmute_copy(&pwflags)).into()
}
unsafe extern "system" fn Extract<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractIconW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfile: ::windows_core::PCWSTR, niconindex: u32, phiconlarge: *mut super::WindowsAndMessaging::HICON, phiconsmall: *mut super::WindowsAndMessaging::HICON, niconsize: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Extract(::core::mem::transmute(&pszfile), ::core::mem::transmute_copy(&niconindex), ::core::mem::transmute_copy(&phiconlarge), ::core::mem::transmute_copy(&phiconsmall), ::core::mem::transmute_copy(&niconsize)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetIconLocation: GetIconLocation::<Identity, Impl, OFFSET>,
Extract: Extract::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExtractIconW as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IExtractImage_Impl: Sized {
fn GetLocation(&self, pszpathbuffer: ::windows_core::PWSTR, cch: u32, pdwpriority: *mut u32, prgsize: *const super::super::Foundation::SIZE, dwrecclrdepth: u32, pdwflags: *mut u32) -> ::windows_core::Result<()>;
fn Extract(&self) -> ::windows_core::Result<super::super::Graphics::Gdi::HBITMAP>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IExtractImage {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IExtractImage_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractImage_Impl, const OFFSET: isize>() -> IExtractImage_Vtbl {
unsafe extern "system" fn GetLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpathbuffer: ::windows_core::PWSTR, cch: u32, pdwpriority: *mut u32, prgsize: *const super::super::Foundation::SIZE, dwrecclrdepth: u32, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLocation(::core::mem::transmute_copy(&pszpathbuffer), ::core::mem::transmute_copy(&cch), ::core::mem::transmute_copy(&pdwpriority), ::core::mem::transmute_copy(&prgsize), ::core::mem::transmute_copy(&dwrecclrdepth), ::core::mem::transmute_copy(&pdwflags)).into()
}
unsafe extern "system" fn Extract<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phbmpthumbnail: *mut super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Extract() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phbmpthumbnail, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetLocation: GetLocation::<Identity, Impl, OFFSET>,
Extract: Extract::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExtractImage as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IExtractImage2_Impl: Sized + IExtractImage_Impl {
fn GetDateStamp(&self) -> ::windows_core::Result<super::super::Foundation::FILETIME>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IExtractImage2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IExtractImage2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractImage2_Impl, const OFFSET: isize>() -> IExtractImage2_Vtbl {
unsafe extern "system" fn GetDateStamp<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IExtractImage2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdatestamp: *mut super::super::Foundation::FILETIME) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDateStamp() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdatestamp, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IExtractImage_Vtbl::new::<Identity, Impl, OFFSET>(), GetDateStamp: GetDateStamp::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IExtractImage2 as ::windows_core::ComInterface>::IID || iid == &<IExtractImage as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
pub trait IFileDialog_Impl: Sized + IModalWindow_Impl {
fn SetFileTypes(&self, cfiletypes: u32, rgfilterspec: *const Common::COMDLG_FILTERSPEC) -> ::windows_core::Result<()>;
fn SetFileTypeIndex(&self, ifiletype: u32) -> ::windows_core::Result<()>;
fn GetFileTypeIndex(&self) -> ::windows_core::Result<u32>;
fn Advise(&self, pfde: ::core::option::Option<&IFileDialogEvents>) -> ::windows_core::Result<u32>;
fn Unadvise(&self, dwcookie: u32) -> ::windows_core::Result<()>;
fn SetOptions(&self, fos: FILEOPENDIALOGOPTIONS) -> ::windows_core::Result<()>;
fn GetOptions(&self) -> ::windows_core::Result<FILEOPENDIALOGOPTIONS>;
fn SetDefaultFolder(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn SetFolder(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn GetFolder(&self) -> ::windows_core::Result<IShellItem>;
fn GetCurrentSelection(&self) -> ::windows_core::Result<IShellItem>;
fn SetFileName(&self, pszname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetFileName(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn SetTitle(&self, psztitle: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetOkButtonLabel(&self, psztext: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetFileNameLabel(&self, pszlabel: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetResult(&self) -> ::windows_core::Result<IShellItem>;
fn AddPlace(&self, psi: ::core::option::Option<&IShellItem>, fdap: FDAP) -> ::windows_core::Result<()>;
fn SetDefaultExtension(&self, pszdefaultextension: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn Close(&self, hr: ::windows_core::HRESULT) -> ::windows_core::Result<()>;
fn SetClientGuid(&self, guid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn ClearClientData(&self) -> ::windows_core::Result<()>;
fn SetFilter(&self, pfilter: ::core::option::Option<&IShellItemFilter>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IFileDialog {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl IFileDialog_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>() -> IFileDialog_Vtbl {
unsafe extern "system" fn SetFileTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cfiletypes: u32, rgfilterspec: *const Common::COMDLG_FILTERSPEC) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFileTypes(::core::mem::transmute_copy(&cfiletypes), ::core::mem::transmute_copy(&rgfilterspec)).into()
}
unsafe extern "system" fn SetFileTypeIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ifiletype: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFileTypeIndex(::core::mem::transmute_copy(&ifiletype)).into()
}
unsafe extern "system" fn GetFileTypeIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pifiletype: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFileTypeIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pifiletype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfde: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Advise(::windows_core::from_raw_borrowed(&pfde)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Unadvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Unadvise(::core::mem::transmute_copy(&dwcookie)).into()
}
unsafe extern "system" fn SetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fos: FILEOPENDIALOGOPTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOptions(::core::mem::transmute_copy(&fos)).into()
}
unsafe extern "system" fn GetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfos: *mut FILEOPENDIALOGOPTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfos, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDefaultFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.SetDefaultFolder(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn SetFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.SetFolder(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn GetFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsi: *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.GetFolder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsi, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSelection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsi: *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.GetCurrentSelection() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsi, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFileName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFileName(::core::mem::transmute(&pszname)).into()
}
unsafe extern "system" fn GetFileName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFileName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pszname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psztitle: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTitle(::core::mem::transmute(&psztitle)).into()
}
unsafe extern "system" fn SetOkButtonLabel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psztext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOkButtonLabel(::core::mem::transmute(&psztext)).into()
}
unsafe extern "system" fn SetFileNameLabel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszlabel: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFileNameLabel(::core::mem::transmute(&pszlabel)).into()
}
unsafe extern "system" fn GetResult<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsi: *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.GetResult() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsi, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddPlace<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, fdap: FDAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddPlace(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&fdap)).into()
}
unsafe extern "system" fn SetDefaultExtension<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdefaultextension: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDefaultExtension(::core::mem::transmute(&pszdefaultextension)).into()
}
unsafe extern "system" fn Close<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hr: ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Close(::core::mem::transmute_copy(&hr)).into()
}
unsafe extern "system" fn SetClientGuid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetClientGuid(::core::mem::transmute_copy(&guid)).into()
}
unsafe extern "system" fn ClearClientData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *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.ClearClientData().into()
}
unsafe extern "system" fn SetFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfilter: *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.SetFilter(::windows_core::from_raw_borrowed(&pfilter)).into()
}
Self {
base__: IModalWindow_Vtbl::new::<Identity, Impl, OFFSET>(),
SetFileTypes: SetFileTypes::<Identity, Impl, OFFSET>,
SetFileTypeIndex: SetFileTypeIndex::<Identity, Impl, OFFSET>,
GetFileTypeIndex: GetFileTypeIndex::<Identity, Impl, OFFSET>,
Advise: Advise::<Identity, Impl, OFFSET>,
Unadvise: Unadvise::<Identity, Impl, OFFSET>,
SetOptions: SetOptions::<Identity, Impl, OFFSET>,
GetOptions: GetOptions::<Identity, Impl, OFFSET>,
SetDefaultFolder: SetDefaultFolder::<Identity, Impl, OFFSET>,
SetFolder: SetFolder::<Identity, Impl, OFFSET>,
GetFolder: GetFolder::<Identity, Impl, OFFSET>,
GetCurrentSelection: GetCurrentSelection::<Identity, Impl, OFFSET>,
SetFileName: SetFileName::<Identity, Impl, OFFSET>,
GetFileName: GetFileName::<Identity, Impl, OFFSET>,
SetTitle: SetTitle::<Identity, Impl, OFFSET>,
SetOkButtonLabel: SetOkButtonLabel::<Identity, Impl, OFFSET>,
SetFileNameLabel: SetFileNameLabel::<Identity, Impl, OFFSET>,
GetResult: GetResult::<Identity, Impl, OFFSET>,
AddPlace: AddPlace::<Identity, Impl, OFFSET>,
SetDefaultExtension: SetDefaultExtension::<Identity, Impl, OFFSET>,
Close: Close::<Identity, Impl, OFFSET>,
SetClientGuid: SetClientGuid::<Identity, Impl, OFFSET>,
ClearClientData: ClearClientData::<Identity, Impl, OFFSET>,
SetFilter: SetFilter::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileDialog as ::windows_core::ComInterface>::IID || iid == &<IModalWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
pub trait IFileDialog2_Impl: Sized + IFileDialog_Impl {
fn SetCancelButtonLabel(&self, pszlabel: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetNavigationRoot(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IFileDialog2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl IFileDialog2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog2_Impl, const OFFSET: isize>() -> IFileDialog2_Vtbl {
unsafe extern "system" fn SetCancelButtonLabel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszlabel: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCancelButtonLabel(::core::mem::transmute(&pszlabel)).into()
}
unsafe extern "system" fn SetNavigationRoot<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialog2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.SetNavigationRoot(::windows_core::from_raw_borrowed(&psi)).into()
}
Self {
base__: IFileDialog_Vtbl::new::<Identity, Impl, OFFSET>(),
SetCancelButtonLabel: SetCancelButtonLabel::<Identity, Impl, OFFSET>,
SetNavigationRoot: SetNavigationRoot::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileDialog2 as ::windows_core::ComInterface>::IID || iid == &<IModalWindow as ::windows_core::ComInterface>::IID || iid == &<IFileDialog as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IFileDialogControlEvents_Impl: Sized {
fn OnItemSelected(&self, pfdc: ::core::option::Option<&IFileDialogCustomize>, dwidctl: u32, dwiditem: u32) -> ::windows_core::Result<()>;
fn OnButtonClicked(&self, pfdc: ::core::option::Option<&IFileDialogCustomize>, dwidctl: u32) -> ::windows_core::Result<()>;
fn OnCheckButtonToggled(&self, pfdc: ::core::option::Option<&IFileDialogCustomize>, dwidctl: u32, bchecked: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn OnControlActivating(&self, pfdc: ::core::option::Option<&IFileDialogCustomize>, dwidctl: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IFileDialogControlEvents {}
#[cfg(feature = "Win32_Foundation")]
impl IFileDialogControlEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogControlEvents_Impl, const OFFSET: isize>() -> IFileDialogControlEvents_Vtbl {
unsafe extern "system" fn OnItemSelected<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfdc: *mut ::core::ffi::c_void, dwidctl: u32, dwiditem: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnItemSelected(::windows_core::from_raw_borrowed(&pfdc), ::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute_copy(&dwiditem)).into()
}
unsafe extern "system" fn OnButtonClicked<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfdc: *mut ::core::ffi::c_void, dwidctl: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnButtonClicked(::windows_core::from_raw_borrowed(&pfdc), ::core::mem::transmute_copy(&dwidctl)).into()
}
unsafe extern "system" fn OnCheckButtonToggled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfdc: *mut ::core::ffi::c_void, dwidctl: u32, bchecked: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnCheckButtonToggled(::windows_core::from_raw_borrowed(&pfdc), ::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute_copy(&bchecked)).into()
}
unsafe extern "system" fn OnControlActivating<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfdc: *mut ::core::ffi::c_void, dwidctl: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnControlActivating(::windows_core::from_raw_borrowed(&pfdc), ::core::mem::transmute_copy(&dwidctl)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnItemSelected: OnItemSelected::<Identity, Impl, OFFSET>,
OnButtonClicked: OnButtonClicked::<Identity, Impl, OFFSET>,
OnCheckButtonToggled: OnCheckButtonToggled::<Identity, Impl, OFFSET>,
OnControlActivating: OnControlActivating::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileDialogControlEvents as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IFileDialogCustomize_Impl: Sized {
fn EnableOpenDropDown(&self, dwidctl: u32) -> ::windows_core::Result<()>;
fn AddMenu(&self, dwidctl: u32, pszlabel: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn AddPushButton(&self, dwidctl: u32, pszlabel: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn AddComboBox(&self, dwidctl: u32) -> ::windows_core::Result<()>;
fn AddRadioButtonList(&self, dwidctl: u32) -> ::windows_core::Result<()>;
fn AddCheckButton(&self, dwidctl: u32, pszlabel: &::windows_core::PCWSTR, bchecked: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn AddEditBox(&self, dwidctl: u32, psztext: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn AddSeparator(&self, dwidctl: u32) -> ::windows_core::Result<()>;
fn AddText(&self, dwidctl: u32, psztext: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetControlLabel(&self, dwidctl: u32, pszlabel: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetControlState(&self, dwidctl: u32) -> ::windows_core::Result<CDCONTROLSTATEF>;
fn SetControlState(&self, dwidctl: u32, dwstate: CDCONTROLSTATEF) -> ::windows_core::Result<()>;
fn GetEditBoxText(&self, dwidctl: u32) -> ::windows_core::Result<*mut u16>;
fn SetEditBoxText(&self, dwidctl: u32, psztext: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetCheckButtonState(&self, dwidctl: u32) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn SetCheckButtonState(&self, dwidctl: u32, bchecked: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn AddControlItem(&self, dwidctl: u32, dwiditem: u32, pszlabel: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn RemoveControlItem(&self, dwidctl: u32, dwiditem: u32) -> ::windows_core::Result<()>;
fn RemoveAllControlItems(&self, dwidctl: u32) -> ::windows_core::Result<()>;
fn GetControlItemState(&self, dwidctl: u32, dwiditem: u32) -> ::windows_core::Result<CDCONTROLSTATEF>;
fn SetControlItemState(&self, dwidctl: u32, dwiditem: u32, dwstate: CDCONTROLSTATEF) -> ::windows_core::Result<()>;
fn GetSelectedControlItem(&self, dwidctl: u32) -> ::windows_core::Result<u32>;
fn SetSelectedControlItem(&self, dwidctl: u32, dwiditem: u32) -> ::windows_core::Result<()>;
fn StartVisualGroup(&self, dwidctl: u32, pszlabel: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn EndVisualGroup(&self) -> ::windows_core::Result<()>;
fn MakeProminent(&self, dwidctl: u32) -> ::windows_core::Result<()>;
fn SetControlItemText(&self, dwidctl: u32, dwiditem: u32, pszlabel: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IFileDialogCustomize {}
#[cfg(feature = "Win32_Foundation")]
impl IFileDialogCustomize_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>() -> IFileDialogCustomize_Vtbl {
unsafe extern "system" fn EnableOpenDropDown<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableOpenDropDown(::core::mem::transmute_copy(&dwidctl)).into()
}
unsafe extern "system" fn AddMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, pszlabel: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddMenu(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute(&pszlabel)).into()
}
unsafe extern "system" fn AddPushButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, pszlabel: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddPushButton(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute(&pszlabel)).into()
}
unsafe extern "system" fn AddComboBox<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddComboBox(::core::mem::transmute_copy(&dwidctl)).into()
}
unsafe extern "system" fn AddRadioButtonList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddRadioButtonList(::core::mem::transmute_copy(&dwidctl)).into()
}
unsafe extern "system" fn AddCheckButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, pszlabel: ::windows_core::PCWSTR, bchecked: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddCheckButton(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute(&pszlabel), ::core::mem::transmute_copy(&bchecked)).into()
}
unsafe extern "system" fn AddEditBox<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, psztext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddEditBox(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute(&psztext)).into()
}
unsafe extern "system" fn AddSeparator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSeparator(::core::mem::transmute_copy(&dwidctl)).into()
}
unsafe extern "system" fn AddText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, psztext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddText(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute(&psztext)).into()
}
unsafe extern "system" fn SetControlLabel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, pszlabel: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetControlLabel(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute(&pszlabel)).into()
}
unsafe extern "system" fn GetControlState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, pdwstate: *mut CDCONTROLSTATEF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetControlState(::core::mem::transmute_copy(&dwidctl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetControlState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, dwstate: CDCONTROLSTATEF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetControlState(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute_copy(&dwstate)).into()
}
unsafe extern "system" fn GetEditBoxText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, ppsztext: *mut *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEditBoxText(::core::mem::transmute_copy(&dwidctl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsztext, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEditBoxText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, psztext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEditBoxText(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute(&psztext)).into()
}
unsafe extern "system" fn GetCheckButtonState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, pbchecked: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCheckButtonState(::core::mem::transmute_copy(&dwidctl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbchecked, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCheckButtonState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, bchecked: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCheckButtonState(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute_copy(&bchecked)).into()
}
unsafe extern "system" fn AddControlItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, dwiditem: u32, pszlabel: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddControlItem(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute_copy(&dwiditem), ::core::mem::transmute(&pszlabel)).into()
}
unsafe extern "system" fn RemoveControlItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, dwiditem: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveControlItem(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute_copy(&dwiditem)).into()
}
unsafe extern "system" fn RemoveAllControlItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveAllControlItems(::core::mem::transmute_copy(&dwidctl)).into()
}
unsafe extern "system" fn GetControlItemState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, dwiditem: u32, pdwstate: *mut CDCONTROLSTATEF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetControlItemState(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute_copy(&dwiditem)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetControlItemState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, dwiditem: u32, dwstate: CDCONTROLSTATEF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetControlItemState(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute_copy(&dwiditem), ::core::mem::transmute_copy(&dwstate)).into()
}
unsafe extern "system" fn GetSelectedControlItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, pdwiditem: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSelectedControlItem(::core::mem::transmute_copy(&dwidctl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwiditem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSelectedControlItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, dwiditem: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSelectedControlItem(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute_copy(&dwiditem)).into()
}
unsafe extern "system" fn StartVisualGroup<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, pszlabel: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartVisualGroup(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute(&pszlabel)).into()
}
unsafe extern "system" fn EndVisualGroup<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *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.EndVisualGroup().into()
}
unsafe extern "system" fn MakeProminent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MakeProminent(::core::mem::transmute_copy(&dwidctl)).into()
}
unsafe extern "system" fn SetControlItemText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogCustomize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwidctl: u32, dwiditem: u32, pszlabel: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetControlItemText(::core::mem::transmute_copy(&dwidctl), ::core::mem::transmute_copy(&dwiditem), ::core::mem::transmute(&pszlabel)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
EnableOpenDropDown: EnableOpenDropDown::<Identity, Impl, OFFSET>,
AddMenu: AddMenu::<Identity, Impl, OFFSET>,
AddPushButton: AddPushButton::<Identity, Impl, OFFSET>,
AddComboBox: AddComboBox::<Identity, Impl, OFFSET>,
AddRadioButtonList: AddRadioButtonList::<Identity, Impl, OFFSET>,
AddCheckButton: AddCheckButton::<Identity, Impl, OFFSET>,
AddEditBox: AddEditBox::<Identity, Impl, OFFSET>,
AddSeparator: AddSeparator::<Identity, Impl, OFFSET>,
AddText: AddText::<Identity, Impl, OFFSET>,
SetControlLabel: SetControlLabel::<Identity, Impl, OFFSET>,
GetControlState: GetControlState::<Identity, Impl, OFFSET>,
SetControlState: SetControlState::<Identity, Impl, OFFSET>,
GetEditBoxText: GetEditBoxText::<Identity, Impl, OFFSET>,
SetEditBoxText: SetEditBoxText::<Identity, Impl, OFFSET>,
GetCheckButtonState: GetCheckButtonState::<Identity, Impl, OFFSET>,
SetCheckButtonState: SetCheckButtonState::<Identity, Impl, OFFSET>,
AddControlItem: AddControlItem::<Identity, Impl, OFFSET>,
RemoveControlItem: RemoveControlItem::<Identity, Impl, OFFSET>,
RemoveAllControlItems: RemoveAllControlItems::<Identity, Impl, OFFSET>,
GetControlItemState: GetControlItemState::<Identity, Impl, OFFSET>,
SetControlItemState: SetControlItemState::<Identity, Impl, OFFSET>,
GetSelectedControlItem: GetSelectedControlItem::<Identity, Impl, OFFSET>,
SetSelectedControlItem: SetSelectedControlItem::<Identity, Impl, OFFSET>,
StartVisualGroup: StartVisualGroup::<Identity, Impl, OFFSET>,
EndVisualGroup: EndVisualGroup::<Identity, Impl, OFFSET>,
MakeProminent: MakeProminent::<Identity, Impl, OFFSET>,
SetControlItemText: SetControlItemText::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileDialogCustomize as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IFileDialogEvents_Impl: Sized {
fn OnFileOk(&self, pfd: ::core::option::Option<&IFileDialog>) -> ::windows_core::Result<()>;
fn OnFolderChanging(&self, pfd: ::core::option::Option<&IFileDialog>, psifolder: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn OnFolderChange(&self, pfd: ::core::option::Option<&IFileDialog>) -> ::windows_core::Result<()>;
fn OnSelectionChange(&self, pfd: ::core::option::Option<&IFileDialog>) -> ::windows_core::Result<()>;
fn OnShareViolation(&self, pfd: ::core::option::Option<&IFileDialog>, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<FDE_SHAREVIOLATION_RESPONSE>;
fn OnTypeChange(&self, pfd: ::core::option::Option<&IFileDialog>) -> ::windows_core::Result<()>;
fn OnOverwrite(&self, pfd: ::core::option::Option<&IFileDialog>, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<FDE_OVERWRITE_RESPONSE>;
}
impl ::windows_core::RuntimeName for IFileDialogEvents {}
impl IFileDialogEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogEvents_Impl, const OFFSET: isize>() -> IFileDialogEvents_Vtbl {
unsafe extern "system" fn OnFileOk<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfd: *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.OnFileOk(::windows_core::from_raw_borrowed(&pfd)).into()
}
unsafe extern "system" fn OnFolderChanging<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfd: *mut ::core::ffi::c_void, psifolder: *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.OnFolderChanging(::windows_core::from_raw_borrowed(&pfd), ::windows_core::from_raw_borrowed(&psifolder)).into()
}
unsafe extern "system" fn OnFolderChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfd: *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.OnFolderChange(::windows_core::from_raw_borrowed(&pfd)).into()
}
unsafe extern "system" fn OnSelectionChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfd: *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.OnSelectionChange(::windows_core::from_raw_borrowed(&pfd)).into()
}
unsafe extern "system" fn OnShareViolation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfd: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, presponse: *mut FDE_SHAREVIOLATION_RESPONSE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OnShareViolation(::windows_core::from_raw_borrowed(&pfd), ::windows_core::from_raw_borrowed(&psi)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(presponse, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OnTypeChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfd: *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.OnTypeChange(::windows_core::from_raw_borrowed(&pfd)).into()
}
unsafe extern "system" fn OnOverwrite<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileDialogEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfd: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, presponse: *mut FDE_OVERWRITE_RESPONSE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OnOverwrite(::windows_core::from_raw_borrowed(&pfd), ::windows_core::from_raw_borrowed(&psi)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(presponse, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnFileOk: OnFileOk::<Identity, Impl, OFFSET>,
OnFolderChanging: OnFolderChanging::<Identity, Impl, OFFSET>,
OnFolderChange: OnFolderChange::<Identity, Impl, OFFSET>,
OnSelectionChange: OnSelectionChange::<Identity, Impl, OFFSET>,
OnShareViolation: OnShareViolation::<Identity, Impl, OFFSET>,
OnTypeChange: OnTypeChange::<Identity, Impl, OFFSET>,
OnOverwrite: OnOverwrite::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileDialogEvents as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IFileIsInUse_Impl: Sized {
fn GetAppName(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetUsage(&self) -> ::windows_core::Result<FILE_USAGE_TYPE>;
fn GetCapabilities(&self) -> ::windows_core::Result<u32>;
fn GetSwitchToHWND(&self) -> ::windows_core::Result<super::super::Foundation::HWND>;
fn CloseFile(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IFileIsInUse {}
#[cfg(feature = "Win32_Foundation")]
impl IFileIsInUse_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileIsInUse_Impl, const OFFSET: isize>() -> IFileIsInUse_Vtbl {
unsafe extern "system" fn GetAppName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileIsInUse_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAppName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetUsage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileIsInUse_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfut: *mut FILE_USAGE_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetUsage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfut, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileIsInUse_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwcapflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCapabilities() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcapflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSwitchToHWND<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileIsInUse_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phwnd: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSwitchToHWND() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phwnd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CloseFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileIsInUse_Impl, const OFFSET: isize>(this: *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.CloseFile().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetAppName: GetAppName::<Identity, Impl, OFFSET>,
GetUsage: GetUsage::<Identity, Impl, OFFSET>,
GetCapabilities: GetCapabilities::<Identity, Impl, OFFSET>,
GetSwitchToHWND: GetSwitchToHWND::<Identity, Impl, OFFSET>,
CloseFile: CloseFile::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileIsInUse as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
pub trait IFileOpenDialog_Impl: Sized + IFileDialog_Impl {
fn GetResults(&self) -> ::windows_core::Result<IShellItemArray>;
fn GetSelectedItems(&self) -> ::windows_core::Result<IShellItemArray>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IFileOpenDialog {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl IFileOpenDialog_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOpenDialog_Impl, const OFFSET: isize>() -> IFileOpenDialog_Vtbl {
unsafe extern "system" fn GetResults<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOpenDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.GetResults() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSelectedItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOpenDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsai: *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.GetSelectedItems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsai, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IFileDialog_Vtbl::new::<Identity, Impl, OFFSET>(),
GetResults: GetResults::<Identity, Impl, OFFSET>,
GetSelectedItems: GetSelectedItems::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileOpenDialog as ::windows_core::ComInterface>::IID || iid == &<IModalWindow as ::windows_core::ComInterface>::IID || iid == &<IFileDialog as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait IFileOperation_Impl: Sized {
fn Advise(&self, pfops: ::core::option::Option<&IFileOperationProgressSink>) -> ::windows_core::Result<u32>;
fn Unadvise(&self, dwcookie: u32) -> ::windows_core::Result<()>;
fn SetOperationFlags(&self, dwoperationflags: u32) -> ::windows_core::Result<()>;
fn SetProgressMessage(&self, pszmessage: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetProgressDialog(&self, popd: ::core::option::Option<&IOperationsProgressDialog>) -> ::windows_core::Result<()>;
fn SetProperties(&self, pproparray: ::core::option::Option<&PropertiesSystem::IPropertyChangeArray>) -> ::windows_core::Result<()>;
fn SetOwnerWindow(&self, hwndowner: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn ApplyPropertiesToItem(&self, psiitem: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn ApplyPropertiesToItems(&self, punkitems: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn RenameItem(&self, psiitem: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR, pfopsitem: ::core::option::Option<&IFileOperationProgressSink>) -> ::windows_core::Result<()>;
fn RenameItems(&self, punkitems: ::core::option::Option<&::windows_core::IUnknown>, psznewname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn MoveItem(&self, psiitem: ::core::option::Option<&IShellItem>, psidestinationfolder: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR, pfopsitem: ::core::option::Option<&IFileOperationProgressSink>) -> ::windows_core::Result<()>;
fn MoveItems(&self, punkitems: ::core::option::Option<&::windows_core::IUnknown>, psidestinationfolder: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn CopyItem(&self, psiitem: ::core::option::Option<&IShellItem>, psidestinationfolder: ::core::option::Option<&IShellItem>, pszcopyname: &::windows_core::PCWSTR, pfopsitem: ::core::option::Option<&IFileOperationProgressSink>) -> ::windows_core::Result<()>;
fn CopyItems(&self, punkitems: ::core::option::Option<&::windows_core::IUnknown>, psidestinationfolder: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn DeleteItem(&self, psiitem: ::core::option::Option<&IShellItem>, pfopsitem: ::core::option::Option<&IFileOperationProgressSink>) -> ::windows_core::Result<()>;
fn DeleteItems(&self, punkitems: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn NewItem(&self, psidestinationfolder: ::core::option::Option<&IShellItem>, dwfileattributes: u32, pszname: &::windows_core::PCWSTR, psztemplatename: &::windows_core::PCWSTR, pfopsitem: ::core::option::Option<&IFileOperationProgressSink>) -> ::windows_core::Result<()>;
fn PerformOperations(&self) -> ::windows_core::Result<()>;
fn GetAnyOperationsAborted(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for IFileOperation {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl IFileOperation_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>() -> IFileOperation_Vtbl {
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfops: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Advise(::windows_core::from_raw_borrowed(&pfops)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Unadvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Unadvise(::core::mem::transmute_copy(&dwcookie)).into()
}
unsafe extern "system" fn SetOperationFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwoperationflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOperationFlags(::core::mem::transmute_copy(&dwoperationflags)).into()
}
unsafe extern "system" fn SetProgressMessage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszmessage: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProgressMessage(::core::mem::transmute(&pszmessage)).into()
}
unsafe extern "system" fn SetProgressDialog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, popd: *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.SetProgressDialog(::windows_core::from_raw_borrowed(&popd)).into()
}
unsafe extern "system" fn SetProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pproparray: *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.SetProperties(::windows_core::from_raw_borrowed(&pproparray)).into()
}
unsafe extern "system" fn SetOwnerWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndowner: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOwnerWindow(::core::mem::transmute_copy(&hwndowner)).into()
}
unsafe extern "system" fn ApplyPropertiesToItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitem: *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.ApplyPropertiesToItem(::windows_core::from_raw_borrowed(&psiitem)).into()
}
unsafe extern "system" fn ApplyPropertiesToItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkitems: *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.ApplyPropertiesToItems(::windows_core::from_raw_borrowed(&punkitems)).into()
}
unsafe extern "system" fn RenameItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitem: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR, pfopsitem: *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.RenameItem(::windows_core::from_raw_borrowed(&psiitem), ::core::mem::transmute(&psznewname), ::windows_core::from_raw_borrowed(&pfopsitem)).into()
}
unsafe extern "system" fn RenameItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkitems: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RenameItems(::windows_core::from_raw_borrowed(&punkitems), ::core::mem::transmute(&psznewname)).into()
}
unsafe extern "system" fn MoveItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitem: *mut ::core::ffi::c_void, psidestinationfolder: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR, pfopsitem: *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.MoveItem(::windows_core::from_raw_borrowed(&psiitem), ::windows_core::from_raw_borrowed(&psidestinationfolder), ::core::mem::transmute(&psznewname), ::windows_core::from_raw_borrowed(&pfopsitem)).into()
}
unsafe extern "system" fn MoveItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkitems: *mut ::core::ffi::c_void, psidestinationfolder: *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.MoveItems(::windows_core::from_raw_borrowed(&punkitems), ::windows_core::from_raw_borrowed(&psidestinationfolder)).into()
}
unsafe extern "system" fn CopyItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitem: *mut ::core::ffi::c_void, psidestinationfolder: *mut ::core::ffi::c_void, pszcopyname: ::windows_core::PCWSTR, pfopsitem: *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.CopyItem(::windows_core::from_raw_borrowed(&psiitem), ::windows_core::from_raw_borrowed(&psidestinationfolder), ::core::mem::transmute(&pszcopyname), ::windows_core::from_raw_borrowed(&pfopsitem)).into()
}
unsafe extern "system" fn CopyItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkitems: *mut ::core::ffi::c_void, psidestinationfolder: *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.CopyItems(::windows_core::from_raw_borrowed(&punkitems), ::windows_core::from_raw_borrowed(&psidestinationfolder)).into()
}
unsafe extern "system" fn DeleteItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiitem: *mut ::core::ffi::c_void, pfopsitem: *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.DeleteItem(::windows_core::from_raw_borrowed(&psiitem), ::windows_core::from_raw_borrowed(&pfopsitem)).into()
}
unsafe extern "system" fn DeleteItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkitems: *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.DeleteItems(::windows_core::from_raw_borrowed(&punkitems)).into()
}
unsafe extern "system" fn NewItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psidestinationfolder: *mut ::core::ffi::c_void, dwfileattributes: u32, pszname: ::windows_core::PCWSTR, psztemplatename: ::windows_core::PCWSTR, pfopsitem: *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.NewItem(::windows_core::from_raw_borrowed(&psidestinationfolder), ::core::mem::transmute_copy(&dwfileattributes), ::core::mem::transmute(&pszname), ::core::mem::transmute(&psztemplatename), ::windows_core::from_raw_borrowed(&pfopsitem)).into()
}
unsafe extern "system" fn PerformOperations<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *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.PerformOperations().into()
}
unsafe extern "system" fn GetAnyOperationsAborted<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfanyoperationsaborted: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAnyOperationsAborted() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfanyoperationsaborted, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Advise: Advise::<Identity, Impl, OFFSET>,
Unadvise: Unadvise::<Identity, Impl, OFFSET>,
SetOperationFlags: SetOperationFlags::<Identity, Impl, OFFSET>,
SetProgressMessage: SetProgressMessage::<Identity, Impl, OFFSET>,
SetProgressDialog: SetProgressDialog::<Identity, Impl, OFFSET>,
SetProperties: SetProperties::<Identity, Impl, OFFSET>,
SetOwnerWindow: SetOwnerWindow::<Identity, Impl, OFFSET>,
ApplyPropertiesToItem: ApplyPropertiesToItem::<Identity, Impl, OFFSET>,
ApplyPropertiesToItems: ApplyPropertiesToItems::<Identity, Impl, OFFSET>,
RenameItem: RenameItem::<Identity, Impl, OFFSET>,
RenameItems: RenameItems::<Identity, Impl, OFFSET>,
MoveItem: MoveItem::<Identity, Impl, OFFSET>,
MoveItems: MoveItems::<Identity, Impl, OFFSET>,
CopyItem: CopyItem::<Identity, Impl, OFFSET>,
CopyItems: CopyItems::<Identity, Impl, OFFSET>,
DeleteItem: DeleteItem::<Identity, Impl, OFFSET>,
DeleteItems: DeleteItems::<Identity, Impl, OFFSET>,
NewItem: NewItem::<Identity, Impl, OFFSET>,
PerformOperations: PerformOperations::<Identity, Impl, OFFSET>,
GetAnyOperationsAborted: GetAnyOperationsAborted::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileOperation as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait IFileOperation2_Impl: Sized + IFileOperation_Impl {
fn SetOperationFlags2(&self, operationflags2: FILE_OPERATION_FLAGS2) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for IFileOperation2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl IFileOperation2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation2_Impl, const OFFSET: isize>() -> IFileOperation2_Vtbl {
unsafe extern "system" fn SetOperationFlags2<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperation2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, operationflags2: FILE_OPERATION_FLAGS2) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOperationFlags2(::core::mem::transmute_copy(&operationflags2)).into()
}
Self { base__: IFileOperation_Vtbl::new::<Identity, Impl, OFFSET>(), SetOperationFlags2: SetOperationFlags2::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileOperation2 as ::windows_core::ComInterface>::IID || iid == &<IFileOperation as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IFileOperationProgressSink_Impl: Sized {
fn StartOperations(&self) -> ::windows_core::Result<()>;
fn FinishOperations(&self, hrresult: ::windows_core::HRESULT) -> ::windows_core::Result<()>;
fn PreRenameItem(&self, dwflags: u32, psiitem: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn PostRenameItem(&self, dwflags: u32, psiitem: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR, hrrename: ::windows_core::HRESULT, psinewlycreated: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn PreMoveItem(&self, dwflags: u32, psiitem: ::core::option::Option<&IShellItem>, psidestinationfolder: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn PostMoveItem(&self, dwflags: u32, psiitem: ::core::option::Option<&IShellItem>, psidestinationfolder: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR, hrmove: ::windows_core::HRESULT, psinewlycreated: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn PreCopyItem(&self, dwflags: u32, psiitem: ::core::option::Option<&IShellItem>, psidestinationfolder: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn PostCopyItem(&self, dwflags: u32, psiitem: ::core::option::Option<&IShellItem>, psidestinationfolder: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR, hrcopy: ::windows_core::HRESULT, psinewlycreated: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn PreDeleteItem(&self, dwflags: u32, psiitem: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn PostDeleteItem(&self, dwflags: u32, psiitem: ::core::option::Option<&IShellItem>, hrdelete: ::windows_core::HRESULT, psinewlycreated: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn PreNewItem(&self, dwflags: u32, psidestinationfolder: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn PostNewItem(&self, dwflags: u32, psidestinationfolder: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR, psztemplatename: &::windows_core::PCWSTR, dwfileattributes: u32, hrnew: ::windows_core::HRESULT, psinewitem: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn UpdateProgress(&self, iworktotal: u32, iworksofar: u32) -> ::windows_core::Result<()>;
fn ResetTimer(&self) -> ::windows_core::Result<()>;
fn PauseTimer(&self) -> ::windows_core::Result<()>;
fn ResumeTimer(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IFileOperationProgressSink {}
impl IFileOperationProgressSink_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>() -> IFileOperationProgressSink_Vtbl {
unsafe extern "system" fn StartOperations<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *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.StartOperations().into()
}
unsafe extern "system" fn FinishOperations<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hrresult: ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FinishOperations(::core::mem::transmute_copy(&hrresult)).into()
}
unsafe extern "system" fn PreRenameItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, psiitem: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PreRenameItem(::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&psiitem), ::core::mem::transmute(&psznewname)).into()
}
unsafe extern "system" fn PostRenameItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, psiitem: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR, hrrename: ::windows_core::HRESULT, psinewlycreated: *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.PostRenameItem(::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&psiitem), ::core::mem::transmute(&psznewname), ::core::mem::transmute_copy(&hrrename), ::windows_core::from_raw_borrowed(&psinewlycreated)).into()
}
unsafe extern "system" fn PreMoveItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, psiitem: *mut ::core::ffi::c_void, psidestinationfolder: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PreMoveItem(::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&psiitem), ::windows_core::from_raw_borrowed(&psidestinationfolder), ::core::mem::transmute(&psznewname)).into()
}
unsafe extern "system" fn PostMoveItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, psiitem: *mut ::core::ffi::c_void, psidestinationfolder: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR, hrmove: ::windows_core::HRESULT, psinewlycreated: *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.PostMoveItem(::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&psiitem), ::windows_core::from_raw_borrowed(&psidestinationfolder), ::core::mem::transmute(&psznewname), ::core::mem::transmute_copy(&hrmove), ::windows_core::from_raw_borrowed(&psinewlycreated)).into()
}
unsafe extern "system" fn PreCopyItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, psiitem: *mut ::core::ffi::c_void, psidestinationfolder: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PreCopyItem(::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&psiitem), ::windows_core::from_raw_borrowed(&psidestinationfolder), ::core::mem::transmute(&psznewname)).into()
}
unsafe extern "system" fn PostCopyItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, psiitem: *mut ::core::ffi::c_void, psidestinationfolder: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR, hrcopy: ::windows_core::HRESULT, psinewlycreated: *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.PostCopyItem(::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&psiitem), ::windows_core::from_raw_borrowed(&psidestinationfolder), ::core::mem::transmute(&psznewname), ::core::mem::transmute_copy(&hrcopy), ::windows_core::from_raw_borrowed(&psinewlycreated)).into()
}
unsafe extern "system" fn PreDeleteItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, psiitem: *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.PreDeleteItem(::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&psiitem)).into()
}
unsafe extern "system" fn PostDeleteItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, psiitem: *mut ::core::ffi::c_void, hrdelete: ::windows_core::HRESULT, psinewlycreated: *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.PostDeleteItem(::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&psiitem), ::core::mem::transmute_copy(&hrdelete), ::windows_core::from_raw_borrowed(&psinewlycreated)).into()
}
unsafe extern "system" fn PreNewItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, psidestinationfolder: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PreNewItem(::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&psidestinationfolder), ::core::mem::transmute(&psznewname)).into()
}
unsafe extern "system" fn PostNewItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, psidestinationfolder: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR, psztemplatename: ::windows_core::PCWSTR, dwfileattributes: u32, hrnew: ::windows_core::HRESULT, psinewitem: *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.PostNewItem(::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&psidestinationfolder), ::core::mem::transmute(&psznewname), ::core::mem::transmute(&psztemplatename), ::core::mem::transmute_copy(&dwfileattributes), ::core::mem::transmute_copy(&hrnew), ::windows_core::from_raw_borrowed(&psinewitem)).into()
}
unsafe extern "system" fn UpdateProgress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iworktotal: u32, iworksofar: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateProgress(::core::mem::transmute_copy(&iworktotal), ::core::mem::transmute_copy(&iworksofar)).into()
}
unsafe extern "system" fn ResetTimer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *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.ResetTimer().into()
}
unsafe extern "system" fn PauseTimer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *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.PauseTimer().into()
}
unsafe extern "system" fn ResumeTimer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileOperationProgressSink_Impl, const OFFSET: isize>(this: *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.ResumeTimer().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartOperations: StartOperations::<Identity, Impl, OFFSET>,
FinishOperations: FinishOperations::<Identity, Impl, OFFSET>,
PreRenameItem: PreRenameItem::<Identity, Impl, OFFSET>,
PostRenameItem: PostRenameItem::<Identity, Impl, OFFSET>,
PreMoveItem: PreMoveItem::<Identity, Impl, OFFSET>,
PostMoveItem: PostMoveItem::<Identity, Impl, OFFSET>,
PreCopyItem: PreCopyItem::<Identity, Impl, OFFSET>,
PostCopyItem: PostCopyItem::<Identity, Impl, OFFSET>,
PreDeleteItem: PreDeleteItem::<Identity, Impl, OFFSET>,
PostDeleteItem: PostDeleteItem::<Identity, Impl, OFFSET>,
PreNewItem: PreNewItem::<Identity, Impl, OFFSET>,
PostNewItem: PostNewItem::<Identity, Impl, OFFSET>,
UpdateProgress: UpdateProgress::<Identity, Impl, OFFSET>,
ResetTimer: ResetTimer::<Identity, Impl, OFFSET>,
PauseTimer: PauseTimer::<Identity, Impl, OFFSET>,
ResumeTimer: ResumeTimer::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileOperationProgressSink as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait IFileSaveDialog_Impl: Sized + IFileDialog_Impl {
fn SetSaveAsItem(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn SetProperties(&self, pstore: ::core::option::Option<&PropertiesSystem::IPropertyStore>) -> ::windows_core::Result<()>;
fn SetCollectedProperties(&self, plist: ::core::option::Option<&PropertiesSystem::IPropertyDescriptionList>, fappenddefault: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetProperties(&self) -> ::windows_core::Result<PropertiesSystem::IPropertyStore>;
fn ApplyProperties(&self, psi: ::core::option::Option<&IShellItem>, pstore: ::core::option::Option<&PropertiesSystem::IPropertyStore>, hwnd: super::super::Foundation::HWND, psink: ::core::option::Option<&IFileOperationProgressSink>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for IFileSaveDialog {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl IFileSaveDialog_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSaveDialog_Impl, const OFFSET: isize>() -> IFileSaveDialog_Vtbl {
unsafe extern "system" fn SetSaveAsItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSaveDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.SetSaveAsItem(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn SetProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSaveDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstore: *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.SetProperties(::windows_core::from_raw_borrowed(&pstore)).into()
}
unsafe extern "system" fn SetCollectedProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSaveDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plist: *mut ::core::ffi::c_void, fappenddefault: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCollectedProperties(::windows_core::from_raw_borrowed(&plist), ::core::mem::transmute_copy(&fappenddefault)).into()
}
unsafe extern "system" fn GetProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSaveDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppstore: *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.GetProperties() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppstore, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ApplyProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSaveDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, pstore: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, psink: *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.ApplyProperties(::windows_core::from_raw_borrowed(&psi), ::windows_core::from_raw_borrowed(&pstore), ::core::mem::transmute_copy(&hwnd), ::windows_core::from_raw_borrowed(&psink)).into()
}
Self {
base__: IFileDialog_Vtbl::new::<Identity, Impl, OFFSET>(),
SetSaveAsItem: SetSaveAsItem::<Identity, Impl, OFFSET>,
SetProperties: SetProperties::<Identity, Impl, OFFSET>,
SetCollectedProperties: SetCollectedProperties::<Identity, Impl, OFFSET>,
GetProperties: GetProperties::<Identity, Impl, OFFSET>,
ApplyProperties: ApplyProperties::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileSaveDialog as ::windows_core::ComInterface>::IID || iid == &<IModalWindow as ::windows_core::ComInterface>::IID || iid == &<IFileDialog as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IFileSearchBand_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn SetFocus(&self) -> ::windows_core::Result<()>;
fn SetSearchParameters(&self, pbstrsearchid: *const ::windows_core::BSTR, bnavtoresults: super::super::Foundation::VARIANT_BOOL, pvarscope: *const super::super::System::Variant::VARIANT, pvarqueryfile: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn SearchID(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Scope(&self) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn QueryFile(&self) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IFileSearchBand {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IFileSearchBand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSearchBand_Impl, const OFFSET: isize>() -> IFileSearchBand_Vtbl {
unsafe extern "system" fn SetFocus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSearchBand_Impl, const OFFSET: isize>(this: *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.SetFocus().into()
}
unsafe extern "system" fn SetSearchParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSearchBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrsearchid: *const ::std::mem::MaybeUninit<::windows_core::BSTR>, bnavtoresults: super::super::Foundation::VARIANT_BOOL, pvarscope: *const super::super::System::Variant::VARIANT, pvarqueryfile: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSearchParameters(::core::mem::transmute_copy(&pbstrsearchid), ::core::mem::transmute_copy(&bnavtoresults), ::core::mem::transmute_copy(&pvarscope), ::core::mem::transmute_copy(&pvarqueryfile)).into()
}
unsafe extern "system" fn SearchID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSearchBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrsearchid: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SearchID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrsearchid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Scope<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSearchBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvarscope: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Scope() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvarscope, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn QueryFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSearchBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvarfile: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryFile() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvarfile, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
SetFocus: SetFocus::<Identity, Impl, OFFSET>,
SetSearchParameters: SetSearchParameters::<Identity, Impl, OFFSET>,
SearchID: SearchID::<Identity, Impl, OFFSET>,
Scope: Scope::<Identity, Impl, OFFSET>,
QueryFile: QueryFile::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileSearchBand as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
pub trait IFileSyncMergeHandler_Impl: Sized {
fn Merge(&self, localfilepath: &::windows_core::PCWSTR, serverfilepath: &::windows_core::PCWSTR) -> ::windows_core::Result<MERGE_UPDATE_STATUS>;
fn ShowResolveConflictUIAsync(&self, localfilepath: &::windows_core::PCWSTR, monitortodisplayon: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::windows_core::RuntimeName for IFileSyncMergeHandler {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl IFileSyncMergeHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSyncMergeHandler_Impl, const OFFSET: isize>() -> IFileSyncMergeHandler_Vtbl {
unsafe extern "system" fn Merge<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSyncMergeHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, localfilepath: ::windows_core::PCWSTR, serverfilepath: ::windows_core::PCWSTR, updatestatus: *mut MERGE_UPDATE_STATUS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Merge(::core::mem::transmute(&localfilepath), ::core::mem::transmute(&serverfilepath)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(updatestatus, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ShowResolveConflictUIAsync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSyncMergeHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, localfilepath: ::windows_core::PCWSTR, monitortodisplayon: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowResolveConflictUIAsync(::core::mem::transmute(&localfilepath), ::core::mem::transmute_copy(&monitortodisplayon)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Merge: Merge::<Identity, Impl, OFFSET>,
ShowResolveConflictUIAsync: ShowResolveConflictUIAsync::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileSyncMergeHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))]
pub trait IFileSystemBindData_Impl: Sized {
fn SetFindData(&self, pfd: *const super::super::Storage::FileSystem::WIN32_FIND_DATAW) -> ::windows_core::Result<()>;
fn GetFindData(&self, pfd: *mut super::super::Storage::FileSystem::WIN32_FIND_DATAW) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))]
impl ::windows_core::RuntimeName for IFileSystemBindData {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))]
impl IFileSystemBindData_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemBindData_Impl, const OFFSET: isize>() -> IFileSystemBindData_Vtbl {
unsafe extern "system" fn SetFindData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemBindData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfd: *const super::super::Storage::FileSystem::WIN32_FIND_DATAW) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFindData(::core::mem::transmute_copy(&pfd)).into()
}
unsafe extern "system" fn GetFindData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemBindData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfd: *mut super::super::Storage::FileSystem::WIN32_FIND_DATAW) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFindData(::core::mem::transmute_copy(&pfd)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetFindData: SetFindData::<Identity, Impl, OFFSET>,
GetFindData: GetFindData::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileSystemBindData as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))]
pub trait IFileSystemBindData2_Impl: Sized + IFileSystemBindData_Impl {
fn SetFileID(&self, lifileid: i64) -> ::windows_core::Result<()>;
fn GetFileID(&self) -> ::windows_core::Result<i64>;
fn SetJunctionCLSID(&self, clsid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetJunctionCLSID(&self) -> ::windows_core::Result<::windows_core::GUID>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))]
impl ::windows_core::RuntimeName for IFileSystemBindData2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))]
impl IFileSystemBindData2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemBindData2_Impl, const OFFSET: isize>() -> IFileSystemBindData2_Vtbl {
unsafe extern "system" fn SetFileID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemBindData2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lifileid: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFileID(::core::mem::transmute_copy(&lifileid)).into()
}
unsafe extern "system" fn GetFileID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemBindData2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plifileid: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFileID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plifileid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetJunctionCLSID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemBindData2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetJunctionCLSID(::core::mem::transmute_copy(&clsid)).into()
}
unsafe extern "system" fn GetJunctionCLSID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemBindData2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclsid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetJunctionCLSID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pclsid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IFileSystemBindData_Vtbl::new::<Identity, Impl, OFFSET>(),
SetFileID: SetFileID::<Identity, Impl, OFFSET>,
GetFileID: GetFileID::<Identity, Impl, OFFSET>,
SetJunctionCLSID: SetJunctionCLSID::<Identity, Impl, OFFSET>,
GetJunctionCLSID: GetJunctionCLSID::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileSystemBindData2 as ::windows_core::ComInterface>::IID || iid == &<IFileSystemBindData as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IFolderBandPriv_Impl: Sized {
fn SetCascade(&self, fcascade: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetAccelerators(&self, faccelerators: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetNoIcons(&self, fnoicons: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetNoText(&self, fnotext: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IFolderBandPriv {}
#[cfg(feature = "Win32_Foundation")]
impl IFolderBandPriv_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderBandPriv_Impl, const OFFSET: isize>() -> IFolderBandPriv_Vtbl {
unsafe extern "system" fn SetCascade<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderBandPriv_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fcascade: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCascade(::core::mem::transmute_copy(&fcascade)).into()
}
unsafe extern "system" fn SetAccelerators<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderBandPriv_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, faccelerators: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAccelerators(::core::mem::transmute_copy(&faccelerators)).into()
}
unsafe extern "system" fn SetNoIcons<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderBandPriv_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fnoicons: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNoIcons(::core::mem::transmute_copy(&fnoicons)).into()
}
unsafe extern "system" fn SetNoText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderBandPriv_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fnotext: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNoText(::core::mem::transmute_copy(&fnotext)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetCascade: SetCascade::<Identity, Impl, OFFSET>,
SetAccelerators: SetAccelerators::<Identity, Impl, OFFSET>,
SetNoIcons: SetNoIcons::<Identity, Impl, OFFSET>,
SetNoText: SetNoText::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFolderBandPriv as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
pub trait IFolderFilter_Impl: Sized {
fn ShouldShow(&self, psf: ::core::option::Option<&IShellFolder>, pidlfolder: *const Common::ITEMIDLIST, pidlitem: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn GetEnumFlags(&self, psf: ::core::option::Option<&IShellFolder>, pidlfolder: *const Common::ITEMIDLIST, phwnd: *mut super::super::Foundation::HWND, pgrfflags: *mut u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IFolderFilter {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl IFolderFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderFilter_Impl, const OFFSET: isize>() -> IFolderFilter_Vtbl {
unsafe extern "system" fn ShouldShow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psf: *mut ::core::ffi::c_void, pidlfolder: *const Common::ITEMIDLIST, pidlitem: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShouldShow(::windows_core::from_raw_borrowed(&psf), ::core::mem::transmute_copy(&pidlfolder), ::core::mem::transmute_copy(&pidlitem)).into()
}
unsafe extern "system" fn GetEnumFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psf: *mut ::core::ffi::c_void, pidlfolder: *const Common::ITEMIDLIST, phwnd: *mut super::super::Foundation::HWND, pgrfflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEnumFlags(::windows_core::from_raw_borrowed(&psf), ::core::mem::transmute_copy(&pidlfolder), ::core::mem::transmute_copy(&phwnd), ::core::mem::transmute_copy(&pgrfflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ShouldShow: ShouldShow::<Identity, Impl, OFFSET>,
GetEnumFlags: GetEnumFlags::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFolderFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IFolderFilterSite_Impl: Sized {
fn SetFilter(&self, punk: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IFolderFilterSite {}
impl IFolderFilterSite_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderFilterSite_Impl, const OFFSET: isize>() -> IFolderFilterSite_Vtbl {
unsafe extern "system" fn SetFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderFilterSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *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.SetFilter(::windows_core::from_raw_borrowed(&punk)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetFilter: SetFilter::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFolderFilterSite as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
pub trait IFolderView_Impl: Sized {
fn GetCurrentViewMode(&self) -> ::windows_core::Result<u32>;
fn SetCurrentViewMode(&self, viewmode: u32) -> ::windows_core::Result<()>;
fn GetFolder(&self, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn Item(&self, iitemindex: i32) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
fn ItemCount(&self, uflags: &_SVGIO) -> ::windows_core::Result<i32>;
fn Items(&self, uflags: &_SVGIO, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetSelectionMarkedItem(&self) -> ::windows_core::Result<i32>;
fn GetFocusedItem(&self) -> ::windows_core::Result<i32>;
fn GetItemPosition(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<super::super::Foundation::POINT>;
fn GetSpacing(&self, ppt: *mut super::super::Foundation::POINT) -> ::windows_core::Result<()>;
fn GetDefaultSpacing(&self) -> ::windows_core::Result<super::super::Foundation::POINT>;
fn GetAutoArrange(&self) -> ::windows_core::Result<()>;
fn SelectItem(&self, iitem: i32, dwflags: u32) -> ::windows_core::Result<()>;
fn SelectAndPositionItems(&self, cidl: u32, apidl: *const *const Common::ITEMIDLIST, apt: *const super::super::Foundation::POINT, dwflags: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IFolderView {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl IFolderView_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>() -> IFolderView_Vtbl {
unsafe extern "system" fn GetCurrentViewMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pviewmode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentViewMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pviewmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentViewMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, viewmode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentViewMode(::core::mem::transmute_copy(&viewmode)).into()
}
unsafe extern "system" fn GetFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetFolder(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn Item<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iitemindex: i32, ppidl: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Item(::core::mem::transmute_copy(&iitemindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ItemCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uflags: u32, pcitems: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ItemCount(::core::mem::transmute(&uflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcitems, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Items<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uflags: u32, riid: *const ::windows_core::GUID, ppv: *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();
this.Items(::core::mem::transmute(&uflags), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetSelectionMarkedItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piitem: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSelectionMarkedItem() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFocusedItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piitem: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFocusedItem() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItemPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, ppt: *mut super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemPosition(::core::mem::transmute_copy(&pidl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppt, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSpacing<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppt: *mut super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpacing(::core::mem::transmute_copy(&ppt)).into()
}
unsafe extern "system" fn GetDefaultSpacing<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppt: *mut super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDefaultSpacing() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppt, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAutoArrange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *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.GetAutoArrange().into()
}
unsafe extern "system" fn SelectItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iitem: i32, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectItem(::core::mem::transmute_copy(&iitem), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn SelectAndPositionItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cidl: u32, apidl: *const *const Common::ITEMIDLIST, apt: *const super::super::Foundation::POINT, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectAndPositionItems(::core::mem::transmute_copy(&cidl), ::core::mem::transmute_copy(&apidl), ::core::mem::transmute_copy(&apt), ::core::mem::transmute_copy(&dwflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCurrentViewMode: GetCurrentViewMode::<Identity, Impl, OFFSET>,
SetCurrentViewMode: SetCurrentViewMode::<Identity, Impl, OFFSET>,
GetFolder: GetFolder::<Identity, Impl, OFFSET>,
Item: Item::<Identity, Impl, OFFSET>,
ItemCount: ItemCount::<Identity, Impl, OFFSET>,
Items: Items::<Identity, Impl, OFFSET>,
GetSelectionMarkedItem: GetSelectionMarkedItem::<Identity, Impl, OFFSET>,
GetFocusedItem: GetFocusedItem::<Identity, Impl, OFFSET>,
GetItemPosition: GetItemPosition::<Identity, Impl, OFFSET>,
GetSpacing: GetSpacing::<Identity, Impl, OFFSET>,
GetDefaultSpacing: GetDefaultSpacing::<Identity, Impl, OFFSET>,
GetAutoArrange: GetAutoArrange::<Identity, Impl, OFFSET>,
SelectItem: SelectItem::<Identity, Impl, OFFSET>,
SelectAndPositionItems: SelectAndPositionItems::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFolderView as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait IFolderView2_Impl: Sized + IFolderView_Impl {
fn SetGroupBy(&self, key: *const PropertiesSystem::PROPERTYKEY, fascending: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetGroupBy(&self, pkey: *mut PropertiesSystem::PROPERTYKEY, pfascending: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetViewProperty(&self, pidl: *const Common::ITEMIDLIST, propkey: *const PropertiesSystem::PROPERTYKEY, propvar: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows_core::Result<()>;
fn GetViewProperty(&self, pidl: *const Common::ITEMIDLIST, propkey: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<super::super::System::Com::StructuredStorage::PROPVARIANT>;
fn SetTileViewProperties(&self, pidl: *const Common::ITEMIDLIST, pszproplist: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetExtendedTileViewProperties(&self, pidl: *const Common::ITEMIDLIST, pszproplist: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetText(&self, itype: FVTEXTTYPE, pwsztext: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetCurrentFolderFlags(&self, dwmask: u32, dwflags: u32) -> ::windows_core::Result<()>;
fn GetCurrentFolderFlags(&self) -> ::windows_core::Result<u32>;
fn GetSortColumnCount(&self) -> ::windows_core::Result<i32>;
fn SetSortColumns(&self, rgsortcolumns: *const SORTCOLUMN, ccolumns: i32) -> ::windows_core::Result<()>;
fn GetSortColumns(&self, rgsortcolumns: *mut SORTCOLUMN, ccolumns: i32) -> ::windows_core::Result<()>;
fn GetItem(&self, iitem: i32, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetVisibleItem(&self, istart: i32, fprevious: super::super::Foundation::BOOL) -> ::windows_core::Result<i32>;
fn GetSelectedItem(&self, istart: i32) -> ::windows_core::Result<i32>;
fn GetSelection(&self, fnoneimpliesfolder: super::super::Foundation::BOOL) -> ::windows_core::Result<IShellItemArray>;
fn GetSelectionState(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<u32>;
fn InvokeVerbOnSelection(&self, pszverb: &::windows_core::PCSTR) -> ::windows_core::Result<()>;
fn SetViewModeAndIconSize(&self, uviewmode: FOLDERVIEWMODE, iimagesize: i32) -> ::windows_core::Result<()>;
fn GetViewModeAndIconSize(&self, puviewmode: *mut FOLDERVIEWMODE, piimagesize: *mut i32) -> ::windows_core::Result<()>;
fn SetGroupSubsetCount(&self, cvisiblerows: u32) -> ::windows_core::Result<()>;
fn GetGroupSubsetCount(&self) -> ::windows_core::Result<u32>;
fn SetRedraw(&self, fredrawon: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn IsMoveInSameFolder(&self) -> ::windows_core::Result<()>;
fn DoRename(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for IFolderView2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl IFolderView2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>() -> IFolderView2_Vtbl {
unsafe extern "system" fn SetGroupBy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, fascending: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetGroupBy(::core::mem::transmute_copy(&key), ::core::mem::transmute_copy(&fascending)).into()
}
unsafe extern "system" fn GetGroupBy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pkey: *mut PropertiesSystem::PROPERTYKEY, pfascending: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetGroupBy(::core::mem::transmute_copy(&pkey), ::core::mem::transmute_copy(&pfascending)).into()
}
unsafe extern "system" fn SetViewProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, propkey: *const PropertiesSystem::PROPERTYKEY, propvar: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetViewProperty(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&propkey), ::core::mem::transmute_copy(&propvar)).into()
}
unsafe extern "system" fn GetViewProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, propkey: *const PropertiesSystem::PROPERTYKEY, ppropvar: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetViewProperty(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&propkey)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppropvar, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTileViewProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, pszproplist: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTileViewProperties(::core::mem::transmute_copy(&pidl), ::core::mem::transmute(&pszproplist)).into()
}
unsafe extern "system" fn SetExtendedTileViewProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, pszproplist: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExtendedTileViewProperties(::core::mem::transmute_copy(&pidl), ::core::mem::transmute(&pszproplist)).into()
}
unsafe extern "system" fn SetText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itype: FVTEXTTYPE, pwsztext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetText(::core::mem::transmute_copy(&itype), ::core::mem::transmute(&pwsztext)).into()
}
unsafe extern "system" fn SetCurrentFolderFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwmask: u32, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentFolderFlags(::core::mem::transmute_copy(&dwmask), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn GetCurrentFolderFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentFolderFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSortColumnCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pccolumns: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSortColumnCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pccolumns, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSortColumns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rgsortcolumns: *const SORTCOLUMN, ccolumns: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSortColumns(::core::mem::transmute_copy(&rgsortcolumns), ::core::mem::transmute_copy(&ccolumns)).into()
}
unsafe extern "system" fn GetSortColumns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rgsortcolumns: *mut SORTCOLUMN, ccolumns: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSortColumns(::core::mem::transmute_copy(&rgsortcolumns), ::core::mem::transmute_copy(&ccolumns)).into()
}
unsafe extern "system" fn GetItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iitem: i32, riid: *const ::windows_core::GUID, ppv: *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();
this.GetItem(::core::mem::transmute_copy(&iitem), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetVisibleItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, istart: i32, fprevious: super::super::Foundation::BOOL, piitem: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetVisibleItem(::core::mem::transmute_copy(&istart), ::core::mem::transmute_copy(&fprevious)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSelectedItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, istart: i32, piitem: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSelectedItem(::core::mem::transmute_copy(&istart)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSelection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fnoneimpliesfolder: super::super::Foundation::BOOL, ppsia: *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.GetSelection(::core::mem::transmute_copy(&fnoneimpliesfolder)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsia, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSelectionState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSelectionState(::core::mem::transmute_copy(&pidl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn InvokeVerbOnSelection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszverb: ::windows_core::PCSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeVerbOnSelection(::core::mem::transmute(&pszverb)).into()
}
unsafe extern "system" fn SetViewModeAndIconSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uviewmode: FOLDERVIEWMODE, iimagesize: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetViewModeAndIconSize(::core::mem::transmute_copy(&uviewmode), ::core::mem::transmute_copy(&iimagesize)).into()
}
unsafe extern "system" fn GetViewModeAndIconSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puviewmode: *mut FOLDERVIEWMODE, piimagesize: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetViewModeAndIconSize(::core::mem::transmute_copy(&puviewmode), ::core::mem::transmute_copy(&piimagesize)).into()
}
unsafe extern "system" fn SetGroupSubsetCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cvisiblerows: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetGroupSubsetCount(::core::mem::transmute_copy(&cvisiblerows)).into()
}
unsafe extern "system" fn GetGroupSubsetCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcvisiblerows: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetGroupSubsetCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcvisiblerows, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRedraw<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fredrawon: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRedraw(::core::mem::transmute_copy(&fredrawon)).into()
}
unsafe extern "system" fn IsMoveInSameFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *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.IsMoveInSameFolder().into()
}
unsafe extern "system" fn DoRename<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderView2_Impl, const OFFSET: isize>(this: *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.DoRename().into()
}
Self {
base__: IFolderView_Vtbl::new::<Identity, Impl, OFFSET>(),
SetGroupBy: SetGroupBy::<Identity, Impl, OFFSET>,
GetGroupBy: GetGroupBy::<Identity, Impl, OFFSET>,
SetViewProperty: SetViewProperty::<Identity, Impl, OFFSET>,
GetViewProperty: GetViewProperty::<Identity, Impl, OFFSET>,
SetTileViewProperties: SetTileViewProperties::<Identity, Impl, OFFSET>,
SetExtendedTileViewProperties: SetExtendedTileViewProperties::<Identity, Impl, OFFSET>,
SetText: SetText::<Identity, Impl, OFFSET>,
SetCurrentFolderFlags: SetCurrentFolderFlags::<Identity, Impl, OFFSET>,
GetCurrentFolderFlags: GetCurrentFolderFlags::<Identity, Impl, OFFSET>,
GetSortColumnCount: GetSortColumnCount::<Identity, Impl, OFFSET>,
SetSortColumns: SetSortColumns::<Identity, Impl, OFFSET>,
GetSortColumns: GetSortColumns::<Identity, Impl, OFFSET>,
GetItem: GetItem::<Identity, Impl, OFFSET>,
GetVisibleItem: GetVisibleItem::<Identity, Impl, OFFSET>,
GetSelectedItem: GetSelectedItem::<Identity, Impl, OFFSET>,
GetSelection: GetSelection::<Identity, Impl, OFFSET>,
GetSelectionState: GetSelectionState::<Identity, Impl, OFFSET>,
InvokeVerbOnSelection: InvokeVerbOnSelection::<Identity, Impl, OFFSET>,
SetViewModeAndIconSize: SetViewModeAndIconSize::<Identity, Impl, OFFSET>,
GetViewModeAndIconSize: GetViewModeAndIconSize::<Identity, Impl, OFFSET>,
SetGroupSubsetCount: SetGroupSubsetCount::<Identity, Impl, OFFSET>,
GetGroupSubsetCount: GetGroupSubsetCount::<Identity, Impl, OFFSET>,
SetRedraw: SetRedraw::<Identity, Impl, OFFSET>,
IsMoveInSameFolder: IsMoveInSameFolder::<Identity, Impl, OFFSET>,
DoRename: DoRename::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFolderView2 as ::windows_core::ComInterface>::IID || iid == &<IFolderView as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IFolderViewHost_Impl: Sized {
fn Initialize(&self, hwndparent: super::super::Foundation::HWND, pdo: ::core::option::Option<&super::super::System::Com::IDataObject>, prc: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IFolderViewHost {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IFolderViewHost_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewHost_Impl, const OFFSET: isize>() -> IFolderViewHost_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndparent: super::super::Foundation::HWND, pdo: *mut ::core::ffi::c_void, prc: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&hwndparent), ::windows_core::from_raw_borrowed(&pdo), ::core::mem::transmute_copy(&prc)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFolderViewHost as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IFolderViewOC_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn SetFolderView(&self, pdisp: ::core::option::Option<&super::super::System::Com::IDispatch>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IFolderViewOC {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IFolderViewOC_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewOC_Impl, const OFFSET: isize>() -> IFolderViewOC_Vtbl {
unsafe extern "system" fn SetFolderView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewOC_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdisp: *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.SetFolderView(::windows_core::from_raw_borrowed(&pdisp)).into()
}
Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), SetFolderView: SetFolderView::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFolderViewOC as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IFolderViewOptions_Impl: Sized {
fn SetFolderViewOptions(&self, fvomask: FOLDERVIEWOPTIONS, fvoflags: FOLDERVIEWOPTIONS) -> ::windows_core::Result<()>;
fn GetFolderViewOptions(&self) -> ::windows_core::Result<FOLDERVIEWOPTIONS>;
}
impl ::windows_core::RuntimeName for IFolderViewOptions {}
impl IFolderViewOptions_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewOptions_Impl, const OFFSET: isize>() -> IFolderViewOptions_Vtbl {
unsafe extern "system" fn SetFolderViewOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fvomask: FOLDERVIEWOPTIONS, fvoflags: FOLDERVIEWOPTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFolderViewOptions(::core::mem::transmute_copy(&fvomask), ::core::mem::transmute_copy(&fvoflags)).into()
}
unsafe extern "system" fn GetFolderViewOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfvoflags: *mut FOLDERVIEWOPTIONS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFolderViewOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfvoflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetFolderViewOptions: SetFolderViewOptions::<Identity, Impl, OFFSET>,
GetFolderViewOptions: GetFolderViewOptions::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFolderViewOptions as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait IFolderViewSettings_Impl: Sized {
fn GetColumnPropertyList(&self, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetGroupByProperty(&self, pkey: *mut PropertiesSystem::PROPERTYKEY, pfgroupascending: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetViewMode(&self) -> ::windows_core::Result<FOLDERLOGICALVIEWMODE>;
fn GetIconSize(&self) -> ::windows_core::Result<u32>;
fn GetFolderFlags(&self, pfoldermask: *mut FOLDERFLAGS, pfolderflags: *mut FOLDERFLAGS) -> ::windows_core::Result<()>;
fn GetSortColumns(&self, rgsortcolumns: *mut SORTCOLUMN, ccolumnsin: u32, pccolumnsout: *mut u32) -> ::windows_core::Result<()>;
fn GetGroupSubsetCount(&self) -> ::windows_core::Result<u32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for IFolderViewSettings {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl IFolderViewSettings_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewSettings_Impl, const OFFSET: isize>() -> IFolderViewSettings_Vtbl {
unsafe extern "system" fn GetColumnPropertyList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetColumnPropertyList(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetGroupByProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pkey: *mut PropertiesSystem::PROPERTYKEY, pfgroupascending: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetGroupByProperty(::core::mem::transmute_copy(&pkey), ::core::mem::transmute_copy(&pfgroupascending)).into()
}
unsafe extern "system" fn GetViewMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plvm: *mut FOLDERLOGICALVIEWMODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetViewMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plvm, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetIconSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puiconsize: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIconSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puiconsize, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFolderFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfoldermask: *mut FOLDERFLAGS, pfolderflags: *mut FOLDERFLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFolderFlags(::core::mem::transmute_copy(&pfoldermask), ::core::mem::transmute_copy(&pfolderflags)).into()
}
unsafe extern "system" fn GetSortColumns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rgsortcolumns: *mut SORTCOLUMN, ccolumnsin: u32, pccolumnsout: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSortColumns(::core::mem::transmute_copy(&rgsortcolumns), ::core::mem::transmute_copy(&ccolumnsin), ::core::mem::transmute_copy(&pccolumnsout)).into()
}
unsafe extern "system" fn GetGroupSubsetCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFolderViewSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcvisiblerows: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetGroupSubsetCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcvisiblerows, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetColumnPropertyList: GetColumnPropertyList::<Identity, Impl, OFFSET>,
GetGroupByProperty: GetGroupByProperty::<Identity, Impl, OFFSET>,
GetViewMode: GetViewMode::<Identity, Impl, OFFSET>,
GetIconSize: GetIconSize::<Identity, Impl, OFFSET>,
GetFolderFlags: GetFolderFlags::<Identity, Impl, OFFSET>,
GetSortColumns: GetSortColumns::<Identity, Impl, OFFSET>,
GetGroupSubsetCount: GetGroupSubsetCount::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFolderViewSettings as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IFrameworkInputPane_Impl: Sized {
fn Advise(&self, pwindow: ::core::option::Option<&::windows_core::IUnknown>, phandler: ::core::option::Option<&IFrameworkInputPaneHandler>) -> ::windows_core::Result<u32>;
fn AdviseWithHWND(&self, hwnd: super::super::Foundation::HWND, phandler: ::core::option::Option<&IFrameworkInputPaneHandler>) -> ::windows_core::Result<u32>;
fn Unadvise(&self, dwcookie: u32) -> ::windows_core::Result<()>;
fn Location(&self) -> ::windows_core::Result<super::super::Foundation::RECT>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IFrameworkInputPane {}
#[cfg(feature = "Win32_Foundation")]
impl IFrameworkInputPane_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrameworkInputPane_Impl, const OFFSET: isize>() -> IFrameworkInputPane_Vtbl {
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrameworkInputPane_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwindow: *mut ::core::ffi::c_void, phandler: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Advise(::windows_core::from_raw_borrowed(&pwindow), ::windows_core::from_raw_borrowed(&phandler)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AdviseWithHWND<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrameworkInputPane_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, phandler: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AdviseWithHWND(::core::mem::transmute_copy(&hwnd), ::windows_core::from_raw_borrowed(&phandler)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Unadvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrameworkInputPane_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Unadvise(::core::mem::transmute_copy(&dwcookie)).into()
}
unsafe extern "system" fn Location<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrameworkInputPane_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prcinputpanescreenlocation: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Location() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prcinputpanescreenlocation, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Advise: Advise::<Identity, Impl, OFFSET>,
AdviseWithHWND: AdviseWithHWND::<Identity, Impl, OFFSET>,
Unadvise: Unadvise::<Identity, Impl, OFFSET>,
Location: Location::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFrameworkInputPane as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IFrameworkInputPaneHandler_Impl: Sized {
fn Showing(&self, prcinputpanescreenlocation: *const super::super::Foundation::RECT, fensurefocusedelementinview: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn Hiding(&self, fensurefocusedelementinview: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IFrameworkInputPaneHandler {}
#[cfg(feature = "Win32_Foundation")]
impl IFrameworkInputPaneHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrameworkInputPaneHandler_Impl, const OFFSET: isize>() -> IFrameworkInputPaneHandler_Vtbl {
unsafe extern "system" fn Showing<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrameworkInputPaneHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prcinputpanescreenlocation: *const super::super::Foundation::RECT, fensurefocusedelementinview: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Showing(::core::mem::transmute_copy(&prcinputpanescreenlocation), ::core::mem::transmute_copy(&fensurefocusedelementinview)).into()
}
unsafe extern "system" fn Hiding<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrameworkInputPaneHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fensurefocusedelementinview: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Hiding(::core::mem::transmute_copy(&fensurefocusedelementinview)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Showing: Showing::<Identity, Impl, OFFSET>,
Hiding: Hiding::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFrameworkInputPaneHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IGetServiceIds_Impl: Sized {
fn GetServiceIds(&self, serviceidcount: *mut u32, serviceids: *mut *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IGetServiceIds {}
impl IGetServiceIds_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGetServiceIds_Impl, const OFFSET: isize>() -> IGetServiceIds_Vtbl {
unsafe extern "system" fn GetServiceIds<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGetServiceIds_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, serviceidcount: *mut u32, serviceids: *mut *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetServiceIds(::core::mem::transmute_copy(&serviceidcount), ::core::mem::transmute_copy(&serviceids)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetServiceIds: GetServiceIds::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IGetServiceIds as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IHWEventHandler_Impl: Sized {
fn Initialize(&self, pszparams: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn HandleEvent(&self, pszdeviceid: &::windows_core::PCWSTR, pszaltdeviceid: &::windows_core::PCWSTR, pszeventtype: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn HandleEventWithContent(&self, pszdeviceid: &::windows_core::PCWSTR, pszaltdeviceid: &::windows_core::PCWSTR, pszeventtype: &::windows_core::PCWSTR, pszcontenttypehandler: &::windows_core::PCWSTR, pdataobject: ::core::option::Option<&super::super::System::Com::IDataObject>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IHWEventHandler {}
#[cfg(feature = "Win32_System_Com")]
impl IHWEventHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHWEventHandler_Impl, const OFFSET: isize>() -> IHWEventHandler_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHWEventHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszparams: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute(&pszparams)).into()
}
unsafe extern "system" fn HandleEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHWEventHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdeviceid: ::windows_core::PCWSTR, pszaltdeviceid: ::windows_core::PCWSTR, pszeventtype: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HandleEvent(::core::mem::transmute(&pszdeviceid), ::core::mem::transmute(&pszaltdeviceid), ::core::mem::transmute(&pszeventtype)).into()
}
unsafe extern "system" fn HandleEventWithContent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHWEventHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdeviceid: ::windows_core::PCWSTR, pszaltdeviceid: ::windows_core::PCWSTR, pszeventtype: ::windows_core::PCWSTR, pszcontenttypehandler: ::windows_core::PCWSTR, pdataobject: *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.HandleEventWithContent(::core::mem::transmute(&pszdeviceid), ::core::mem::transmute(&pszaltdeviceid), ::core::mem::transmute(&pszeventtype), ::core::mem::transmute(&pszcontenttypehandler), ::windows_core::from_raw_borrowed(&pdataobject)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
HandleEvent: HandleEvent::<Identity, Impl, OFFSET>,
HandleEventWithContent: HandleEventWithContent::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHWEventHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IHWEventHandler2_Impl: Sized + IHWEventHandler_Impl {
fn HandleEventWithHWND(&self, pszdeviceid: &::windows_core::PCWSTR, pszaltdeviceid: &::windows_core::PCWSTR, pszeventtype: &::windows_core::PCWSTR, hwndowner: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IHWEventHandler2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IHWEventHandler2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHWEventHandler2_Impl, const OFFSET: isize>() -> IHWEventHandler2_Vtbl {
unsafe extern "system" fn HandleEventWithHWND<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHWEventHandler2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdeviceid: ::windows_core::PCWSTR, pszaltdeviceid: ::windows_core::PCWSTR, pszeventtype: ::windows_core::PCWSTR, hwndowner: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HandleEventWithHWND(::core::mem::transmute(&pszdeviceid), ::core::mem::transmute(&pszaltdeviceid), ::core::mem::transmute(&pszeventtype), ::core::mem::transmute_copy(&hwndowner)).into()
}
Self { base__: IHWEventHandler_Vtbl::new::<Identity, Impl, OFFSET>(), HandleEventWithHWND: HandleEventWithHWND::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHWEventHandler2 as ::windows_core::ComInterface>::IID || iid == &<IHWEventHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IHandlerActivationHost_Impl: Sized {
fn BeforeCoCreateInstance(&self, clsidhandler: *const ::windows_core::GUID, itemsbeingactivated: ::core::option::Option<&IShellItemArray>, handlerinfo: ::core::option::Option<&IHandlerInfo>) -> ::windows_core::Result<()>;
fn BeforeCreateProcess(&self, applicationpath: &::windows_core::PCWSTR, commandline: &::windows_core::PCWSTR, handlerinfo: ::core::option::Option<&IHandlerInfo>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IHandlerActivationHost {}
impl IHandlerActivationHost_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHandlerActivationHost_Impl, const OFFSET: isize>() -> IHandlerActivationHost_Vtbl {
unsafe extern "system" fn BeforeCoCreateInstance<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHandlerActivationHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsidhandler: *const ::windows_core::GUID, itemsbeingactivated: *mut ::core::ffi::c_void, handlerinfo: *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.BeforeCoCreateInstance(::core::mem::transmute_copy(&clsidhandler), ::windows_core::from_raw_borrowed(&itemsbeingactivated), ::windows_core::from_raw_borrowed(&handlerinfo)).into()
}
unsafe extern "system" fn BeforeCreateProcess<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHandlerActivationHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, applicationpath: ::windows_core::PCWSTR, commandline: ::windows_core::PCWSTR, handlerinfo: *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.BeforeCreateProcess(::core::mem::transmute(&applicationpath), ::core::mem::transmute(&commandline), ::windows_core::from_raw_borrowed(&handlerinfo)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
BeforeCoCreateInstance: BeforeCoCreateInstance::<Identity, Impl, OFFSET>,
BeforeCreateProcess: BeforeCreateProcess::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHandlerActivationHost as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IHandlerInfo_Impl: Sized {
fn GetApplicationDisplayName(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetApplicationPublisher(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetApplicationIconReference(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
impl ::windows_core::RuntimeName for IHandlerInfo {}
impl IHandlerInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHandlerInfo_Impl, const OFFSET: isize>() -> IHandlerInfo_Vtbl {
unsafe extern "system" fn GetApplicationDisplayName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetApplicationDisplayName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetApplicationPublisher<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetApplicationPublisher() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetApplicationIconReference<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetApplicationIconReference() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetApplicationDisplayName: GetApplicationDisplayName::<Identity, Impl, OFFSET>,
GetApplicationPublisher: GetApplicationPublisher::<Identity, Impl, OFFSET>,
GetApplicationIconReference: GetApplicationIconReference::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHandlerInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IHandlerInfo2_Impl: Sized + IHandlerInfo_Impl {
fn GetApplicationId(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
impl ::windows_core::RuntimeName for IHandlerInfo2 {}
impl IHandlerInfo2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHandlerInfo2_Impl, const OFFSET: isize>() -> IHandlerInfo2_Vtbl {
unsafe extern "system" fn GetApplicationId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHandlerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetApplicationId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IHandlerInfo_Vtbl::new::<Identity, Impl, OFFSET>(), GetApplicationId: GetApplicationId::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHandlerInfo2 as ::windows_core::ComInterface>::IID || iid == &<IHandlerInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IHlink_Impl: Sized {
fn SetHlinkSite(&self, pihlsite: ::core::option::Option<&IHlinkSite>, dwsitedata: u32) -> ::windows_core::Result<()>;
fn GetHlinkSite(&self, ppihlsite: *mut ::core::option::Option<IHlinkSite>, pdwsitedata: *mut u32) -> ::windows_core::Result<()>;
fn SetMonikerReference(&self, grfhlsetf: u32, pimktarget: ::core::option::Option<&super::super::System::Com::IMoniker>, pwzlocation: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetMonikerReference(&self, dwwhichref: u32, ppimktarget: *mut ::core::option::Option<super::super::System::Com::IMoniker>, ppwzlocation: *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
fn SetStringReference(&self, grfhlsetf: u32, pwztarget: &::windows_core::PCWSTR, pwzlocation: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetStringReference(&self, dwwhichref: u32, ppwztarget: *mut ::windows_core::PWSTR, ppwzlocation: *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
fn SetFriendlyName(&self, pwzfriendlyname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetFriendlyName(&self, grfhlfnamef: u32) -> ::windows_core::Result<::windows_core::PWSTR>;
fn SetTargetFrameName(&self, pwztargetframename: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetTargetFrameName(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetMiscStatus(&self) -> ::windows_core::Result<u32>;
fn Navigate(&self, grfhlnf: u32, pibc: ::core::option::Option<&super::super::System::Com::IBindCtx>, pibsc: ::core::option::Option<&super::super::System::Com::IBindStatusCallback>, pihlbc: ::core::option::Option<&IHlinkBrowseContext>) -> ::windows_core::Result<()>;
fn SetAdditionalParams(&self, pwzadditionalparams: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetAdditionalParams(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IHlink {}
#[cfg(feature = "Win32_System_Com")]
impl IHlink_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>() -> IHlink_Vtbl {
unsafe extern "system" fn SetHlinkSite<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pihlsite: *mut ::core::ffi::c_void, dwsitedata: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHlinkSite(::windows_core::from_raw_borrowed(&pihlsite), ::core::mem::transmute_copy(&dwsitedata)).into()
}
unsafe extern "system" fn GetHlinkSite<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppihlsite: *mut *mut ::core::ffi::c_void, pdwsitedata: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetHlinkSite(::core::mem::transmute_copy(&ppihlsite), ::core::mem::transmute_copy(&pdwsitedata)).into()
}
unsafe extern "system" fn SetMonikerReference<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfhlsetf: u32, pimktarget: *mut ::core::ffi::c_void, pwzlocation: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMonikerReference(::core::mem::transmute_copy(&grfhlsetf), ::windows_core::from_raw_borrowed(&pimktarget), ::core::mem::transmute(&pwzlocation)).into()
}
unsafe extern "system" fn GetMonikerReference<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwwhichref: u32, ppimktarget: *mut *mut ::core::ffi::c_void, ppwzlocation: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMonikerReference(::core::mem::transmute_copy(&dwwhichref), ::core::mem::transmute_copy(&ppimktarget), ::core::mem::transmute_copy(&ppwzlocation)).into()
}
unsafe extern "system" fn SetStringReference<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfhlsetf: u32, pwztarget: ::windows_core::PCWSTR, pwzlocation: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStringReference(::core::mem::transmute_copy(&grfhlsetf), ::core::mem::transmute(&pwztarget), ::core::mem::transmute(&pwzlocation)).into()
}
unsafe extern "system" fn GetStringReference<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwwhichref: u32, ppwztarget: *mut ::windows_core::PWSTR, ppwzlocation: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStringReference(::core::mem::transmute_copy(&dwwhichref), ::core::mem::transmute_copy(&ppwztarget), ::core::mem::transmute_copy(&ppwzlocation)).into()
}
unsafe extern "system" fn SetFriendlyName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwzfriendlyname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFriendlyName(::core::mem::transmute(&pwzfriendlyname)).into()
}
unsafe extern "system" fn GetFriendlyName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfhlfnamef: u32, ppwzfriendlyname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFriendlyName(::core::mem::transmute_copy(&grfhlfnamef)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppwzfriendlyname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTargetFrameName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwztargetframename: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTargetFrameName(::core::mem::transmute(&pwztargetframename)).into()
}
unsafe extern "system" fn GetTargetFrameName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppwztargetframename: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTargetFrameName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppwztargetframename, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMiscStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwstatus: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMiscStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwstatus, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Navigate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfhlnf: u32, pibc: *mut ::core::ffi::c_void, pibsc: *mut ::core::ffi::c_void, pihlbc: *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.Navigate(::core::mem::transmute_copy(&grfhlnf), ::windows_core::from_raw_borrowed(&pibc), ::windows_core::from_raw_borrowed(&pibsc), ::windows_core::from_raw_borrowed(&pihlbc)).into()
}
unsafe extern "system" fn SetAdditionalParams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwzadditionalparams: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAdditionalParams(::core::mem::transmute(&pwzadditionalparams)).into()
}
unsafe extern "system" fn GetAdditionalParams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppwzadditionalparams: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAdditionalParams() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppwzadditionalparams, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetHlinkSite: SetHlinkSite::<Identity, Impl, OFFSET>,
GetHlinkSite: GetHlinkSite::<Identity, Impl, OFFSET>,
SetMonikerReference: SetMonikerReference::<Identity, Impl, OFFSET>,
GetMonikerReference: GetMonikerReference::<Identity, Impl, OFFSET>,
SetStringReference: SetStringReference::<Identity, Impl, OFFSET>,
GetStringReference: GetStringReference::<Identity, Impl, OFFSET>,
SetFriendlyName: SetFriendlyName::<Identity, Impl, OFFSET>,
GetFriendlyName: GetFriendlyName::<Identity, Impl, OFFSET>,
SetTargetFrameName: SetTargetFrameName::<Identity, Impl, OFFSET>,
GetTargetFrameName: GetTargetFrameName::<Identity, Impl, OFFSET>,
GetMiscStatus: GetMiscStatus::<Identity, Impl, OFFSET>,
Navigate: Navigate::<Identity, Impl, OFFSET>,
SetAdditionalParams: SetAdditionalParams::<Identity, Impl, OFFSET>,
GetAdditionalParams: GetAdditionalParams::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHlink as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IHlinkBrowseContext_Impl: Sized {
fn Register(&self, reserved: u32, piunk: ::core::option::Option<&::windows_core::IUnknown>, pimk: ::core::option::Option<&super::super::System::Com::IMoniker>) -> ::windows_core::Result<u32>;
fn GetObject(&self, pimk: ::core::option::Option<&super::super::System::Com::IMoniker>, fbindifrootregistered: super::super::Foundation::BOOL) -> ::windows_core::Result<::windows_core::IUnknown>;
fn Revoke(&self, dwregister: u32) -> ::windows_core::Result<()>;
fn SetBrowseWindowInfo(&self, phlbwi: *const HLBWINFO) -> ::windows_core::Result<()>;
fn GetBrowseWindowInfo(&self, phlbwi: *mut HLBWINFO) -> ::windows_core::Result<()>;
fn SetInitialHlink(&self, pimktarget: ::core::option::Option<&super::super::System::Com::IMoniker>, pwzlocation: &::windows_core::PCWSTR, pwzfriendlyname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn OnNavigateHlink(&self, grfhlnf: u32, pimktarget: ::core::option::Option<&super::super::System::Com::IMoniker>, pwzlocation: &::windows_core::PCWSTR, pwzfriendlyname: &::windows_core::PCWSTR) -> ::windows_core::Result<u32>;
fn UpdateHlink(&self, uhlid: u32, pimktarget: ::core::option::Option<&super::super::System::Com::IMoniker>, pwzlocation: &::windows_core::PCWSTR, pwzfriendlyname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn EnumNavigationStack(&self, dwreserved: u32, grfhlfnamef: u32) -> ::windows_core::Result<IEnumHLITEM>;
fn QueryHlink(&self, grfhlqf: u32, uhlid: u32) -> ::windows_core::Result<()>;
fn GetHlink(&self, uhlid: u32) -> ::windows_core::Result<IHlink>;
fn SetCurrentHlink(&self, uhlid: u32) -> ::windows_core::Result<()>;
fn Clone(&self, piunkouter: ::core::option::Option<&::windows_core::IUnknown>, riid: *const ::windows_core::GUID) -> ::windows_core::Result<::windows_core::IUnknown>;
fn Close(&self, reserved: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IHlinkBrowseContext {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IHlinkBrowseContext_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>() -> IHlinkBrowseContext_Vtbl {
unsafe extern "system" fn Register<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, reserved: u32, piunk: *mut ::core::ffi::c_void, pimk: *mut ::core::ffi::c_void, pdwregister: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Register(::core::mem::transmute_copy(&reserved), ::windows_core::from_raw_borrowed(&piunk), ::windows_core::from_raw_borrowed(&pimk)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwregister, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pimk: *mut ::core::ffi::c_void, fbindifrootregistered: super::super::Foundation::BOOL, ppiunk: *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.GetObject(::windows_core::from_raw_borrowed(&pimk), ::core::mem::transmute_copy(&fbindifrootregistered)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppiunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Revoke<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwregister: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Revoke(::core::mem::transmute_copy(&dwregister)).into()
}
unsafe extern "system" fn SetBrowseWindowInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phlbwi: *const HLBWINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBrowseWindowInfo(::core::mem::transmute_copy(&phlbwi)).into()
}
unsafe extern "system" fn GetBrowseWindowInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phlbwi: *mut HLBWINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBrowseWindowInfo(::core::mem::transmute_copy(&phlbwi)).into()
}
unsafe extern "system" fn SetInitialHlink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pimktarget: *mut ::core::ffi::c_void, pwzlocation: ::windows_core::PCWSTR, pwzfriendlyname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInitialHlink(::windows_core::from_raw_borrowed(&pimktarget), ::core::mem::transmute(&pwzlocation), ::core::mem::transmute(&pwzfriendlyname)).into()
}
unsafe extern "system" fn OnNavigateHlink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfhlnf: u32, pimktarget: *mut ::core::ffi::c_void, pwzlocation: ::windows_core::PCWSTR, pwzfriendlyname: ::windows_core::PCWSTR, puhlid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OnNavigateHlink(::core::mem::transmute_copy(&grfhlnf), ::windows_core::from_raw_borrowed(&pimktarget), ::core::mem::transmute(&pwzlocation), ::core::mem::transmute(&pwzfriendlyname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puhlid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn UpdateHlink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uhlid: u32, pimktarget: *mut ::core::ffi::c_void, pwzlocation: ::windows_core::PCWSTR, pwzfriendlyname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateHlink(::core::mem::transmute_copy(&uhlid), ::windows_core::from_raw_borrowed(&pimktarget), ::core::mem::transmute(&pwzlocation), ::core::mem::transmute(&pwzfriendlyname)).into()
}
unsafe extern "system" fn EnumNavigationStack<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwreserved: u32, grfhlfnamef: u32, ppienumhlitem: *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.EnumNavigationStack(::core::mem::transmute_copy(&dwreserved), ::core::mem::transmute_copy(&grfhlfnamef)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppienumhlitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn QueryHlink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfhlqf: u32, uhlid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryHlink(::core::mem::transmute_copy(&grfhlqf), ::core::mem::transmute_copy(&uhlid)).into()
}
unsafe extern "system" fn GetHlink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uhlid: u32, ppihl: *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.GetHlink(::core::mem::transmute_copy(&uhlid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppihl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentHlink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uhlid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentHlink(::core::mem::transmute_copy(&uhlid)).into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piunkouter: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppiunkobj: *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.Clone(::windows_core::from_raw_borrowed(&piunkouter), ::core::mem::transmute_copy(&riid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppiunkobj, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Close<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkBrowseContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, reserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Close(::core::mem::transmute_copy(&reserved)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Register: Register::<Identity, Impl, OFFSET>,
GetObject: GetObject::<Identity, Impl, OFFSET>,
Revoke: Revoke::<Identity, Impl, OFFSET>,
SetBrowseWindowInfo: SetBrowseWindowInfo::<Identity, Impl, OFFSET>,
GetBrowseWindowInfo: GetBrowseWindowInfo::<Identity, Impl, OFFSET>,
SetInitialHlink: SetInitialHlink::<Identity, Impl, OFFSET>,
OnNavigateHlink: OnNavigateHlink::<Identity, Impl, OFFSET>,
UpdateHlink: UpdateHlink::<Identity, Impl, OFFSET>,
EnumNavigationStack: EnumNavigationStack::<Identity, Impl, OFFSET>,
QueryHlink: QueryHlink::<Identity, Impl, OFFSET>,
GetHlink: GetHlink::<Identity, Impl, OFFSET>,
SetCurrentHlink: SetCurrentHlink::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
Close: Close::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHlinkBrowseContext as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IHlinkFrame_Impl: Sized {
fn SetBrowseContext(&self, pihlbc: ::core::option::Option<&IHlinkBrowseContext>) -> ::windows_core::Result<()>;
fn GetBrowseContext(&self) -> ::windows_core::Result<IHlinkBrowseContext>;
fn Navigate(&self, grfhlnf: u32, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>, pibsc: ::core::option::Option<&super::super::System::Com::IBindStatusCallback>, pihlnavigate: ::core::option::Option<&IHlink>) -> ::windows_core::Result<()>;
fn OnNavigate(&self, grfhlnf: u32, pimktarget: ::core::option::Option<&super::super::System::Com::IMoniker>, pwzlocation: &::windows_core::PCWSTR, pwzfriendlyname: &::windows_core::PCWSTR, dwreserved: u32) -> ::windows_core::Result<()>;
fn UpdateHlink(&self, uhlid: u32, pimktarget: ::core::option::Option<&super::super::System::Com::IMoniker>, pwzlocation: &::windows_core::PCWSTR, pwzfriendlyname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IHlinkFrame {}
#[cfg(feature = "Win32_System_Com")]
impl IHlinkFrame_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkFrame_Impl, const OFFSET: isize>() -> IHlinkFrame_Vtbl {
unsafe extern "system" fn SetBrowseContext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pihlbc: *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.SetBrowseContext(::windows_core::from_raw_borrowed(&pihlbc)).into()
}
unsafe extern "system" fn GetBrowseContext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppihlbc: *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.GetBrowseContext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppihlbc, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Navigate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfhlnf: u32, pbc: *mut ::core::ffi::c_void, pibsc: *mut ::core::ffi::c_void, pihlnavigate: *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.Navigate(::core::mem::transmute_copy(&grfhlnf), ::windows_core::from_raw_borrowed(&pbc), ::windows_core::from_raw_borrowed(&pibsc), ::windows_core::from_raw_borrowed(&pihlnavigate)).into()
}
unsafe extern "system" fn OnNavigate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfhlnf: u32, pimktarget: *mut ::core::ffi::c_void, pwzlocation: ::windows_core::PCWSTR, pwzfriendlyname: ::windows_core::PCWSTR, dwreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnNavigate(::core::mem::transmute_copy(&grfhlnf), ::windows_core::from_raw_borrowed(&pimktarget), ::core::mem::transmute(&pwzlocation), ::core::mem::transmute(&pwzfriendlyname), ::core::mem::transmute_copy(&dwreserved)).into()
}
unsafe extern "system" fn UpdateHlink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uhlid: u32, pimktarget: *mut ::core::ffi::c_void, pwzlocation: ::windows_core::PCWSTR, pwzfriendlyname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateHlink(::core::mem::transmute_copy(&uhlid), ::windows_core::from_raw_borrowed(&pimktarget), ::core::mem::transmute(&pwzlocation), ::core::mem::transmute(&pwzfriendlyname)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetBrowseContext: SetBrowseContext::<Identity, Impl, OFFSET>,
GetBrowseContext: GetBrowseContext::<Identity, Impl, OFFSET>,
Navigate: Navigate::<Identity, Impl, OFFSET>,
OnNavigate: OnNavigate::<Identity, Impl, OFFSET>,
UpdateHlink: UpdateHlink::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHlinkFrame as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IHlinkSite_Impl: Sized {
fn QueryService(&self, dwsitedata: u32, guidservice: *const ::windows_core::GUID, riid: *const ::windows_core::GUID) -> ::windows_core::Result<::windows_core::IUnknown>;
fn GetMoniker(&self, dwsitedata: u32, dwassign: u32, dwwhich: u32) -> ::windows_core::Result<super::super::System::Com::IMoniker>;
fn ReadyToNavigate(&self, dwsitedata: u32, dwreserved: u32) -> ::windows_core::Result<()>;
fn OnNavigationComplete(&self, dwsitedata: u32, dwreserved: u32, hrerror: ::windows_core::HRESULT, pwzerror: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IHlinkSite {}
#[cfg(feature = "Win32_System_Com")]
impl IHlinkSite_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkSite_Impl, const OFFSET: isize>() -> IHlinkSite_Vtbl {
unsafe extern "system" fn QueryService<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsitedata: u32, guidservice: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppiunk: *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.QueryService(::core::mem::transmute_copy(&dwsitedata), ::core::mem::transmute_copy(&guidservice), ::core::mem::transmute_copy(&riid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppiunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMoniker<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsitedata: u32, dwassign: u32, dwwhich: u32, ppimk: *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.GetMoniker(::core::mem::transmute_copy(&dwsitedata), ::core::mem::transmute_copy(&dwassign), ::core::mem::transmute_copy(&dwwhich)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppimk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ReadyToNavigate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsitedata: u32, dwreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadyToNavigate(::core::mem::transmute_copy(&dwsitedata), ::core::mem::transmute_copy(&dwreserved)).into()
}
unsafe extern "system" fn OnNavigationComplete<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsitedata: u32, dwreserved: u32, hrerror: ::windows_core::HRESULT, pwzerror: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnNavigationComplete(::core::mem::transmute_copy(&dwsitedata), ::core::mem::transmute_copy(&dwreserved), ::core::mem::transmute_copy(&hrerror), ::core::mem::transmute(&pwzerror)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
QueryService: QueryService::<Identity, Impl, OFFSET>,
GetMoniker: GetMoniker::<Identity, Impl, OFFSET>,
ReadyToNavigate: ReadyToNavigate::<Identity, Impl, OFFSET>,
OnNavigationComplete: OnNavigationComplete::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHlinkSite as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IHlinkTarget_Impl: Sized {
fn SetBrowseContext(&self, pihlbc: ::core::option::Option<&IHlinkBrowseContext>) -> ::windows_core::Result<()>;
fn GetBrowseContext(&self) -> ::windows_core::Result<IHlinkBrowseContext>;
fn Navigate(&self, grfhlnf: u32, pwzjumplocation: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetMoniker(&self, pwzlocation: &::windows_core::PCWSTR, dwassign: u32) -> ::windows_core::Result<super::super::System::Com::IMoniker>;
fn GetFriendlyName(&self, pwzlocation: &::windows_core::PCWSTR) -> ::windows_core::Result<::windows_core::PWSTR>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IHlinkTarget {}
#[cfg(feature = "Win32_System_Com")]
impl IHlinkTarget_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkTarget_Impl, const OFFSET: isize>() -> IHlinkTarget_Vtbl {
unsafe extern "system" fn SetBrowseContext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkTarget_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pihlbc: *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.SetBrowseContext(::windows_core::from_raw_borrowed(&pihlbc)).into()
}
unsafe extern "system" fn GetBrowseContext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkTarget_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppihlbc: *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.GetBrowseContext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppihlbc, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Navigate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkTarget_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfhlnf: u32, pwzjumplocation: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Navigate(::core::mem::transmute_copy(&grfhlnf), ::core::mem::transmute(&pwzjumplocation)).into()
}
unsafe extern "system" fn GetMoniker<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkTarget_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwzlocation: ::windows_core::PCWSTR, dwassign: u32, ppimklocation: *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.GetMoniker(::core::mem::transmute(&pwzlocation), ::core::mem::transmute_copy(&dwassign)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppimklocation, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFriendlyName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHlinkTarget_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwzlocation: ::windows_core::PCWSTR, ppwzfriendlyname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFriendlyName(::core::mem::transmute(&pwzlocation)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppwzfriendlyname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetBrowseContext: SetBrowseContext::<Identity, Impl, OFFSET>,
GetBrowseContext: GetBrowseContext::<Identity, Impl, OFFSET>,
Navigate: Navigate::<Identity, Impl, OFFSET>,
GetMoniker: GetMoniker::<Identity, Impl, OFFSET>,
GetFriendlyName: GetFriendlyName::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHlinkTarget as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IHomeGroup_Impl: Sized {
fn IsMember(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn ShowSharingWizard(&self, owner: super::super::Foundation::HWND) -> ::windows_core::Result<HOMEGROUPSHARINGCHOICES>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IHomeGroup {}
#[cfg(feature = "Win32_Foundation")]
impl IHomeGroup_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHomeGroup_Impl, const OFFSET: isize>() -> IHomeGroup_Vtbl {
unsafe extern "system" fn IsMember<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHomeGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, member: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsMember() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(member, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ShowSharingWizard<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IHomeGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, owner: super::super::Foundation::HWND, sharingchoices: *mut HOMEGROUPSHARINGCHOICES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ShowSharingWizard(::core::mem::transmute_copy(&owner)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sharingchoices, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsMember: IsMember::<Identity, Impl, OFFSET>,
ShowSharingWizard: ShowSharingWizard::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IHomeGroup as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IIOCancelInformation_Impl: Sized {
fn SetCancelInformation(&self, dwthreadid: u32, umsgcancel: u32) -> ::windows_core::Result<()>;
fn GetCancelInformation(&self, pdwthreadid: *mut u32, pumsgcancel: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IIOCancelInformation {}
impl IIOCancelInformation_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IIOCancelInformation_Impl, const OFFSET: isize>() -> IIOCancelInformation_Vtbl {
unsafe extern "system" fn SetCancelInformation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IIOCancelInformation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwthreadid: u32, umsgcancel: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCancelInformation(::core::mem::transmute_copy(&dwthreadid), ::core::mem::transmute_copy(&umsgcancel)).into()
}
unsafe extern "system" fn GetCancelInformation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IIOCancelInformation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwthreadid: *mut u32, pumsgcancel: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCancelInformation(::core::mem::transmute_copy(&pdwthreadid), ::core::mem::transmute_copy(&pumsgcancel)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetCancelInformation: SetCancelInformation::<Identity, Impl, OFFSET>,
GetCancelInformation: GetCancelInformation::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IIOCancelInformation as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IIdentityName_Impl: Sized + IRelatedItem_Impl {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IIdentityName {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IIdentityName_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IIdentityName_Impl, const OFFSET: isize>() -> IIdentityName_Vtbl {
Self { base__: IRelatedItem_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IIdentityName as ::windows_core::ComInterface>::IID || iid == &<IRelatedItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com_StructuredStorage")]
pub trait IImageRecompress_Impl: Sized {
fn RecompressImage(&self, psi: ::core::option::Option<&IShellItem>, cx: i32, cy: i32, iquality: i32, pstg: ::core::option::Option<&super::super::System::Com::StructuredStorage::IStorage>) -> ::windows_core::Result<super::super::System::Com::IStream>;
}
#[cfg(feature = "Win32_System_Com_StructuredStorage")]
impl ::windows_core::RuntimeName for IImageRecompress {}
#[cfg(feature = "Win32_System_Com_StructuredStorage")]
impl IImageRecompress_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IImageRecompress_Impl, const OFFSET: isize>() -> IImageRecompress_Vtbl {
unsafe extern "system" fn RecompressImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IImageRecompress_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, cx: i32, cy: i32, iquality: i32, pstg: *mut ::core::ffi::c_void, ppstrmout: *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.RecompressImage(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&cx), ::core::mem::transmute_copy(&cy), ::core::mem::transmute_copy(&iquality), ::windows_core::from_raw_borrowed(&pstg)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppstrmout, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), RecompressImage: RecompressImage::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IImageRecompress as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com_StructuredStorage")]
pub trait IInitializeCommand_Impl: Sized {
fn Initialize(&self, pszcommandname: &::windows_core::PCWSTR, ppb: ::core::option::Option<&super::super::System::Com::StructuredStorage::IPropertyBag>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com_StructuredStorage")]
impl ::windows_core::RuntimeName for IInitializeCommand {}
#[cfg(feature = "Win32_System_Com_StructuredStorage")]
impl IInitializeCommand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeCommand_Impl, const OFFSET: isize>() -> IInitializeCommand_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszcommandname: ::windows_core::PCWSTR, ppb: *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.Initialize(::core::mem::transmute(&pszcommandname), ::windows_core::from_raw_borrowed(&ppb)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInitializeCommand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IInitializeNetworkFolder_Impl: Sized {
fn Initialize(&self, pidl: *const Common::ITEMIDLIST, pidltarget: *const Common::ITEMIDLIST, udisplaytype: u32, pszresname: &::windows_core::PCWSTR, pszprovider: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IInitializeNetworkFolder {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IInitializeNetworkFolder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeNetworkFolder_Impl, const OFFSET: isize>() -> IInitializeNetworkFolder_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeNetworkFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, pidltarget: *const Common::ITEMIDLIST, udisplaytype: u32, pszresname: ::windows_core::PCWSTR, pszprovider: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&pidltarget), ::core::mem::transmute_copy(&udisplaytype), ::core::mem::transmute(&pszresname), ::core::mem::transmute(&pszprovider)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInitializeNetworkFolder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IInitializeObject_Impl: Sized {
fn Initialize(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IInitializeObject {}
impl IInitializeObject_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeObject_Impl, const OFFSET: isize>() -> IInitializeObject_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeObject_Impl, const OFFSET: isize>(this: *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.Initialize().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInitializeObject as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IInitializeWithBindCtx_Impl: Sized {
fn Initialize(&self, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IInitializeWithBindCtx {}
#[cfg(feature = "Win32_System_Com")]
impl IInitializeWithBindCtx_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithBindCtx_Impl, const OFFSET: isize>() -> IInitializeWithBindCtx_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithBindCtx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbc: *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.Initialize(::windows_core::from_raw_borrowed(&pbc)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInitializeWithBindCtx as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IInitializeWithItem_Impl: Sized {
fn Initialize(&self, psi: ::core::option::Option<&IShellItem>, grfmode: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IInitializeWithItem {}
impl IInitializeWithItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithItem_Impl, const OFFSET: isize>() -> IInitializeWithItem_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, grfmode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&grfmode)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInitializeWithItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
pub trait IInitializeWithPropertyStore_Impl: Sized {
fn Initialize(&self, pps: ::core::option::Option<&PropertiesSystem::IPropertyStore>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl ::windows_core::RuntimeName for IInitializeWithPropertyStore {}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl IInitializeWithPropertyStore_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithPropertyStore_Impl, const OFFSET: isize>() -> IInitializeWithPropertyStore_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithPropertyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pps: *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.Initialize(::windows_core::from_raw_borrowed(&pps)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInitializeWithPropertyStore as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IInitializeWithWindow_Impl: Sized {
fn Initialize(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IInitializeWithWindow {}
#[cfg(feature = "Win32_Foundation")]
impl IInitializeWithWindow_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithWindow_Impl, const OFFSET: isize>() -> IInitializeWithWindow_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInitializeWithWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&hwnd)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInitializeWithWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IInputObject_Impl: Sized {
fn UIActivateIO(&self, factivate: super::super::Foundation::BOOL, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::Result<()>;
fn HasFocusIO(&self) -> ::windows_core::Result<()>;
fn TranslateAcceleratorIO(&self, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IInputObject {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl IInputObject_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputObject_Impl, const OFFSET: isize>() -> IInputObject_Vtbl {
unsafe extern "system" fn UIActivateIO<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, factivate: super::super::Foundation::BOOL, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UIActivateIO(::core::mem::transmute_copy(&factivate), ::core::mem::transmute_copy(&pmsg)).into()
}
unsafe extern "system" fn HasFocusIO<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputObject_Impl, const OFFSET: isize>(this: *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.HasFocusIO().into()
}
unsafe extern "system" fn TranslateAcceleratorIO<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TranslateAcceleratorIO(::core::mem::transmute_copy(&pmsg)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
UIActivateIO: UIActivateIO::<Identity, Impl, OFFSET>,
HasFocusIO: HasFocusIO::<Identity, Impl, OFFSET>,
TranslateAcceleratorIO: TranslateAcceleratorIO::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInputObject as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IInputObject2_Impl: Sized + IInputObject_Impl {
fn TranslateAcceleratorGlobal(&self, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IInputObject2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl IInputObject2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputObject2_Impl, const OFFSET: isize>() -> IInputObject2_Vtbl {
unsafe extern "system" fn TranslateAcceleratorGlobal<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputObject2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TranslateAcceleratorGlobal(::core::mem::transmute_copy(&pmsg)).into()
}
Self { base__: IInputObject_Vtbl::new::<Identity, Impl, OFFSET>(), TranslateAcceleratorGlobal: TranslateAcceleratorGlobal::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInputObject2 as ::windows_core::ComInterface>::IID || iid == &<IInputObject as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IInputObjectSite_Impl: Sized {
fn OnFocusChangeIS(&self, punkobj: ::core::option::Option<&::windows_core::IUnknown>, fsetfocus: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IInputObjectSite {}
#[cfg(feature = "Win32_Foundation")]
impl IInputObjectSite_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputObjectSite_Impl, const OFFSET: isize>() -> IInputObjectSite_Vtbl {
unsafe extern "system" fn OnFocusChangeIS<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputObjectSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkobj: *mut ::core::ffi::c_void, fsetfocus: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnFocusChangeIS(::windows_core::from_raw_borrowed(&punkobj), ::core::mem::transmute_copy(&fsetfocus)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), OnFocusChangeIS: OnFocusChangeIS::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInputObjectSite as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Graphics_DirectComposition\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_DirectComposition")]
pub trait IInputPaneAnimationCoordinator_Impl: Sized {
fn AddAnimation(&self, device: ::core::option::Option<&::windows_core::IUnknown>, animation: ::core::option::Option<&super::super::Graphics::DirectComposition::IDCompositionAnimation>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Graphics_DirectComposition")]
impl ::windows_core::RuntimeName for IInputPaneAnimationCoordinator {}
#[cfg(feature = "Win32_Graphics_DirectComposition")]
impl IInputPaneAnimationCoordinator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputPaneAnimationCoordinator_Impl, const OFFSET: isize>() -> IInputPaneAnimationCoordinator_Vtbl {
unsafe extern "system" fn AddAnimation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputPaneAnimationCoordinator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, device: *mut ::core::ffi::c_void, animation: *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.AddAnimation(::windows_core::from_raw_borrowed(&device), ::windows_core::from_raw_borrowed(&animation)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), AddAnimation: AddAnimation::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInputPaneAnimationCoordinator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IInputPanelConfiguration_Impl: Sized {
fn EnableFocusTracking(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IInputPanelConfiguration {}
impl IInputPanelConfiguration_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputPanelConfiguration_Impl, const OFFSET: isize>() -> IInputPanelConfiguration_Vtbl {
unsafe extern "system" fn EnableFocusTracking<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputPanelConfiguration_Impl, const OFFSET: isize>(this: *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.EnableFocusTracking().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), EnableFocusTracking: EnableFocusTracking::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInputPanelConfiguration as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IInputPanelInvocationConfiguration_Impl: Sized {
fn RequireTouchInEditControl(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IInputPanelInvocationConfiguration {}
impl IInputPanelInvocationConfiguration_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputPanelInvocationConfiguration_Impl, const OFFSET: isize>() -> IInputPanelInvocationConfiguration_Vtbl {
unsafe extern "system" fn RequireTouchInEditControl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInputPanelInvocationConfiguration_Impl, const OFFSET: isize>(this: *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.RequireTouchInEditControl().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), RequireTouchInEditControl: RequireTouchInEditControl::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInputPanelInvocationConfiguration as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IInsertItem_Impl: Sized {
fn InsertItem(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IInsertItem {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IInsertItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInsertItem_Impl, const OFFSET: isize>() -> IInsertItem_Vtbl {
unsafe extern "system" fn InsertItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IInsertItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InsertItem(::core::mem::transmute_copy(&pidl)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), InsertItem: InsertItem::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IInsertItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IItemNameLimits_Impl: Sized {
fn GetValidCharacters(&self, ppwszvalidchars: *mut ::windows_core::PWSTR, ppwszinvalidchars: *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
fn GetMaxLength(&self, pszname: &::windows_core::PCWSTR) -> ::windows_core::Result<i32>;
}
impl ::windows_core::RuntimeName for IItemNameLimits {}
impl IItemNameLimits_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IItemNameLimits_Impl, const OFFSET: isize>() -> IItemNameLimits_Vtbl {
unsafe extern "system" fn GetValidCharacters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IItemNameLimits_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppwszvalidchars: *mut ::windows_core::PWSTR, ppwszinvalidchars: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetValidCharacters(::core::mem::transmute_copy(&ppwszvalidchars), ::core::mem::transmute_copy(&ppwszinvalidchars)).into()
}
unsafe extern "system" fn GetMaxLength<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IItemNameLimits_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PCWSTR, pimaxnamelen: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMaxLength(::core::mem::transmute(&pszname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pimaxnamelen, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetValidCharacters: GetValidCharacters::<Identity, Impl, OFFSET>,
GetMaxLength: GetMaxLength::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IItemNameLimits as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IKnownFolder_Impl: Sized {
fn GetId(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn GetCategory(&self) -> ::windows_core::Result<KF_CATEGORY>;
fn GetShellItem(&self, dwflags: u32, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetPath(&self, dwflags: u32) -> ::windows_core::Result<::windows_core::PWSTR>;
fn SetPath(&self, dwflags: u32, pszpath: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetIDList(&self, dwflags: u32) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
fn GetFolderType(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn GetRedirectionCapabilities(&self) -> ::windows_core::Result<u32>;
fn GetFolderDefinition(&self, pkfd: *mut KNOWNFOLDER_DEFINITION) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IKnownFolder {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IKnownFolder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolder_Impl, const OFFSET: isize>() -> IKnownFolder_Vtbl {
unsafe extern "system" fn GetId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pkfid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pkfid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCategory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcategory: *mut KF_CATEGORY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCategory() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcategory, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetShellItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, riid: *const ::windows_core::GUID, ppv: *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();
this.GetShellItem(::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppszpath: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPath(::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszpath, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, pszpath: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPath(::core::mem::transmute_copy(&dwflags), ::core::mem::transmute(&pszpath)).into()
}
unsafe extern "system" fn GetIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppidl: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIDList(::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFolderType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pftid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFolderType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pftid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRedirectionCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcapabilities: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRedirectionCapabilities() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcapabilities, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFolderDefinition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pkfd: *mut KNOWNFOLDER_DEFINITION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFolderDefinition(::core::mem::transmute_copy(&pkfd)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetId: GetId::<Identity, Impl, OFFSET>,
GetCategory: GetCategory::<Identity, Impl, OFFSET>,
GetShellItem: GetShellItem::<Identity, Impl, OFFSET>,
GetPath: GetPath::<Identity, Impl, OFFSET>,
SetPath: SetPath::<Identity, Impl, OFFSET>,
GetIDList: GetIDList::<Identity, Impl, OFFSET>,
GetFolderType: GetFolderType::<Identity, Impl, OFFSET>,
GetRedirectionCapabilities: GetRedirectionCapabilities::<Identity, Impl, OFFSET>,
GetFolderDefinition: GetFolderDefinition::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IKnownFolder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
pub trait IKnownFolderManager_Impl: Sized {
fn FolderIdFromCsidl(&self, ncsidl: i32) -> ::windows_core::Result<::windows_core::GUID>;
fn FolderIdToCsidl(&self, rfid: *const ::windows_core::GUID) -> ::windows_core::Result<i32>;
fn GetFolderIds(&self, ppkfid: *mut *mut ::windows_core::GUID, pcount: *mut u32) -> ::windows_core::Result<()>;
fn GetFolder(&self, rfid: *const ::windows_core::GUID) -> ::windows_core::Result<IKnownFolder>;
fn GetFolderByName(&self, pszcanonicalname: &::windows_core::PCWSTR) -> ::windows_core::Result<IKnownFolder>;
fn RegisterFolder(&self, rfid: *const ::windows_core::GUID, pkfd: *const KNOWNFOLDER_DEFINITION) -> ::windows_core::Result<()>;
fn UnregisterFolder(&self, rfid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn FindFolderFromPath(&self, pszpath: &::windows_core::PCWSTR, mode: FFFP_MODE) -> ::windows_core::Result<IKnownFolder>;
fn FindFolderFromIDList(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<IKnownFolder>;
fn Redirect(&self, rfid: *const ::windows_core::GUID, hwnd: super::super::Foundation::HWND, flags: u32, psztargetpath: &::windows_core::PCWSTR, cfolders: u32, pexclusion: *const ::windows_core::GUID, ppszerror: *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IKnownFolderManager {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl IKnownFolderManager_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>() -> IKnownFolderManager_Vtbl {
unsafe extern "system" fn FolderIdFromCsidl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ncsidl: i32, pfid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FolderIdFromCsidl(::core::mem::transmute_copy(&ncsidl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FolderIdToCsidl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rfid: *const ::windows_core::GUID, pncsidl: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FolderIdToCsidl(::core::mem::transmute_copy(&rfid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pncsidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFolderIds<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppkfid: *mut *mut ::windows_core::GUID, pcount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFolderIds(::core::mem::transmute_copy(&ppkfid), ::core::mem::transmute_copy(&pcount)).into()
}
unsafe extern "system" fn GetFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rfid: *const ::windows_core::GUID, ppkf: *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.GetFolder(::core::mem::transmute_copy(&rfid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppkf, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFolderByName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszcanonicalname: ::windows_core::PCWSTR, ppkf: *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.GetFolderByName(::core::mem::transmute(&pszcanonicalname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppkf, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RegisterFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rfid: *const ::windows_core::GUID, pkfd: *const KNOWNFOLDER_DEFINITION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterFolder(::core::mem::transmute_copy(&rfid), ::core::mem::transmute_copy(&pkfd)).into()
}
unsafe extern "system" fn UnregisterFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rfid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterFolder(::core::mem::transmute_copy(&rfid)).into()
}
unsafe extern "system" fn FindFolderFromPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpath: ::windows_core::PCWSTR, mode: FFFP_MODE, ppkf: *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.FindFolderFromPath(::core::mem::transmute(&pszpath), ::core::mem::transmute_copy(&mode)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppkf, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindFolderFromIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, ppkf: *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.FindFolderFromIDList(::core::mem::transmute_copy(&pidl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppkf, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Redirect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IKnownFolderManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rfid: *const ::windows_core::GUID, hwnd: super::super::Foundation::HWND, flags: u32, psztargetpath: ::windows_core::PCWSTR, cfolders: u32, pexclusion: *const ::windows_core::GUID, ppszerror: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Redirect(::core::mem::transmute_copy(&rfid), ::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&psztargetpath), ::core::mem::transmute_copy(&cfolders), ::core::mem::transmute_copy(&pexclusion), ::core::mem::transmute_copy(&ppszerror)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FolderIdFromCsidl: FolderIdFromCsidl::<Identity, Impl, OFFSET>,
FolderIdToCsidl: FolderIdToCsidl::<Identity, Impl, OFFSET>,
GetFolderIds: GetFolderIds::<Identity, Impl, OFFSET>,
GetFolder: GetFolder::<Identity, Impl, OFFSET>,
GetFolderByName: GetFolderByName::<Identity, Impl, OFFSET>,
RegisterFolder: RegisterFolder::<Identity, Impl, OFFSET>,
UnregisterFolder: UnregisterFolder::<Identity, Impl, OFFSET>,
FindFolderFromPath: FindFolderFromPath::<Identity, Impl, OFFSET>,
FindFolderFromIDList: FindFolderFromIDList::<Identity, Impl, OFFSET>,
Redirect: Redirect::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IKnownFolderManager as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ILaunchSourceAppUserModelId_Impl: Sized {
fn GetAppUserModelId(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
impl ::windows_core::RuntimeName for ILaunchSourceAppUserModelId {}
impl ILaunchSourceAppUserModelId_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchSourceAppUserModelId_Impl, const OFFSET: isize>() -> ILaunchSourceAppUserModelId_Vtbl {
unsafe extern "system" fn GetAppUserModelId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchSourceAppUserModelId_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, launchingapp: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAppUserModelId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(launchingapp, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetAppUserModelId: GetAppUserModelId::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ILaunchSourceAppUserModelId as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ILaunchSourceViewSizePreference_Impl: Sized {
fn GetSourceViewToPosition(&self) -> ::windows_core::Result<super::super::Foundation::HWND>;
fn GetSourceViewSizePreference(&self) -> ::windows_core::Result<APPLICATION_VIEW_SIZE_PREFERENCE>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ILaunchSourceViewSizePreference {}
#[cfg(feature = "Win32_Foundation")]
impl ILaunchSourceViewSizePreference_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchSourceViewSizePreference_Impl, const OFFSET: isize>() -> ILaunchSourceViewSizePreference_Vtbl {
unsafe extern "system" fn GetSourceViewToPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchSourceViewSizePreference_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSourceViewToPosition() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(hwnd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceViewSizePreference<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchSourceViewSizePreference_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sourcesizeafterlaunch: *mut APPLICATION_VIEW_SIZE_PREFERENCE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSourceViewSizePreference() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sourcesizeafterlaunch, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSourceViewToPosition: GetSourceViewToPosition::<Identity, Impl, OFFSET>,
GetSourceViewSizePreference: GetSourceViewSizePreference::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ILaunchSourceViewSizePreference as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
pub trait ILaunchTargetMonitor_Impl: Sized {
fn GetMonitor(&self) -> ::windows_core::Result<super::super::Graphics::Gdi::HMONITOR>;
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::windows_core::RuntimeName for ILaunchTargetMonitor {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ILaunchTargetMonitor_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchTargetMonitor_Impl, const OFFSET: isize>() -> ILaunchTargetMonitor_Vtbl {
unsafe extern "system" fn GetMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchTargetMonitor_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, monitor: *mut super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMonitor() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(monitor, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetMonitor: GetMonitor::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ILaunchTargetMonitor as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ILaunchTargetViewSizePreference_Impl: Sized {
fn GetTargetViewSizePreference(&self) -> ::windows_core::Result<APPLICATION_VIEW_SIZE_PREFERENCE>;
}
impl ::windows_core::RuntimeName for ILaunchTargetViewSizePreference {}
impl ILaunchTargetViewSizePreference_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchTargetViewSizePreference_Impl, const OFFSET: isize>() -> ILaunchTargetViewSizePreference_Vtbl {
unsafe extern "system" fn GetTargetViewSizePreference<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchTargetViewSizePreference_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, targetsizeonlaunch: *mut APPLICATION_VIEW_SIZE_PREFERENCE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTargetViewSizePreference() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(targetsizeonlaunch, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTargetViewSizePreference: GetTargetViewSizePreference::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ILaunchTargetViewSizePreference as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ILaunchUIContext_Impl: Sized {
fn SetAssociatedWindow(&self, value: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn SetTabGroupingPreference(&self, value: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ILaunchUIContext {}
#[cfg(feature = "Win32_Foundation")]
impl ILaunchUIContext_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchUIContext_Impl, const OFFSET: isize>() -> ILaunchUIContext_Vtbl {
unsafe extern "system" fn SetAssociatedWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchUIContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAssociatedWindow(::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn SetTabGroupingPreference<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchUIContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTabGroupingPreference(::core::mem::transmute_copy(&value)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAssociatedWindow: SetAssociatedWindow::<Identity, Impl, OFFSET>,
SetTabGroupingPreference: SetTabGroupingPreference::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ILaunchUIContext as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ILaunchUIContextProvider_Impl: Sized {
fn UpdateContext(&self, context: ::core::option::Option<&ILaunchUIContext>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ILaunchUIContextProvider {}
impl ILaunchUIContextProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchUIContextProvider_Impl, const OFFSET: isize>() -> ILaunchUIContextProvider_Vtbl {
unsafe extern "system" fn UpdateContext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ILaunchUIContextProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *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.UpdateContext(::windows_core::from_raw_borrowed(&context)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), UpdateContext: UpdateContext::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ILaunchUIContextProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IMenuBand_Impl: Sized {
fn IsMenuMessage(&self, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::Result<()>;
fn TranslateMenuMessage(&self, pmsg: *mut super::WindowsAndMessaging::MSG, plret: *mut super::super::Foundation::LRESULT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IMenuBand {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl IMenuBand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMenuBand_Impl, const OFFSET: isize>() -> IMenuBand_Vtbl {
unsafe extern "system" fn IsMenuMessage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMenuBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsMenuMessage(::core::mem::transmute_copy(&pmsg)).into()
}
unsafe extern "system" fn TranslateMenuMessage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMenuBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *mut super::WindowsAndMessaging::MSG, plret: *mut super::super::Foundation::LRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TranslateMenuMessage(::core::mem::transmute_copy(&pmsg), ::core::mem::transmute_copy(&plret)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsMenuMessage: IsMenuMessage::<Identity, Impl, OFFSET>,
TranslateMenuMessage: TranslateMenuMessage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMenuBand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
pub trait IMenuPopup_Impl: Sized + IDeskBar_Impl {
fn Popup(&self, ppt: *const super::super::Foundation::POINTL, prcexclude: *const super::super::Foundation::RECTL, dwflags: i32) -> ::windows_core::Result<()>;
fn OnSelect(&self, dwselecttype: u32) -> ::windows_core::Result<()>;
fn SetSubMenu(&self, pmp: ::core::option::Option<&IMenuPopup>, fset: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl ::windows_core::RuntimeName for IMenuPopup {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
impl IMenuPopup_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMenuPopup_Impl, const OFFSET: isize>() -> IMenuPopup_Vtbl {
unsafe extern "system" fn Popup<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMenuPopup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppt: *const super::super::Foundation::POINTL, prcexclude: *const super::super::Foundation::RECTL, dwflags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Popup(::core::mem::transmute_copy(&ppt), ::core::mem::transmute_copy(&prcexclude), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn OnSelect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMenuPopup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwselecttype: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnSelect(::core::mem::transmute_copy(&dwselecttype)).into()
}
unsafe extern "system" fn SetSubMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMenuPopup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmp: *mut ::core::ffi::c_void, fset: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSubMenu(::windows_core::from_raw_borrowed(&pmp), ::core::mem::transmute_copy(&fset)).into()
}
Self {
base__: IDeskBar_Vtbl::new::<Identity, Impl, OFFSET>(),
Popup: Popup::<Identity, Impl, OFFSET>,
OnSelect: OnSelect::<Identity, Impl, OFFSET>,
SetSubMenu: SetSubMenu::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMenuPopup as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID || iid == &<IDeskBar as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IModalWindow_Impl: Sized {
fn Show(&self, hwndowner: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IModalWindow {}
#[cfg(feature = "Win32_Foundation")]
impl IModalWindow_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IModalWindow_Impl, const OFFSET: isize>() -> IModalWindow_Vtbl {
unsafe extern "system" fn Show<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IModalWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndowner: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Show(::core::mem::transmute_copy(&hwndowner)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Show: Show::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IModalWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait INameSpaceTreeAccessible_Impl: Sized {
fn OnGetDefaultAccessibilityAction(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<::windows_core::BSTR>;
fn OnDoDefaultAccessibilityAction(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn OnGetAccessibilityRole(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for INameSpaceTreeAccessible {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl INameSpaceTreeAccessible_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeAccessible_Impl, const OFFSET: isize>() -> INameSpaceTreeAccessible_Vtbl {
unsafe extern "system" fn OnGetDefaultAccessibilityAction<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeAccessible_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, pbstrdefaultaction: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OnGetDefaultAccessibilityAction(::windows_core::from_raw_borrowed(&psi)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrdefaultaction, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OnDoDefaultAccessibilityAction<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeAccessible_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.OnDoDefaultAccessibilityAction(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn OnGetAccessibilityRole<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeAccessible_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, pvarrole: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OnGetAccessibilityRole(::windows_core::from_raw_borrowed(&psi)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvarrole, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnGetDefaultAccessibilityAction: OnGetDefaultAccessibilityAction::<Identity, Impl, OFFSET>,
OnDoDefaultAccessibilityAction: OnDoDefaultAccessibilityAction::<Identity, Impl, OFFSET>,
OnGetAccessibilityRole: OnGetAccessibilityRole::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INameSpaceTreeAccessible as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait INameSpaceTreeControl_Impl: Sized {
fn Initialize(&self, hwndparent: super::super::Foundation::HWND, prc: *const super::super::Foundation::RECT, nsctsflags: u32) -> ::windows_core::Result<()>;
fn TreeAdvise(&self, punk: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<u32>;
fn TreeUnadvise(&self, dwcookie: u32) -> ::windows_core::Result<()>;
fn AppendRoot(&self, psiroot: ::core::option::Option<&IShellItem>, grfenumflags: u32, grfrootstyle: u32, pif: ::core::option::Option<&IShellItemFilter>) -> ::windows_core::Result<()>;
fn InsertRoot(&self, iindex: i32, psiroot: ::core::option::Option<&IShellItem>, grfenumflags: u32, grfrootstyle: u32, pif: ::core::option::Option<&IShellItemFilter>) -> ::windows_core::Result<()>;
fn RemoveRoot(&self, psiroot: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn RemoveAllRoots(&self) -> ::windows_core::Result<()>;
fn GetRootItems(&self) -> ::windows_core::Result<IShellItemArray>;
fn SetItemState(&self, psi: ::core::option::Option<&IShellItem>, nstcismask: u32, nstcisflags: u32) -> ::windows_core::Result<()>;
fn GetItemState(&self, psi: ::core::option::Option<&IShellItem>, nstcismask: u32) -> ::windows_core::Result<u32>;
fn GetSelectedItems(&self) -> ::windows_core::Result<IShellItemArray>;
fn GetItemCustomState(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<i32>;
fn SetItemCustomState(&self, psi: ::core::option::Option<&IShellItem>, istatenumber: i32) -> ::windows_core::Result<()>;
fn EnsureItemVisible(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn SetTheme(&self, psztheme: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetNextItem(&self, psi: ::core::option::Option<&IShellItem>, nstcgi: NSTCGNI) -> ::windows_core::Result<IShellItem>;
fn HitTest(&self, ppt: *const super::super::Foundation::POINT) -> ::windows_core::Result<IShellItem>;
fn GetItemRect(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<super::super::Foundation::RECT>;
fn CollapseAll(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for INameSpaceTreeControl {}
#[cfg(feature = "Win32_Foundation")]
impl INameSpaceTreeControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>() -> INameSpaceTreeControl_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndparent: super::super::Foundation::HWND, prc: *const super::super::Foundation::RECT, nsctsflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&hwndparent), ::core::mem::transmute_copy(&prc), ::core::mem::transmute_copy(&nsctsflags)).into()
}
unsafe extern "system" fn TreeAdvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.TreeAdvise(::windows_core::from_raw_borrowed(&punk)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TreeUnadvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TreeUnadvise(::core::mem::transmute_copy(&dwcookie)).into()
}
unsafe extern "system" fn AppendRoot<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiroot: *mut ::core::ffi::c_void, grfenumflags: u32, grfrootstyle: u32, pif: *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.AppendRoot(::windows_core::from_raw_borrowed(&psiroot), ::core::mem::transmute_copy(&grfenumflags), ::core::mem::transmute_copy(&grfrootstyle), ::windows_core::from_raw_borrowed(&pif)).into()
}
unsafe extern "system" fn InsertRoot<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iindex: i32, psiroot: *mut ::core::ffi::c_void, grfenumflags: u32, grfrootstyle: u32, pif: *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.InsertRoot(::core::mem::transmute_copy(&iindex), ::windows_core::from_raw_borrowed(&psiroot), ::core::mem::transmute_copy(&grfenumflags), ::core::mem::transmute_copy(&grfrootstyle), ::windows_core::from_raw_borrowed(&pif)).into()
}
unsafe extern "system" fn RemoveRoot<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiroot: *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.RemoveRoot(::windows_core::from_raw_borrowed(&psiroot)).into()
}
unsafe extern "system" fn RemoveAllRoots<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *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.RemoveAllRoots().into()
}
unsafe extern "system" fn GetRootItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsiarootitems: *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.GetRootItems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsiarootitems, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetItemState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, nstcismask: u32, nstcisflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetItemState(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&nstcismask), ::core::mem::transmute_copy(&nstcisflags)).into()
}
unsafe extern "system" fn GetItemState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, nstcismask: u32, pnstcisflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemState(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&nstcismask)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pnstcisflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSelectedItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiaitems: *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.GetSelectedItems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psiaitems, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItemCustomState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, pistatenumber: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemCustomState(::windows_core::from_raw_borrowed(&psi)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pistatenumber, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetItemCustomState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, istatenumber: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetItemCustomState(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&istatenumber)).into()
}
unsafe extern "system" fn EnsureItemVisible<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.EnsureItemVisible(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn SetTheme<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psztheme: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTheme(::core::mem::transmute(&psztheme)).into()
}
unsafe extern "system" fn GetNextItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, nstcgi: NSTCGNI, ppsinext: *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.GetNextItem(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&nstcgi)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsinext, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn HitTest<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppt: *const super::super::Foundation::POINT, ppsiout: *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.HitTest(::core::mem::transmute_copy(&ppt)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsiout, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItemRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, prect: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemRect(::windows_core::from_raw_borrowed(&psi)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prect, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CollapseAll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl_Impl, const OFFSET: isize>(this: *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.CollapseAll().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
TreeAdvise: TreeAdvise::<Identity, Impl, OFFSET>,
TreeUnadvise: TreeUnadvise::<Identity, Impl, OFFSET>,
AppendRoot: AppendRoot::<Identity, Impl, OFFSET>,
InsertRoot: InsertRoot::<Identity, Impl, OFFSET>,
RemoveRoot: RemoveRoot::<Identity, Impl, OFFSET>,
RemoveAllRoots: RemoveAllRoots::<Identity, Impl, OFFSET>,
GetRootItems: GetRootItems::<Identity, Impl, OFFSET>,
SetItemState: SetItemState::<Identity, Impl, OFFSET>,
GetItemState: GetItemState::<Identity, Impl, OFFSET>,
GetSelectedItems: GetSelectedItems::<Identity, Impl, OFFSET>,
GetItemCustomState: GetItemCustomState::<Identity, Impl, OFFSET>,
SetItemCustomState: SetItemCustomState::<Identity, Impl, OFFSET>,
EnsureItemVisible: EnsureItemVisible::<Identity, Impl, OFFSET>,
SetTheme: SetTheme::<Identity, Impl, OFFSET>,
GetNextItem: GetNextItem::<Identity, Impl, OFFSET>,
HitTest: HitTest::<Identity, Impl, OFFSET>,
GetItemRect: GetItemRect::<Identity, Impl, OFFSET>,
CollapseAll: CollapseAll::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INameSpaceTreeControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait INameSpaceTreeControl2_Impl: Sized + INameSpaceTreeControl_Impl {
fn SetControlStyle(&self, nstcsmask: u32, nstcsstyle: u32) -> ::windows_core::Result<()>;
fn GetControlStyle(&self, nstcsmask: u32) -> ::windows_core::Result<u32>;
fn SetControlStyle2(&self, nstcsmask: NSTCSTYLE2, nstcsstyle: NSTCSTYLE2) -> ::windows_core::Result<()>;
fn GetControlStyle2(&self, nstcsmask: NSTCSTYLE2) -> ::windows_core::Result<NSTCSTYLE2>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for INameSpaceTreeControl2 {}
#[cfg(feature = "Win32_Foundation")]
impl INameSpaceTreeControl2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl2_Impl, const OFFSET: isize>() -> INameSpaceTreeControl2_Vtbl {
unsafe extern "system" fn SetControlStyle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nstcsmask: u32, nstcsstyle: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetControlStyle(::core::mem::transmute_copy(&nstcsmask), ::core::mem::transmute_copy(&nstcsstyle)).into()
}
unsafe extern "system" fn GetControlStyle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nstcsmask: u32, pnstcsstyle: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetControlStyle(::core::mem::transmute_copy(&nstcsmask)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pnstcsstyle, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetControlStyle2<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nstcsmask: NSTCSTYLE2, nstcsstyle: NSTCSTYLE2) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetControlStyle2(::core::mem::transmute_copy(&nstcsmask), ::core::mem::transmute_copy(&nstcsstyle)).into()
}
unsafe extern "system" fn GetControlStyle2<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nstcsmask: NSTCSTYLE2, pnstcsstyle: *mut NSTCSTYLE2) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetControlStyle2(::core::mem::transmute_copy(&nstcsmask)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pnstcsstyle, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: INameSpaceTreeControl_Vtbl::new::<Identity, Impl, OFFSET>(),
SetControlStyle: SetControlStyle::<Identity, Impl, OFFSET>,
GetControlStyle: GetControlStyle::<Identity, Impl, OFFSET>,
SetControlStyle2: SetControlStyle2::<Identity, Impl, OFFSET>,
GetControlStyle2: GetControlStyle2::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INameSpaceTreeControl2 as ::windows_core::ComInterface>::IID || iid == &<INameSpaceTreeControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls"))]
pub trait INameSpaceTreeControlCustomDraw_Impl: Sized {
fn PrePaint(&self, hdc: super::super::Graphics::Gdi::HDC, prc: *const super::super::Foundation::RECT) -> ::windows_core::Result<super::super::Foundation::LRESULT>;
fn PostPaint(&self, hdc: super::super::Graphics::Gdi::HDC, prc: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn ItemPrePaint(&self, hdc: super::super::Graphics::Gdi::HDC, prc: *const super::super::Foundation::RECT, pnstccditem: *const NSTCCUSTOMDRAW, pclrtext: *mut super::super::Foundation::COLORREF, pclrtextbk: *mut super::super::Foundation::COLORREF, plres: *mut super::super::Foundation::LRESULT) -> ::windows_core::Result<()>;
fn ItemPostPaint(&self, hdc: super::super::Graphics::Gdi::HDC, prc: *const super::super::Foundation::RECT, pnstccditem: *const NSTCCUSTOMDRAW) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls"))]
impl ::windows_core::RuntimeName for INameSpaceTreeControlCustomDraw {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls"))]
impl INameSpaceTreeControlCustomDraw_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlCustomDraw_Impl, const OFFSET: isize>() -> INameSpaceTreeControlCustomDraw_Vtbl {
unsafe extern "system" fn PrePaint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlCustomDraw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hdc: super::super::Graphics::Gdi::HDC, prc: *const super::super::Foundation::RECT, plres: *mut super::super::Foundation::LRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PrePaint(::core::mem::transmute_copy(&hdc), ::core::mem::transmute_copy(&prc)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plres, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PostPaint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlCustomDraw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hdc: super::super::Graphics::Gdi::HDC, prc: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PostPaint(::core::mem::transmute_copy(&hdc), ::core::mem::transmute_copy(&prc)).into()
}
unsafe extern "system" fn ItemPrePaint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlCustomDraw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hdc: super::super::Graphics::Gdi::HDC, prc: *const super::super::Foundation::RECT, pnstccditem: *const NSTCCUSTOMDRAW, pclrtext: *mut super::super::Foundation::COLORREF, pclrtextbk: *mut super::super::Foundation::COLORREF, plres: *mut super::super::Foundation::LRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ItemPrePaint(::core::mem::transmute_copy(&hdc), ::core::mem::transmute_copy(&prc), ::core::mem::transmute_copy(&pnstccditem), ::core::mem::transmute_copy(&pclrtext), ::core::mem::transmute_copy(&pclrtextbk), ::core::mem::transmute_copy(&plres)).into()
}
unsafe extern "system" fn ItemPostPaint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlCustomDraw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hdc: super::super::Graphics::Gdi::HDC, prc: *const super::super::Foundation::RECT, pnstccditem: *const NSTCCUSTOMDRAW) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ItemPostPaint(::core::mem::transmute_copy(&hdc), ::core::mem::transmute_copy(&prc), ::core::mem::transmute_copy(&pnstccditem)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
PrePaint: PrePaint::<Identity, Impl, OFFSET>,
PostPaint: PostPaint::<Identity, Impl, OFFSET>,
ItemPrePaint: ItemPrePaint::<Identity, Impl, OFFSET>,
ItemPostPaint: ItemPostPaint::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INameSpaceTreeControlCustomDraw as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait INameSpaceTreeControlDropHandler_Impl: Sized {
fn OnDragEnter(&self, psiover: ::core::option::Option<&IShellItem>, psiadata: ::core::option::Option<&IShellItemArray>, foutsidesource: super::super::Foundation::BOOL, grfkeystate: u32, pdweffect: *mut u32) -> ::windows_core::Result<()>;
fn OnDragOver(&self, psiover: ::core::option::Option<&IShellItem>, psiadata: ::core::option::Option<&IShellItemArray>, grfkeystate: u32, pdweffect: *mut u32) -> ::windows_core::Result<()>;
fn OnDragPosition(&self, psiover: ::core::option::Option<&IShellItem>, psiadata: ::core::option::Option<&IShellItemArray>, inewposition: i32, ioldposition: i32) -> ::windows_core::Result<()>;
fn OnDrop(&self, psiover: ::core::option::Option<&IShellItem>, psiadata: ::core::option::Option<&IShellItemArray>, iposition: i32, grfkeystate: u32, pdweffect: *mut u32) -> ::windows_core::Result<()>;
fn OnDropPosition(&self, psiover: ::core::option::Option<&IShellItem>, psiadata: ::core::option::Option<&IShellItemArray>, inewposition: i32, ioldposition: i32) -> ::windows_core::Result<()>;
fn OnDragLeave(&self, psiover: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for INameSpaceTreeControlDropHandler {}
#[cfg(feature = "Win32_Foundation")]
impl INameSpaceTreeControlDropHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlDropHandler_Impl, const OFFSET: isize>() -> INameSpaceTreeControlDropHandler_Vtbl {
unsafe extern "system" fn OnDragEnter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlDropHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiover: *mut ::core::ffi::c_void, psiadata: *mut ::core::ffi::c_void, foutsidesource: super::super::Foundation::BOOL, grfkeystate: u32, pdweffect: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnDragEnter(::windows_core::from_raw_borrowed(&psiover), ::windows_core::from_raw_borrowed(&psiadata), ::core::mem::transmute_copy(&foutsidesource), ::core::mem::transmute_copy(&grfkeystate), ::core::mem::transmute_copy(&pdweffect)).into()
}
unsafe extern "system" fn OnDragOver<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlDropHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiover: *mut ::core::ffi::c_void, psiadata: *mut ::core::ffi::c_void, grfkeystate: u32, pdweffect: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnDragOver(::windows_core::from_raw_borrowed(&psiover), ::windows_core::from_raw_borrowed(&psiadata), ::core::mem::transmute_copy(&grfkeystate), ::core::mem::transmute_copy(&pdweffect)).into()
}
unsafe extern "system" fn OnDragPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlDropHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiover: *mut ::core::ffi::c_void, psiadata: *mut ::core::ffi::c_void, inewposition: i32, ioldposition: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnDragPosition(::windows_core::from_raw_borrowed(&psiover), ::windows_core::from_raw_borrowed(&psiadata), ::core::mem::transmute_copy(&inewposition), ::core::mem::transmute_copy(&ioldposition)).into()
}
unsafe extern "system" fn OnDrop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlDropHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiover: *mut ::core::ffi::c_void, psiadata: *mut ::core::ffi::c_void, iposition: i32, grfkeystate: u32, pdweffect: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnDrop(::windows_core::from_raw_borrowed(&psiover), ::windows_core::from_raw_borrowed(&psiadata), ::core::mem::transmute_copy(&iposition), ::core::mem::transmute_copy(&grfkeystate), ::core::mem::transmute_copy(&pdweffect)).into()
}
unsafe extern "system" fn OnDropPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlDropHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiover: *mut ::core::ffi::c_void, psiadata: *mut ::core::ffi::c_void, inewposition: i32, ioldposition: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnDropPosition(::windows_core::from_raw_borrowed(&psiover), ::windows_core::from_raw_borrowed(&psiadata), ::core::mem::transmute_copy(&inewposition), ::core::mem::transmute_copy(&ioldposition)).into()
}
unsafe extern "system" fn OnDragLeave<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlDropHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiover: *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.OnDragLeave(::windows_core::from_raw_borrowed(&psiover)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnDragEnter: OnDragEnter::<Identity, Impl, OFFSET>,
OnDragOver: OnDragOver::<Identity, Impl, OFFSET>,
OnDragPosition: OnDragPosition::<Identity, Impl, OFFSET>,
OnDrop: OnDrop::<Identity, Impl, OFFSET>,
OnDropPosition: OnDropPosition::<Identity, Impl, OFFSET>,
OnDragLeave: OnDragLeave::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INameSpaceTreeControlDropHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait INameSpaceTreeControlEvents_Impl: Sized {
fn OnItemClick(&self, psi: ::core::option::Option<&IShellItem>, nstcehittest: u32, nstceclicktype: u32) -> ::windows_core::Result<()>;
fn OnPropertyItemCommit(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn OnItemStateChanging(&self, psi: ::core::option::Option<&IShellItem>, nstcismask: u32, nstcisstate: u32) -> ::windows_core::Result<()>;
fn OnItemStateChanged(&self, psi: ::core::option::Option<&IShellItem>, nstcismask: u32, nstcisstate: u32) -> ::windows_core::Result<()>;
fn OnSelectionChanged(&self, psiaselection: ::core::option::Option<&IShellItemArray>) -> ::windows_core::Result<()>;
fn OnKeyboardInput(&self, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::Result<()>;
fn OnBeforeExpand(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn OnAfterExpand(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn OnBeginLabelEdit(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn OnEndLabelEdit(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn OnGetToolTip(&self, psi: ::core::option::Option<&IShellItem>, psztip: ::windows_core::PWSTR, cchtip: i32) -> ::windows_core::Result<()>;
fn OnBeforeItemDelete(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn OnItemAdded(&self, psi: ::core::option::Option<&IShellItem>, fisroot: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn OnItemDeleted(&self, psi: ::core::option::Option<&IShellItem>, fisroot: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn OnBeforeContextMenu(&self, psi: ::core::option::Option<&IShellItem>, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn OnAfterContextMenu(&self, psi: ::core::option::Option<&IShellItem>, pcmin: ::core::option::Option<&IContextMenu>, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn OnBeforeStateImageChange(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn OnGetDefaultIconIndex(&self, psi: ::core::option::Option<&IShellItem>, pidefaulticon: *mut i32, piopenicon: *mut i32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for INameSpaceTreeControlEvents {}
#[cfg(feature = "Win32_Foundation")]
impl INameSpaceTreeControlEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>() -> INameSpaceTreeControlEvents_Vtbl {
unsafe extern "system" fn OnItemClick<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, nstcehittest: u32, nstceclicktype: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnItemClick(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&nstcehittest), ::core::mem::transmute_copy(&nstceclicktype)).into()
}
unsafe extern "system" fn OnPropertyItemCommit<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.OnPropertyItemCommit(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn OnItemStateChanging<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, nstcismask: u32, nstcisstate: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnItemStateChanging(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&nstcismask), ::core::mem::transmute_copy(&nstcisstate)).into()
}
unsafe extern "system" fn OnItemStateChanged<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, nstcismask: u32, nstcisstate: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnItemStateChanged(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&nstcismask), ::core::mem::transmute_copy(&nstcisstate)).into()
}
unsafe extern "system" fn OnSelectionChanged<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiaselection: *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.OnSelectionChanged(::windows_core::from_raw_borrowed(&psiaselection)).into()
}
unsafe extern "system" fn OnKeyboardInput<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnKeyboardInput(::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam)).into()
}
unsafe extern "system" fn OnBeforeExpand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.OnBeforeExpand(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn OnAfterExpand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.OnAfterExpand(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn OnBeginLabelEdit<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.OnBeginLabelEdit(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn OnEndLabelEdit<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.OnEndLabelEdit(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn OnGetToolTip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, psztip: ::windows_core::PWSTR, cchtip: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnGetToolTip(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&psztip), ::core::mem::transmute_copy(&cchtip)).into()
}
unsafe extern "system" fn OnBeforeItemDelete<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.OnBeforeItemDelete(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn OnItemAdded<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, fisroot: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnItemAdded(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&fisroot)).into()
}
unsafe extern "system" fn OnItemDeleted<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, fisroot: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnItemDeleted(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&fisroot)).into()
}
unsafe extern "system" fn OnBeforeContextMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.OnBeforeContextMenu(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn OnAfterContextMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, pcmin: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.OnAfterContextMenu(::windows_core::from_raw_borrowed(&psi), ::windows_core::from_raw_borrowed(&pcmin), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn OnBeforeStateImageChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.OnBeforeStateImageChange(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn OnGetDefaultIconIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, pidefaulticon: *mut i32, piopenicon: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnGetDefaultIconIndex(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&pidefaulticon), ::core::mem::transmute_copy(&piopenicon)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnItemClick: OnItemClick::<Identity, Impl, OFFSET>,
OnPropertyItemCommit: OnPropertyItemCommit::<Identity, Impl, OFFSET>,
OnItemStateChanging: OnItemStateChanging::<Identity, Impl, OFFSET>,
OnItemStateChanged: OnItemStateChanged::<Identity, Impl, OFFSET>,
OnSelectionChanged: OnSelectionChanged::<Identity, Impl, OFFSET>,
OnKeyboardInput: OnKeyboardInput::<Identity, Impl, OFFSET>,
OnBeforeExpand: OnBeforeExpand::<Identity, Impl, OFFSET>,
OnAfterExpand: OnAfterExpand::<Identity, Impl, OFFSET>,
OnBeginLabelEdit: OnBeginLabelEdit::<Identity, Impl, OFFSET>,
OnEndLabelEdit: OnEndLabelEdit::<Identity, Impl, OFFSET>,
OnGetToolTip: OnGetToolTip::<Identity, Impl, OFFSET>,
OnBeforeItemDelete: OnBeforeItemDelete::<Identity, Impl, OFFSET>,
OnItemAdded: OnItemAdded::<Identity, Impl, OFFSET>,
OnItemDeleted: OnItemDeleted::<Identity, Impl, OFFSET>,
OnBeforeContextMenu: OnBeforeContextMenu::<Identity, Impl, OFFSET>,
OnAfterContextMenu: OnAfterContextMenu::<Identity, Impl, OFFSET>,
OnBeforeStateImageChange: OnBeforeStateImageChange::<Identity, Impl, OFFSET>,
OnGetDefaultIconIndex: OnGetDefaultIconIndex::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INameSpaceTreeControlEvents as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait INameSpaceTreeControlFolderCapabilities_Impl: Sized {
fn GetFolderCapabilities(&self, nfcmask: NSTCFOLDERCAPABILITIES) -> ::windows_core::Result<NSTCFOLDERCAPABILITIES>;
}
impl ::windows_core::RuntimeName for INameSpaceTreeControlFolderCapabilities {}
impl INameSpaceTreeControlFolderCapabilities_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlFolderCapabilities_Impl, const OFFSET: isize>() -> INameSpaceTreeControlFolderCapabilities_Vtbl {
unsafe extern "system" fn GetFolderCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INameSpaceTreeControlFolderCapabilities_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nfcmask: NSTCFOLDERCAPABILITIES, pnfcvalue: *mut NSTCFOLDERCAPABILITIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFolderCapabilities(::core::mem::transmute_copy(&nfcmask)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pnfcvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetFolderCapabilities: GetFolderCapabilities::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INameSpaceTreeControlFolderCapabilities as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))]
pub trait INamedPropertyBag_Impl: Sized {
fn ReadPropertyNPB(&self, pszbagname: &::windows_core::PCWSTR, pszpropname: &::windows_core::PCWSTR, pvar: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows_core::Result<()>;
fn WritePropertyNPB(&self, pszbagname: &::windows_core::PCWSTR, pszpropname: &::windows_core::PCWSTR, pvar: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows_core::Result<()>;
fn RemovePropertyNPB(&self, pszbagname: &::windows_core::PCWSTR, pszpropname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for INamedPropertyBag {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant"))]
impl INamedPropertyBag_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamedPropertyBag_Impl, const OFFSET: isize>() -> INamedPropertyBag_Vtbl {
unsafe extern "system" fn ReadPropertyNPB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamedPropertyBag_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszbagname: ::windows_core::PCWSTR, pszpropname: ::windows_core::PCWSTR, pvar: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPropertyNPB(::core::mem::transmute(&pszbagname), ::core::mem::transmute(&pszpropname), ::core::mem::transmute_copy(&pvar)).into()
}
unsafe extern "system" fn WritePropertyNPB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamedPropertyBag_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszbagname: ::windows_core::PCWSTR, pszpropname: ::windows_core::PCWSTR, pvar: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePropertyNPB(::core::mem::transmute(&pszbagname), ::core::mem::transmute(&pszpropname), ::core::mem::transmute_copy(&pvar)).into()
}
unsafe extern "system" fn RemovePropertyNPB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamedPropertyBag_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszbagname: ::windows_core::PCWSTR, pszpropname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemovePropertyNPB(::core::mem::transmute(&pszbagname), ::core::mem::transmute(&pszpropname)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ReadPropertyNPB: ReadPropertyNPB::<Identity, Impl, OFFSET>,
WritePropertyNPB: WritePropertyNPB::<Identity, Impl, OFFSET>,
RemovePropertyNPB: RemovePropertyNPB::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INamedPropertyBag as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait INamespaceWalk_Impl: Sized {
fn Walk(&self, punktowalk: ::core::option::Option<&::windows_core::IUnknown>, dwflags: u32, cdepth: i32, pnswcb: ::core::option::Option<&INamespaceWalkCB>) -> ::windows_core::Result<()>;
fn GetIDArrayResult(&self, pcitems: *mut u32, prgpidl: *mut *mut *mut Common::ITEMIDLIST) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for INamespaceWalk {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl INamespaceWalk_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamespaceWalk_Impl, const OFFSET: isize>() -> INamespaceWalk_Vtbl {
unsafe extern "system" fn Walk<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamespaceWalk_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punktowalk: *mut ::core::ffi::c_void, dwflags: u32, cdepth: i32, pnswcb: *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.Walk(::windows_core::from_raw_borrowed(&punktowalk), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&cdepth), ::windows_core::from_raw_borrowed(&pnswcb)).into()
}
unsafe extern "system" fn GetIDArrayResult<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamespaceWalk_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcitems: *mut u32, prgpidl: *mut *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIDArrayResult(::core::mem::transmute_copy(&pcitems), ::core::mem::transmute_copy(&prgpidl)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Walk: Walk::<Identity, Impl, OFFSET>,
GetIDArrayResult: GetIDArrayResult::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INamespaceWalk as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait INamespaceWalkCB_Impl: Sized {
fn FoundItem(&self, psf: ::core::option::Option<&IShellFolder>, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn EnterFolder(&self, psf: ::core::option::Option<&IShellFolder>, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn LeaveFolder(&self, psf: ::core::option::Option<&IShellFolder>, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn InitializeProgressDialog(&self, ppsztitle: *mut ::windows_core::PWSTR, ppszcancel: *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for INamespaceWalkCB {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl INamespaceWalkCB_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamespaceWalkCB_Impl, const OFFSET: isize>() -> INamespaceWalkCB_Vtbl {
unsafe extern "system" fn FoundItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamespaceWalkCB_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psf: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FoundItem(::windows_core::from_raw_borrowed(&psf), ::core::mem::transmute_copy(&pidl)).into()
}
unsafe extern "system" fn EnterFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamespaceWalkCB_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psf: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnterFolder(::windows_core::from_raw_borrowed(&psf), ::core::mem::transmute_copy(&pidl)).into()
}
unsafe extern "system" fn LeaveFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamespaceWalkCB_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psf: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LeaveFolder(::windows_core::from_raw_borrowed(&psf), ::core::mem::transmute_copy(&pidl)).into()
}
unsafe extern "system" fn InitializeProgressDialog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamespaceWalkCB_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsztitle: *mut ::windows_core::PWSTR, ppszcancel: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitializeProgressDialog(::core::mem::transmute_copy(&ppsztitle), ::core::mem::transmute_copy(&ppszcancel)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FoundItem: FoundItem::<Identity, Impl, OFFSET>,
EnterFolder: EnterFolder::<Identity, Impl, OFFSET>,
LeaveFolder: LeaveFolder::<Identity, Impl, OFFSET>,
InitializeProgressDialog: InitializeProgressDialog::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INamespaceWalkCB as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait INamespaceWalkCB2_Impl: Sized + INamespaceWalkCB_Impl {
fn WalkComplete(&self, hr: ::windows_core::HRESULT) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for INamespaceWalkCB2 {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl INamespaceWalkCB2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamespaceWalkCB2_Impl, const OFFSET: isize>() -> INamespaceWalkCB2_Vtbl {
unsafe extern "system" fn WalkComplete<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INamespaceWalkCB2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hr: ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WalkComplete(::core::mem::transmute_copy(&hr)).into()
}
Self { base__: INamespaceWalkCB_Vtbl::new::<Identity, Impl, OFFSET>(), WalkComplete: WalkComplete::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INamespaceWalkCB2 as ::windows_core::ComInterface>::IID || iid == &<INamespaceWalkCB as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait INetworkFolderInternal_Impl: Sized {
fn GetResourceDisplayType(&self) -> ::windows_core::Result<u32>;
fn GetIDList(&self) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
fn GetProvider(&self, itemidcount: u32, itemids: *const *const Common::ITEMIDLIST, providermaxlength: u32, provider: ::windows_core::PWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for INetworkFolderInternal {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl INetworkFolderInternal_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INetworkFolderInternal_Impl, const OFFSET: isize>() -> INetworkFolderInternal_Vtbl {
unsafe extern "system" fn GetResourceDisplayType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INetworkFolderInternal_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, displaytype: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetResourceDisplayType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(displaytype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INetworkFolderInternal_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idlist: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIDList() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(idlist, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProvider<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INetworkFolderInternal_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itemidcount: u32, itemids: *const *const Common::ITEMIDLIST, providermaxlength: u32, provider: ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProvider(::core::mem::transmute_copy(&itemidcount), ::core::mem::transmute_copy(&itemids), ::core::mem::transmute_copy(&providermaxlength), ::core::mem::transmute_copy(&provider)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetResourceDisplayType: GetResourceDisplayType::<Identity, Impl, OFFSET>,
GetIDList: GetIDList::<Identity, Impl, OFFSET>,
GetProvider: GetProvider::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INetworkFolderInternal as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait INewMenuClient_Impl: Sized {
fn IncludeItems(&self) -> ::windows_core::Result<i32>;
fn SelectAndEditItem(&self, pidlitem: *const Common::ITEMIDLIST, flags: i32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for INewMenuClient {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl INewMenuClient_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewMenuClient_Impl, const OFFSET: isize>() -> INewMenuClient_Vtbl {
unsafe extern "system" fn IncludeItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewMenuClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IncludeItems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SelectAndEditItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewMenuClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlitem: *const Common::ITEMIDLIST, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectAndEditItem(::core::mem::transmute_copy(&pidlitem), ::core::mem::transmute_copy(&flags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IncludeItems: IncludeItems::<Identity, Impl, OFFSET>,
SelectAndEditItem: SelectAndEditItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INewMenuClient as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait INewShortcutHookA_Impl: Sized {
fn SetReferent(&self, pcszreferent: &::windows_core::PCSTR, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn GetReferent(&self, pszreferent: ::windows_core::PSTR, cchreferent: i32) -> ::windows_core::Result<()>;
fn SetFolder(&self, pcszfolder: &::windows_core::PCSTR) -> ::windows_core::Result<()>;
fn GetFolder(&self, pszfolder: ::windows_core::PSTR, cchfolder: i32) -> ::windows_core::Result<()>;
fn GetName(&self, pszname: ::windows_core::PSTR, cchname: i32) -> ::windows_core::Result<()>;
fn GetExtension(&self, pszextension: ::windows_core::PSTR, cchextension: i32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for INewShortcutHookA {}
#[cfg(feature = "Win32_Foundation")]
impl INewShortcutHookA_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookA_Impl, const OFFSET: isize>() -> INewShortcutHookA_Vtbl {
unsafe extern "system" fn SetReferent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcszreferent: ::windows_core::PCSTR, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetReferent(::core::mem::transmute(&pcszreferent), ::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn GetReferent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszreferent: ::windows_core::PSTR, cchreferent: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetReferent(::core::mem::transmute_copy(&pszreferent), ::core::mem::transmute_copy(&cchreferent)).into()
}
unsafe extern "system" fn SetFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcszfolder: ::windows_core::PCSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFolder(::core::mem::transmute(&pcszfolder)).into()
}
unsafe extern "system" fn GetFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfolder: ::windows_core::PSTR, cchfolder: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFolder(::core::mem::transmute_copy(&pszfolder), ::core::mem::transmute_copy(&cchfolder)).into()
}
unsafe extern "system" fn GetName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PSTR, cchname: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetName(::core::mem::transmute_copy(&pszname), ::core::mem::transmute_copy(&cchname)).into()
}
unsafe extern "system" fn GetExtension<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszextension: ::windows_core::PSTR, cchextension: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtension(::core::mem::transmute_copy(&pszextension), ::core::mem::transmute_copy(&cchextension)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetReferent: SetReferent::<Identity, Impl, OFFSET>,
GetReferent: GetReferent::<Identity, Impl, OFFSET>,
SetFolder: SetFolder::<Identity, Impl, OFFSET>,
GetFolder: GetFolder::<Identity, Impl, OFFSET>,
GetName: GetName::<Identity, Impl, OFFSET>,
GetExtension: GetExtension::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INewShortcutHookA as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait INewShortcutHookW_Impl: Sized {
fn SetReferent(&self, pcszreferent: &::windows_core::PCWSTR, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn GetReferent(&self, pszreferent: ::windows_core::PWSTR, cchreferent: i32) -> ::windows_core::Result<()>;
fn SetFolder(&self, pcszfolder: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetFolder(&self, pszfolder: ::windows_core::PWSTR, cchfolder: i32) -> ::windows_core::Result<()>;
fn GetName(&self, pszname: ::windows_core::PWSTR, cchname: i32) -> ::windows_core::Result<()>;
fn GetExtension(&self, pszextension: ::windows_core::PWSTR, cchextension: i32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for INewShortcutHookW {}
#[cfg(feature = "Win32_Foundation")]
impl INewShortcutHookW_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookW_Impl, const OFFSET: isize>() -> INewShortcutHookW_Vtbl {
unsafe extern "system" fn SetReferent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcszreferent: ::windows_core::PCWSTR, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetReferent(::core::mem::transmute(&pcszreferent), ::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn GetReferent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszreferent: ::windows_core::PWSTR, cchreferent: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetReferent(::core::mem::transmute_copy(&pszreferent), ::core::mem::transmute_copy(&cchreferent)).into()
}
unsafe extern "system" fn SetFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcszfolder: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFolder(::core::mem::transmute(&pcszfolder)).into()
}
unsafe extern "system" fn GetFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfolder: ::windows_core::PWSTR, cchfolder: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFolder(::core::mem::transmute_copy(&pszfolder), ::core::mem::transmute_copy(&cchfolder)).into()
}
unsafe extern "system" fn GetName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PWSTR, cchname: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetName(::core::mem::transmute_copy(&pszname), ::core::mem::transmute_copy(&cchname)).into()
}
unsafe extern "system" fn GetExtension<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewShortcutHookW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszextension: ::windows_core::PWSTR, cchextension: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtension(::core::mem::transmute_copy(&pszextension), ::core::mem::transmute_copy(&cchextension)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetReferent: SetReferent::<Identity, Impl, OFFSET>,
GetReferent: GetReferent::<Identity, Impl, OFFSET>,
SetFolder: SetFolder::<Identity, Impl, OFFSET>,
GetFolder: GetFolder::<Identity, Impl, OFFSET>,
GetName: GetName::<Identity, Impl, OFFSET>,
GetExtension: GetExtension::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INewShortcutHookW as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait INewWDEvents_Impl: Sized + IWebWizardHost_Impl {
fn PassportAuthenticate(&self, bstrsigninurl: &::windows_core::BSTR) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for INewWDEvents {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl INewWDEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewWDEvents_Impl, const OFFSET: isize>() -> INewWDEvents_Vtbl {
unsafe extern "system" fn PassportAuthenticate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewWDEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrsigninurl: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvfauthenitcated: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PassportAuthenticate(::core::mem::transmute(&bstrsigninurl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvfauthenitcated, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IWebWizardHost_Vtbl::new::<Identity, Impl, OFFSET>(), PassportAuthenticate: PassportAuthenticate::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INewWDEvents as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IWebWizardHost as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait INewWindowManager_Impl: Sized {
fn EvaluateNewWindow(&self, pszurl: &::windows_core::PCWSTR, pszname: &::windows_core::PCWSTR, pszurlcontext: &::windows_core::PCWSTR, pszfeatures: &::windows_core::PCWSTR, freplace: super::super::Foundation::BOOL, dwflags: u32, dwuseractiontime: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for INewWindowManager {}
#[cfg(feature = "Win32_Foundation")]
impl INewWindowManager_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewWindowManager_Impl, const OFFSET: isize>() -> INewWindowManager_Vtbl {
unsafe extern "system" fn EvaluateNewWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INewWindowManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszurl: ::windows_core::PCWSTR, pszname: ::windows_core::PCWSTR, pszurlcontext: ::windows_core::PCWSTR, pszfeatures: ::windows_core::PCWSTR, freplace: super::super::Foundation::BOOL, dwflags: u32, dwuseractiontime: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EvaluateNewWindow(::core::mem::transmute(&pszurl), ::core::mem::transmute(&pszname), ::core::mem::transmute(&pszurlcontext), ::core::mem::transmute(&pszfeatures), ::core::mem::transmute_copy(&freplace), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&dwuseractiontime)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), EvaluateNewWindow: EvaluateNewWindow::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INewWindowManager as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait INotifyReplica_Impl: Sized {
fn YouAreAReplica(&self, ulcotherreplicas: u32, rgpmkotherreplicas: *mut ::core::option::Option<super::super::System::Com::IMoniker>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for INotifyReplica {}
#[cfg(feature = "Win32_System_Com")]
impl INotifyReplica_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INotifyReplica_Impl, const OFFSET: isize>() -> INotifyReplica_Vtbl {
unsafe extern "system" fn YouAreAReplica<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: INotifyReplica_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcotherreplicas: u32, rgpmkotherreplicas: *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();
this.YouAreAReplica(::core::mem::transmute_copy(&ulcotherreplicas), ::core::mem::transmute_copy(&rgpmkotherreplicas)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), YouAreAReplica: YouAreAReplica::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<INotifyReplica as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IObjMgr_Impl: Sized {
fn Append(&self, punk: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn Remove(&self, punk: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IObjMgr {}
impl IObjMgr_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjMgr_Impl, const OFFSET: isize>() -> IObjMgr_Vtbl {
unsafe extern "system" fn Append<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjMgr_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *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.Append(::windows_core::from_raw_borrowed(&punk)).into()
}
unsafe extern "system" fn Remove<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjMgr_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *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.Remove(::windows_core::from_raw_borrowed(&punk)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Append: Append::<Identity, Impl, OFFSET>,
Remove: Remove::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IObjMgr as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IObjectProvider_Impl: Sized {
fn QueryObject(&self, guidobject: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppvout: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IObjectProvider {}
impl IObjectProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectProvider_Impl, const OFFSET: isize>() -> IObjectProvider_Vtbl {
unsafe extern "system" fn QueryObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidobject: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppvout: *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();
this.QueryObject(::core::mem::transmute_copy(&guidobject), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppvout)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), QueryObject: QueryObject::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IObjectProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IObjectWithAppUserModelID_Impl: Sized {
fn SetAppID(&self, pszappid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetAppID(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
impl ::windows_core::RuntimeName for IObjectWithAppUserModelID {}
impl IObjectWithAppUserModelID_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithAppUserModelID_Impl, const OFFSET: isize>() -> IObjectWithAppUserModelID_Vtbl {
unsafe extern "system" fn SetAppID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithAppUserModelID_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszappid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAppID(::core::mem::transmute(&pszappid)).into()
}
unsafe extern "system" fn GetAppID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithAppUserModelID_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszappid: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAppID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszappid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAppID: SetAppID::<Identity, Impl, OFFSET>,
GetAppID: GetAppID::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IObjectWithAppUserModelID as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IObjectWithBackReferences_Impl: Sized {
fn RemoveBackReferences(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IObjectWithBackReferences {}
impl IObjectWithBackReferences_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithBackReferences_Impl, const OFFSET: isize>() -> IObjectWithBackReferences_Vtbl {
unsafe extern "system" fn RemoveBackReferences<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithBackReferences_Impl, const OFFSET: isize>(this: *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.RemoveBackReferences().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), RemoveBackReferences: RemoveBackReferences::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IObjectWithBackReferences as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IObjectWithCancelEvent_Impl: Sized {
fn GetCancelEvent(&self) -> ::windows_core::Result<super::super::Foundation::HANDLE>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IObjectWithCancelEvent {}
#[cfg(feature = "Win32_Foundation")]
impl IObjectWithCancelEvent_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithCancelEvent_Impl, const OFFSET: isize>() -> IObjectWithCancelEvent_Vtbl {
unsafe extern "system" fn GetCancelEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithCancelEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phevent: *mut super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCancelEvent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phevent, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetCancelEvent: GetCancelEvent::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IObjectWithCancelEvent as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IObjectWithFolderEnumMode_Impl: Sized {
fn SetMode(&self, femode: FOLDER_ENUM_MODE) -> ::windows_core::Result<()>;
fn GetMode(&self) -> ::windows_core::Result<FOLDER_ENUM_MODE>;
}
impl ::windows_core::RuntimeName for IObjectWithFolderEnumMode {}
impl IObjectWithFolderEnumMode_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithFolderEnumMode_Impl, const OFFSET: isize>() -> IObjectWithFolderEnumMode_Vtbl {
unsafe extern "system" fn SetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithFolderEnumMode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, femode: FOLDER_ENUM_MODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMode(::core::mem::transmute_copy(&femode)).into()
}
unsafe extern "system" fn GetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithFolderEnumMode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfemode: *mut FOLDER_ENUM_MODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfemode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetMode: SetMode::<Identity, Impl, OFFSET>,
GetMode: GetMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IObjectWithFolderEnumMode as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IObjectWithProgID_Impl: Sized {
fn SetProgID(&self, pszprogid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetProgID(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
impl ::windows_core::RuntimeName for IObjectWithProgID {}
impl IObjectWithProgID_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithProgID_Impl, const OFFSET: isize>() -> IObjectWithProgID_Vtbl {
unsafe extern "system" fn SetProgID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithProgID_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszprogid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProgID(::core::mem::transmute(&pszprogid)).into()
}
unsafe extern "system" fn GetProgID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithProgID_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszprogid: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProgID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszprogid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetProgID: SetProgID::<Identity, Impl, OFFSET>,
GetProgID: GetProgID::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IObjectWithProgID as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IObjectWithSelection_Impl: Sized {
fn SetSelection(&self, psia: ::core::option::Option<&IShellItemArray>) -> ::windows_core::Result<()>;
fn GetSelection(&self, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IObjectWithSelection {}
impl IObjectWithSelection_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithSelection_Impl, const OFFSET: isize>() -> IObjectWithSelection_Vtbl {
unsafe extern "system" fn SetSelection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithSelection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psia: *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.SetSelection(::windows_core::from_raw_borrowed(&psia)).into()
}
unsafe extern "system" fn GetSelection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IObjectWithSelection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetSelection(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetSelection: SetSelection::<Identity, Impl, OFFSET>,
GetSelection: GetSelection::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IObjectWithSelection as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IOpenControlPanel_Impl: Sized {
fn Open(&self, pszname: &::windows_core::PCWSTR, pszpage: &::windows_core::PCWSTR, punksite: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn GetPath(&self, pszname: &::windows_core::PCWSTR, pszpath: ::windows_core::PWSTR, cchpath: u32) -> ::windows_core::Result<()>;
fn GetCurrentView(&self) -> ::windows_core::Result<CPVIEW>;
}
impl ::windows_core::RuntimeName for IOpenControlPanel {}
impl IOpenControlPanel_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOpenControlPanel_Impl, const OFFSET: isize>() -> IOpenControlPanel_Vtbl {
unsafe extern "system" fn Open<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOpenControlPanel_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PCWSTR, pszpage: ::windows_core::PCWSTR, punksite: *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.Open(::core::mem::transmute(&pszname), ::core::mem::transmute(&pszpage), ::windows_core::from_raw_borrowed(&punksite)).into()
}
unsafe extern "system" fn GetPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOpenControlPanel_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PCWSTR, pszpath: ::windows_core::PWSTR, cchpath: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPath(::core::mem::transmute(&pszname), ::core::mem::transmute_copy(&pszpath), ::core::mem::transmute_copy(&cchpath)).into()
}
unsafe extern "system" fn GetCurrentView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOpenControlPanel_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pview: *mut CPVIEW) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentView() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pview, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Open: Open::<Identity, Impl, OFFSET>,
GetPath: GetPath::<Identity, Impl, OFFSET>,
GetCurrentView: GetCurrentView::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IOpenControlPanel as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IOpenSearchSource_Impl: Sized {
fn GetResults(&self, hwnd: super::super::Foundation::HWND, pszquery: &::windows_core::PCWSTR, dwstartindex: u32, dwcount: u32, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IOpenSearchSource {}
#[cfg(feature = "Win32_Foundation")]
impl IOpenSearchSource_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOpenSearchSource_Impl, const OFFSET: isize>() -> IOpenSearchSource_Vtbl {
unsafe extern "system" fn GetResults<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOpenSearchSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, pszquery: ::windows_core::PCWSTR, dwstartindex: u32, dwcount: u32, riid: *const ::windows_core::GUID, ppv: *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();
this.GetResults(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute(&pszquery), ::core::mem::transmute_copy(&dwstartindex), ::core::mem::transmute_copy(&dwcount), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetResults: GetResults::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IOpenSearchSource as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait IOperationsProgressDialog_Impl: Sized {
fn StartProgressDialog(&self, hwndowner: super::super::Foundation::HWND, flags: u32) -> ::windows_core::Result<()>;
fn StopProgressDialog(&self) -> ::windows_core::Result<()>;
fn SetOperation(&self, action: SPACTION) -> ::windows_core::Result<()>;
fn SetMode(&self, mode: u32) -> ::windows_core::Result<()>;
fn UpdateProgress(&self, ullpointscurrent: u64, ullpointstotal: u64, ullsizecurrent: u64, ullsizetotal: u64, ullitemscurrent: u64, ullitemstotal: u64) -> ::windows_core::Result<()>;
fn UpdateLocations(&self, psisource: ::core::option::Option<&IShellItem>, psitarget: ::core::option::Option<&IShellItem>, psiitem: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn ResetTimer(&self) -> ::windows_core::Result<()>;
fn PauseTimer(&self) -> ::windows_core::Result<()>;
fn ResumeTimer(&self) -> ::windows_core::Result<()>;
fn GetMilliseconds(&self, pullelapsed: *mut u64, pullremaining: *mut u64) -> ::windows_core::Result<()>;
fn GetOperationStatus(&self) -> ::windows_core::Result<PropertiesSystem::PDOPSTATUS>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for IOperationsProgressDialog {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl IOperationsProgressDialog_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>() -> IOperationsProgressDialog_Vtbl {
unsafe extern "system" fn StartProgressDialog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndowner: super::super::Foundation::HWND, flags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProgressDialog(::core::mem::transmute_copy(&hwndowner), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn StopProgressDialog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *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.StopProgressDialog().into()
}
unsafe extern "system" fn SetOperation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, action: SPACTION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOperation(::core::mem::transmute_copy(&action)).into()
}
unsafe extern "system" fn SetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMode(::core::mem::transmute_copy(&mode)).into()
}
unsafe extern "system" fn UpdateProgress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ullpointscurrent: u64, ullpointstotal: u64, ullsizecurrent: u64, ullsizetotal: u64, ullitemscurrent: u64, ullitemstotal: u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateProgress(::core::mem::transmute_copy(&ullpointscurrent), ::core::mem::transmute_copy(&ullpointstotal), ::core::mem::transmute_copy(&ullsizecurrent), ::core::mem::transmute_copy(&ullsizetotal), ::core::mem::transmute_copy(&ullitemscurrent), ::core::mem::transmute_copy(&ullitemstotal)).into()
}
unsafe extern "system" fn UpdateLocations<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psisource: *mut ::core::ffi::c_void, psitarget: *mut ::core::ffi::c_void, psiitem: *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.UpdateLocations(::windows_core::from_raw_borrowed(&psisource), ::windows_core::from_raw_borrowed(&psitarget), ::windows_core::from_raw_borrowed(&psiitem)).into()
}
unsafe extern "system" fn ResetTimer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *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.ResetTimer().into()
}
unsafe extern "system" fn PauseTimer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *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.PauseTimer().into()
}
unsafe extern "system" fn ResumeTimer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *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.ResumeTimer().into()
}
unsafe extern "system" fn GetMilliseconds<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pullelapsed: *mut u64, pullremaining: *mut u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMilliseconds(::core::mem::transmute_copy(&pullelapsed), ::core::mem::transmute_copy(&pullremaining)).into()
}
unsafe extern "system" fn GetOperationStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOperationsProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, popstatus: *mut PropertiesSystem::PDOPSTATUS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOperationStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(popstatus, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartProgressDialog: StartProgressDialog::<Identity, Impl, OFFSET>,
StopProgressDialog: StopProgressDialog::<Identity, Impl, OFFSET>,
SetOperation: SetOperation::<Identity, Impl, OFFSET>,
SetMode: SetMode::<Identity, Impl, OFFSET>,
UpdateProgress: UpdateProgress::<Identity, Impl, OFFSET>,
UpdateLocations: UpdateLocations::<Identity, Impl, OFFSET>,
ResetTimer: ResetTimer::<Identity, Impl, OFFSET>,
PauseTimer: PauseTimer::<Identity, Impl, OFFSET>,
ResumeTimer: ResumeTimer::<Identity, Impl, OFFSET>,
GetMilliseconds: GetMilliseconds::<Identity, Impl, OFFSET>,
GetOperationStatus: GetOperationStatus::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IOperationsProgressDialog as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IPackageDebugSettings_Impl: Sized {
fn EnableDebugging(&self, packagefullname: &::windows_core::PCWSTR, debuggercommandline: &::windows_core::PCWSTR, environment: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn DisableDebugging(&self, packagefullname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn Suspend(&self, packagefullname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn Resume(&self, packagefullname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn TerminateAllProcesses(&self, packagefullname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetTargetSessionId(&self, sessionid: u32) -> ::windows_core::Result<()>;
fn EnumerateBackgroundTasks(&self, packagefullname: &::windows_core::PCWSTR, taskcount: *mut u32, taskids: *mut *mut ::windows_core::GUID, tasknames: *mut *mut ::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn ActivateBackgroundTask(&self, taskid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn StartServicing(&self, packagefullname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn StopServicing(&self, packagefullname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn StartSessionRedirection(&self, packagefullname: &::windows_core::PCWSTR, sessionid: u32) -> ::windows_core::Result<()>;
fn StopSessionRedirection(&self, packagefullname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetPackageExecutionState(&self, packagefullname: &::windows_core::PCWSTR) -> ::windows_core::Result<PACKAGE_EXECUTION_STATE>;
fn RegisterForPackageStateChanges(&self, packagefullname: &::windows_core::PCWSTR, ppackageexecutionstatechangenotification: ::core::option::Option<&IPackageExecutionStateChangeNotification>) -> ::windows_core::Result<u32>;
fn UnregisterForPackageStateChanges(&self, dwcookie: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IPackageDebugSettings {}
impl IPackageDebugSettings_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>() -> IPackageDebugSettings_Vtbl {
unsafe extern "system" fn EnableDebugging<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR, debuggercommandline: ::windows_core::PCWSTR, environment: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableDebugging(::core::mem::transmute(&packagefullname), ::core::mem::transmute(&debuggercommandline), ::core::mem::transmute(&environment)).into()
}
unsafe extern "system" fn DisableDebugging<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisableDebugging(::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn Suspend<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Suspend(::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn Resume<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Resume(::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn TerminateAllProcesses<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TerminateAllProcesses(::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn SetTargetSessionId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sessionid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTargetSessionId(::core::mem::transmute_copy(&sessionid)).into()
}
unsafe extern "system" fn EnumerateBackgroundTasks<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR, taskcount: *mut u32, taskids: *mut *mut ::windows_core::GUID, tasknames: *mut *mut ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnumerateBackgroundTasks(::core::mem::transmute(&packagefullname), ::core::mem::transmute_copy(&taskcount), ::core::mem::transmute_copy(&taskids), ::core::mem::transmute_copy(&tasknames)).into()
}
unsafe extern "system" fn ActivateBackgroundTask<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, taskid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ActivateBackgroundTask(::core::mem::transmute_copy(&taskid)).into()
}
unsafe extern "system" fn StartServicing<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServicing(::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn StopServicing<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopServicing(::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn StartSessionRedirection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR, sessionid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartSessionRedirection(::core::mem::transmute(&packagefullname), ::core::mem::transmute_copy(&sessionid)).into()
}
unsafe extern "system" fn StopSessionRedirection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopSessionRedirection(::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn GetPackageExecutionState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR, packageexecutionstate: *mut PACKAGE_EXECUTION_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPackageExecutionState(::core::mem::transmute(&packagefullname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(packageexecutionstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RegisterForPackageStateChanges<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR, ppackageexecutionstatechangenotification: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RegisterForPackageStateChanges(::core::mem::transmute(&packagefullname), ::windows_core::from_raw_borrowed(&ppackageexecutionstatechangenotification)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn UnregisterForPackageStateChanges<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterForPackageStateChanges(::core::mem::transmute_copy(&dwcookie)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
EnableDebugging: EnableDebugging::<Identity, Impl, OFFSET>,
DisableDebugging: DisableDebugging::<Identity, Impl, OFFSET>,
Suspend: Suspend::<Identity, Impl, OFFSET>,
Resume: Resume::<Identity, Impl, OFFSET>,
TerminateAllProcesses: TerminateAllProcesses::<Identity, Impl, OFFSET>,
SetTargetSessionId: SetTargetSessionId::<Identity, Impl, OFFSET>,
EnumerateBackgroundTasks: EnumerateBackgroundTasks::<Identity, Impl, OFFSET>,
ActivateBackgroundTask: ActivateBackgroundTask::<Identity, Impl, OFFSET>,
StartServicing: StartServicing::<Identity, Impl, OFFSET>,
StopServicing: StopServicing::<Identity, Impl, OFFSET>,
StartSessionRedirection: StartSessionRedirection::<Identity, Impl, OFFSET>,
StopSessionRedirection: StopSessionRedirection::<Identity, Impl, OFFSET>,
GetPackageExecutionState: GetPackageExecutionState::<Identity, Impl, OFFSET>,
RegisterForPackageStateChanges: RegisterForPackageStateChanges::<Identity, Impl, OFFSET>,
UnregisterForPackageStateChanges: UnregisterForPackageStateChanges::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPackageDebugSettings as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IPackageDebugSettings2_Impl: Sized + IPackageDebugSettings_Impl {
fn EnumerateApps(&self, packagefullname: &::windows_core::PCWSTR, appcount: *mut u32, appusermodelids: *mut *mut ::windows_core::PWSTR, appdisplaynames: *mut *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IPackageDebugSettings2 {}
impl IPackageDebugSettings2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings2_Impl, const OFFSET: isize>() -> IPackageDebugSettings2_Vtbl {
unsafe extern "system" fn EnumerateApps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageDebugSettings2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, packagefullname: ::windows_core::PCWSTR, appcount: *mut u32, appusermodelids: *mut *mut ::windows_core::PWSTR, appdisplaynames: *mut *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnumerateApps(::core::mem::transmute(&packagefullname), ::core::mem::transmute_copy(&appcount), ::core::mem::transmute_copy(&appusermodelids), ::core::mem::transmute_copy(&appdisplaynames)).into()
}
Self { base__: IPackageDebugSettings_Vtbl::new::<Identity, Impl, OFFSET>(), EnumerateApps: EnumerateApps::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPackageDebugSettings2 as ::windows_core::ComInterface>::IID || iid == &<IPackageDebugSettings as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IPackageExecutionStateChangeNotification_Impl: Sized {
fn OnStateChanged(&self, pszpackagefullname: &::windows_core::PCWSTR, pesnewstate: PACKAGE_EXECUTION_STATE) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IPackageExecutionStateChangeNotification {}
impl IPackageExecutionStateChangeNotification_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageExecutionStateChangeNotification_Impl, const OFFSET: isize>() -> IPackageExecutionStateChangeNotification_Vtbl {
unsafe extern "system" fn OnStateChanged<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPackageExecutionStateChangeNotification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpackagefullname: ::windows_core::PCWSTR, pesnewstate: PACKAGE_EXECUTION_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnStateChanged(::core::mem::transmute(&pszpackagefullname), ::core::mem::transmute_copy(&pesnewstate)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), OnStateChanged: OnStateChanged::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPackageExecutionStateChangeNotification as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IParentAndItem_Impl: Sized {
fn SetParentAndItem(&self, pidlparent: *const Common::ITEMIDLIST, psf: ::core::option::Option<&IShellFolder>, pidlchild: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn GetParentAndItem(&self, ppidlparent: *mut *mut Common::ITEMIDLIST, ppsf: *mut ::core::option::Option<IShellFolder>, ppidlchild: *mut *mut Common::ITEMIDLIST) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IParentAndItem {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IParentAndItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IParentAndItem_Impl, const OFFSET: isize>() -> IParentAndItem_Vtbl {
unsafe extern "system" fn SetParentAndItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IParentAndItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlparent: *const Common::ITEMIDLIST, psf: *mut ::core::ffi::c_void, pidlchild: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetParentAndItem(::core::mem::transmute_copy(&pidlparent), ::windows_core::from_raw_borrowed(&psf), ::core::mem::transmute_copy(&pidlchild)).into()
}
unsafe extern "system" fn GetParentAndItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IParentAndItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidlparent: *mut *mut Common::ITEMIDLIST, ppsf: *mut *mut ::core::ffi::c_void, ppidlchild: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetParentAndItem(::core::mem::transmute_copy(&ppidlparent), ::core::mem::transmute_copy(&ppsf), ::core::mem::transmute_copy(&ppidlchild)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetParentAndItem: SetParentAndItem::<Identity, Impl, OFFSET>,
GetParentAndItem: GetParentAndItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IParentAndItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IParseAndCreateItem_Impl: Sized {
fn SetItem(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn GetItem(&self, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IParseAndCreateItem {}
impl IParseAndCreateItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IParseAndCreateItem_Impl, const OFFSET: isize>() -> IParseAndCreateItem_Vtbl {
unsafe extern "system" fn SetItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IParseAndCreateItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.SetItem(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn GetItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IParseAndCreateItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetItem(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetItem: SetItem::<Identity, Impl, OFFSET>,
GetItem: GetItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IParseAndCreateItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
pub trait IPersistFolder_Impl: Sized + super::super::System::Com::IPersist_Impl {
fn Initialize(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IPersistFolder {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl IPersistFolder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistFolder_Impl, const OFFSET: isize>() -> IPersistFolder_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&pidl)).into()
}
Self { base__: super::super::System::Com::IPersist_Vtbl::new::<Identity, Impl, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPersistFolder as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IPersist as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
pub trait IPersistFolder2_Impl: Sized + IPersistFolder_Impl {
fn GetCurFolder(&self) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IPersistFolder2 {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl IPersistFolder2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistFolder2_Impl, const OFFSET: isize>() -> IPersistFolder2_Vtbl {
unsafe extern "system" fn GetCurFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistFolder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidl: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurFolder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IPersistFolder_Vtbl::new::<Identity, Impl, OFFSET>(), GetCurFolder: GetCurFolder::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPersistFolder2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IPersist as ::windows_core::ComInterface>::IID || iid == &<IPersistFolder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
pub trait IPersistFolder3_Impl: Sized + IPersistFolder2_Impl {
fn InitializeEx(&self, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>, pidlroot: *const Common::ITEMIDLIST, ppfti: *const PERSIST_FOLDER_TARGET_INFO) -> ::windows_core::Result<()>;
fn GetFolderTargetInfo(&self, ppfti: *mut PERSIST_FOLDER_TARGET_INFO) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IPersistFolder3 {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl IPersistFolder3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistFolder3_Impl, const OFFSET: isize>() -> IPersistFolder3_Vtbl {
unsafe extern "system" fn InitializeEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistFolder3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbc: *mut ::core::ffi::c_void, pidlroot: *const Common::ITEMIDLIST, ppfti: *const PERSIST_FOLDER_TARGET_INFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitializeEx(::windows_core::from_raw_borrowed(&pbc), ::core::mem::transmute_copy(&pidlroot), ::core::mem::transmute_copy(&ppfti)).into()
}
unsafe extern "system" fn GetFolderTargetInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistFolder3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppfti: *mut PERSIST_FOLDER_TARGET_INFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFolderTargetInfo(::core::mem::transmute_copy(&ppfti)).into()
}
Self {
base__: IPersistFolder2_Vtbl::new::<Identity, Impl, OFFSET>(),
InitializeEx: InitializeEx::<Identity, Impl, OFFSET>,
GetFolderTargetInfo: GetFolderTargetInfo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPersistFolder3 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IPersist as ::windows_core::ComInterface>::IID || iid == &<IPersistFolder as ::windows_core::ComInterface>::IID || iid == &<IPersistFolder2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
pub trait IPersistIDList_Impl: Sized + super::super::System::Com::IPersist_Impl {
fn SetIDList(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn GetIDList(&self) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IPersistIDList {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl IPersistIDList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistIDList_Impl, const OFFSET: isize>() -> IPersistIDList_Vtbl {
unsafe extern "system" fn SetIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistIDList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIDList(::core::mem::transmute_copy(&pidl)).into()
}
unsafe extern "system" fn GetIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistIDList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidl: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIDList() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IPersist_Vtbl::new::<Identity, Impl, OFFSET>(),
SetIDList: SetIDList::<Identity, Impl, OFFSET>,
GetIDList: GetIDList::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPersistIDList as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IPersist as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IPreviewHandler_Impl: Sized {
fn SetWindow(&self, hwnd: super::super::Foundation::HWND, prc: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn SetRect(&self, prc: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn DoPreview(&self) -> ::windows_core::Result<()>;
fn Unload(&self) -> ::windows_core::Result<()>;
fn SetFocus(&self) -> ::windows_core::Result<()>;
fn QueryFocus(&self) -> ::windows_core::Result<super::super::Foundation::HWND>;
fn TranslateAccelerator(&self, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IPreviewHandler {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl IPreviewHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandler_Impl, const OFFSET: isize>() -> IPreviewHandler_Vtbl {
unsafe extern "system" fn SetWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, prc: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWindow(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&prc)).into()
}
unsafe extern "system" fn SetRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prc: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRect(::core::mem::transmute_copy(&prc)).into()
}
unsafe extern "system" fn DoPreview<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandler_Impl, const OFFSET: isize>(this: *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.DoPreview().into()
}
unsafe extern "system" fn Unload<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandler_Impl, const OFFSET: isize>(this: *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.Unload().into()
}
unsafe extern "system" fn SetFocus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandler_Impl, const OFFSET: isize>(this: *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.SetFocus().into()
}
unsafe extern "system" fn QueryFocus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phwnd: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryFocus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phwnd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TranslateAccelerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TranslateAccelerator(::core::mem::transmute_copy(&pmsg)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetWindow: SetWindow::<Identity, Impl, OFFSET>,
SetRect: SetRect::<Identity, Impl, OFFSET>,
DoPreview: DoPreview::<Identity, Impl, OFFSET>,
Unload: Unload::<Identity, Impl, OFFSET>,
SetFocus: SetFocus::<Identity, Impl, OFFSET>,
QueryFocus: QueryFocus::<Identity, Impl, OFFSET>,
TranslateAccelerator: TranslateAccelerator::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPreviewHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IPreviewHandlerFrame_Impl: Sized {
fn GetWindowContext(&self) -> ::windows_core::Result<PREVIEWHANDLERFRAMEINFO>;
fn TranslateAccelerator(&self, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IPreviewHandlerFrame {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl IPreviewHandlerFrame_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandlerFrame_Impl, const OFFSET: isize>() -> IPreviewHandlerFrame_Vtbl {
unsafe extern "system" fn GetWindowContext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandlerFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pinfo: *mut PREVIEWHANDLERFRAMEINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetWindowContext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pinfo, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TranslateAccelerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandlerFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TranslateAccelerator(::core::mem::transmute_copy(&pmsg)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetWindowContext: GetWindowContext::<Identity, Impl, OFFSET>,
TranslateAccelerator: TranslateAccelerator::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPreviewHandlerFrame as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IPreviewHandlerVisuals_Impl: Sized {
fn SetBackgroundColor(&self, color: super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
fn SetFont(&self, plf: *const super::super::Graphics::Gdi::LOGFONTW) -> ::windows_core::Result<()>;
fn SetTextColor(&self, color: super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IPreviewHandlerVisuals {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IPreviewHandlerVisuals_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandlerVisuals_Impl, const OFFSET: isize>() -> IPreviewHandlerVisuals_Vtbl {
unsafe extern "system" fn SetBackgroundColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandlerVisuals_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, color: super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBackgroundColor(::core::mem::transmute_copy(&color)).into()
}
unsafe extern "system" fn SetFont<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandlerVisuals_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plf: *const super::super::Graphics::Gdi::LOGFONTW) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFont(::core::mem::transmute_copy(&plf)).into()
}
unsafe extern "system" fn SetTextColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewHandlerVisuals_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, color: super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextColor(::core::mem::transmute_copy(&color)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetBackgroundColor: SetBackgroundColor::<Identity, Impl, OFFSET>,
SetFont: SetFont::<Identity, Impl, OFFSET>,
SetTextColor: SetTextColor::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPreviewHandlerVisuals as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IPreviewItem_Impl: Sized + IRelatedItem_Impl {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IPreviewItem {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IPreviewItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviewItem_Impl, const OFFSET: isize>() -> IPreviewItem_Vtbl {
Self { base__: IRelatedItem_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPreviewItem as ::windows_core::ComInterface>::IID || iid == &<IRelatedItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IPreviousVersionsInfo_Impl: Sized {
fn AreSnapshotsAvailable(&self, pszpath: &::windows_core::PCWSTR, foktobeslow: super::super::Foundation::BOOL) -> ::windows_core::Result<super::super::Foundation::BOOL>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IPreviousVersionsInfo {}
#[cfg(feature = "Win32_Foundation")]
impl IPreviousVersionsInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviousVersionsInfo_Impl, const OFFSET: isize>() -> IPreviousVersionsInfo_Vtbl {
unsafe extern "system" fn AreSnapshotsAvailable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPreviousVersionsInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpath: ::windows_core::PCWSTR, foktobeslow: super::super::Foundation::BOOL, pfavailable: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AreSnapshotsAvailable(::core::mem::transmute(&pszpath), ::core::mem::transmute_copy(&foktobeslow)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfavailable, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), AreSnapshotsAvailable: AreSnapshotsAvailable::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPreviousVersionsInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IProfferService_Impl: Sized {
fn ProfferService(&self, serviceid: *const ::windows_core::GUID, serviceprovider: ::core::option::Option<&super::super::System::Com::IServiceProvider>) -> ::windows_core::Result<u32>;
fn RevokeService(&self, cookie: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IProfferService {}
#[cfg(feature = "Win32_System_Com")]
impl IProfferService_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProfferService_Impl, const OFFSET: isize>() -> IProfferService_Vtbl {
unsafe extern "system" fn ProfferService<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProfferService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, serviceid: *const ::windows_core::GUID, serviceprovider: *mut ::core::ffi::c_void, cookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ProfferService(::core::mem::transmute_copy(&serviceid), ::windows_core::from_raw_borrowed(&serviceprovider)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(cookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RevokeService<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProfferService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RevokeService(::core::mem::transmute_copy(&cookie)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ProfferService: ProfferService::<Identity, Impl, OFFSET>,
RevokeService: RevokeService::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IProfferService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IProgressDialog_Impl: Sized {
fn StartProgressDialog(&self, hwndparent: super::super::Foundation::HWND, punkenablemodless: ::core::option::Option<&::windows_core::IUnknown>, dwflags: u32, pvresevered: *const ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn StopProgressDialog(&self) -> ::windows_core::Result<()>;
fn SetTitle(&self, pwztitle: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetAnimation(&self, hinstanimation: super::super::Foundation::HINSTANCE, idanimation: u32) -> ::windows_core::Result<()>;
fn HasUserCancelled(&self) -> super::super::Foundation::BOOL;
fn SetProgress(&self, dwcompleted: u32, dwtotal: u32) -> ::windows_core::Result<()>;
fn SetProgress64(&self, ullcompleted: u64, ulltotal: u64) -> ::windows_core::Result<()>;
fn SetLine(&self, dwlinenum: u32, pwzstring: &::windows_core::PCWSTR, fcompactpath: super::super::Foundation::BOOL, pvresevered: *const ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn SetCancelMsg(&self, pwzcancelmsg: &::windows_core::PCWSTR, pvresevered: *const ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn Timer(&self, dwtimeraction: u32, pvresevered: *const ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IProgressDialog {}
#[cfg(feature = "Win32_Foundation")]
impl IProgressDialog_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>() -> IProgressDialog_Vtbl {
unsafe extern "system" fn StartProgressDialog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndparent: super::super::Foundation::HWND, punkenablemodless: *mut ::core::ffi::c_void, dwflags: u32, pvresevered: *const ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProgressDialog(::core::mem::transmute_copy(&hwndparent), ::windows_core::from_raw_borrowed(&punkenablemodless), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&pvresevered)).into()
}
unsafe extern "system" fn StopProgressDialog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>(this: *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.StopProgressDialog().into()
}
unsafe extern "system" fn SetTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwztitle: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTitle(::core::mem::transmute(&pwztitle)).into()
}
unsafe extern "system" fn SetAnimation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hinstanimation: super::super::Foundation::HINSTANCE, idanimation: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAnimation(::core::mem::transmute_copy(&hinstanimation), ::core::mem::transmute_copy(&idanimation)).into()
}
unsafe extern "system" fn HasUserCancelled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HasUserCancelled()
}
unsafe extern "system" fn SetProgress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcompleted: u32, dwtotal: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProgress(::core::mem::transmute_copy(&dwcompleted), ::core::mem::transmute_copy(&dwtotal)).into()
}
unsafe extern "system" fn SetProgress64<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ullcompleted: u64, ulltotal: u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProgress64(::core::mem::transmute_copy(&ullcompleted), ::core::mem::transmute_copy(&ulltotal)).into()
}
unsafe extern "system" fn SetLine<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwlinenum: u32, pwzstring: ::windows_core::PCWSTR, fcompactpath: super::super::Foundation::BOOL, pvresevered: *const ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLine(::core::mem::transmute_copy(&dwlinenum), ::core::mem::transmute(&pwzstring), ::core::mem::transmute_copy(&fcompactpath), ::core::mem::transmute_copy(&pvresevered)).into()
}
unsafe extern "system" fn SetCancelMsg<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwzcancelmsg: ::windows_core::PCWSTR, pvresevered: *const ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCancelMsg(::core::mem::transmute(&pwzcancelmsg), ::core::mem::transmute_copy(&pvresevered)).into()
}
unsafe extern "system" fn Timer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IProgressDialog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwtimeraction: u32, pvresevered: *const ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Timer(::core::mem::transmute_copy(&dwtimeraction), ::core::mem::transmute_copy(&pvresevered)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartProgressDialog: StartProgressDialog::<Identity, Impl, OFFSET>,
StopProgressDialog: StopProgressDialog::<Identity, Impl, OFFSET>,
SetTitle: SetTitle::<Identity, Impl, OFFSET>,
SetAnimation: SetAnimation::<Identity, Impl, OFFSET>,
HasUserCancelled: HasUserCancelled::<Identity, Impl, OFFSET>,
SetProgress: SetProgress::<Identity, Impl, OFFSET>,
SetProgress64: SetProgress64::<Identity, Impl, OFFSET>,
SetLine: SetLine::<Identity, Impl, OFFSET>,
SetCancelMsg: SetCancelMsg::<Identity, Impl, OFFSET>,
Timer: Timer::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IProgressDialog as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
pub trait IPropertyKeyStore_Impl: Sized {
fn GetKeyCount(&self) -> ::windows_core::Result<i32>;
fn GetKeyAt(&self, index: i32, pkey: *mut PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<()>;
fn AppendKey(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<()>;
fn DeleteKey(&self, index: i32) -> ::windows_core::Result<()>;
fn IsKeyInStore(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<()>;
fn RemoveKey(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl ::windows_core::RuntimeName for IPropertyKeyStore {}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl IPropertyKeyStore_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPropertyKeyStore_Impl, const OFFSET: isize>() -> IPropertyKeyStore_Vtbl {
unsafe extern "system" fn GetKeyCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPropertyKeyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, keycount: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetKeyCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(keycount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetKeyAt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPropertyKeyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: i32, pkey: *mut PropertiesSystem::PROPERTYKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKeyAt(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&pkey)).into()
}
unsafe extern "system" fn AppendKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPropertyKeyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendKey(::core::mem::transmute_copy(&key)).into()
}
unsafe extern "system" fn DeleteKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPropertyKeyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteKey(::core::mem::transmute_copy(&index)).into()
}
unsafe extern "system" fn IsKeyInStore<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPropertyKeyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsKeyInStore(::core::mem::transmute_copy(&key)).into()
}
unsafe extern "system" fn RemoveKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPropertyKeyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveKey(::core::mem::transmute_copy(&key)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetKeyCount: GetKeyCount::<Identity, Impl, OFFSET>,
GetKeyAt: GetKeyAt::<Identity, Impl, OFFSET>,
AppendKey: AppendKey::<Identity, Impl, OFFSET>,
DeleteKey: DeleteKey::<Identity, Impl, OFFSET>,
IsKeyInStore: IsKeyInStore::<Identity, Impl, OFFSET>,
RemoveKey: RemoveKey::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPropertyKeyStore as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IPublishedApp_Impl: Sized + IShellApp_Impl {
fn Install(&self, pstinstall: *const super::super::Foundation::SYSTEMTIME) -> ::windows_core::Result<()>;
fn GetPublishedAppInfo(&self, ppai: *mut PUBAPPINFO) -> ::windows_core::Result<()>;
fn Unschedule(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IPublishedApp {}
#[cfg(feature = "Win32_Foundation")]
impl IPublishedApp_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPublishedApp_Impl, const OFFSET: isize>() -> IPublishedApp_Vtbl {
unsafe extern "system" fn Install<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPublishedApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstinstall: *const super::super::Foundation::SYSTEMTIME) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Install(::core::mem::transmute_copy(&pstinstall)).into()
}
unsafe extern "system" fn GetPublishedAppInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPublishedApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppai: *mut PUBAPPINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPublishedAppInfo(::core::mem::transmute_copy(&ppai)).into()
}
unsafe extern "system" fn Unschedule<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPublishedApp_Impl, const OFFSET: isize>(this: *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.Unschedule().into()
}
Self {
base__: IShellApp_Vtbl::new::<Identity, Impl, OFFSET>(),
Install: Install::<Identity, Impl, OFFSET>,
GetPublishedAppInfo: GetPublishedAppInfo::<Identity, Impl, OFFSET>,
Unschedule: Unschedule::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPublishedApp as ::windows_core::ComInterface>::IID || iid == &<IShellApp as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IPublishedApp2_Impl: Sized + IPublishedApp_Impl {
fn Install2(&self, pstinstall: *const super::super::Foundation::SYSTEMTIME, hwndparent: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IPublishedApp2 {}
#[cfg(feature = "Win32_Foundation")]
impl IPublishedApp2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPublishedApp2_Impl, const OFFSET: isize>() -> IPublishedApp2_Vtbl {
unsafe extern "system" fn Install2<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPublishedApp2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstinstall: *const super::super::Foundation::SYSTEMTIME, hwndparent: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Install2(::core::mem::transmute_copy(&pstinstall), ::core::mem::transmute_copy(&hwndparent)).into()
}
Self { base__: IPublishedApp_Vtbl::new::<Identity, Impl, OFFSET>(), Install2: Install2::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPublishedApp2 as ::windows_core::ComInterface>::IID || iid == &<IShellApp as ::windows_core::ComInterface>::IID || iid == &<IPublishedApp as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Data_Xml_MsXml\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Controls\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com", feature = "Win32_UI_Controls"))]
pub trait IPublishingWizard_Impl: Sized + IWizardExtension_Impl {
fn Initialize(&self, pdo: ::core::option::Option<&super::super::System::Com::IDataObject>, dwoptions: u32, pszservicescope: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetTransferManifest(&self, phrfromtransfer: *mut ::windows_core::HRESULT, pdocmanifest: *mut ::core::option::Option<super::super::Data::Xml::MsXml::IXMLDOMDocument>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com", feature = "Win32_UI_Controls"))]
impl ::windows_core::RuntimeName for IPublishingWizard {}
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com", feature = "Win32_UI_Controls"))]
impl IPublishingWizard_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPublishingWizard_Impl, const OFFSET: isize>() -> IPublishingWizard_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPublishingWizard_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdo: *mut ::core::ffi::c_void, dwoptions: u32, pszservicescope: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::windows_core::from_raw_borrowed(&pdo), ::core::mem::transmute_copy(&dwoptions), ::core::mem::transmute(&pszservicescope)).into()
}
unsafe extern "system" fn GetTransferManifest<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPublishingWizard_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phrfromtransfer: *mut ::windows_core::HRESULT, pdocmanifest: *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();
this.GetTransferManifest(::core::mem::transmute_copy(&phrfromtransfer), ::core::mem::transmute_copy(&pdocmanifest)).into()
}
Self {
base__: IWizardExtension_Vtbl::new::<Identity, Impl, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
GetTransferManifest: GetTransferManifest::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPublishingWizard as ::windows_core::ComInterface>::IID || iid == &<IWizardExtension as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))]
pub trait IQueryAssociations_Impl: Sized {
fn Init(&self, flags: ASSOCF, pszassoc: &::windows_core::PCWSTR, hkprogid: super::super::System::Registry::HKEY, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn GetString(&self, flags: ASSOCF, str: ASSOCSTR, pszextra: &::windows_core::PCWSTR, pszout: ::windows_core::PWSTR, pcchout: *mut u32) -> ::windows_core::Result<()>;
fn GetKey(&self, flags: ASSOCF, key: ASSOCKEY, pszextra: &::windows_core::PCWSTR) -> ::windows_core::Result<super::super::System::Registry::HKEY>;
fn GetData(&self, flags: ASSOCF, data: ASSOCDATA, pszextra: &::windows_core::PCWSTR, pvout: *mut ::core::ffi::c_void, pcbout: *mut u32) -> ::windows_core::Result<()>;
fn GetEnum(&self, flags: ASSOCF, assocenum: ASSOCENUM, pszextra: &::windows_core::PCWSTR, riid: *const ::windows_core::GUID, ppvout: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))]
impl ::windows_core::RuntimeName for IQueryAssociations {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))]
impl IQueryAssociations_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryAssociations_Impl, const OFFSET: isize>() -> IQueryAssociations_Vtbl {
unsafe extern "system" fn Init<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryAssociations_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: ASSOCF, pszassoc: ::windows_core::PCWSTR, hkprogid: super::super::System::Registry::HKEY, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Init(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&pszassoc), ::core::mem::transmute_copy(&hkprogid), ::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn GetString<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryAssociations_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: ASSOCF, str: ASSOCSTR, pszextra: ::windows_core::PCWSTR, pszout: ::windows_core::PWSTR, pcchout: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetString(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&str), ::core::mem::transmute(&pszextra), ::core::mem::transmute_copy(&pszout), ::core::mem::transmute_copy(&pcchout)).into()
}
unsafe extern "system" fn GetKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryAssociations_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: ASSOCF, key: ASSOCKEY, pszextra: ::windows_core::PCWSTR, phkeyout: *mut super::super::System::Registry::HKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetKey(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&key), ::core::mem::transmute(&pszextra)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phkeyout, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryAssociations_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: ASSOCF, data: ASSOCDATA, pszextra: ::windows_core::PCWSTR, pvout: *mut ::core::ffi::c_void, pcbout: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetData(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&data), ::core::mem::transmute(&pszextra), ::core::mem::transmute_copy(&pvout), ::core::mem::transmute_copy(&pcbout)).into()
}
unsafe extern "system" fn GetEnum<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryAssociations_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: ASSOCF, assocenum: ASSOCENUM, pszextra: ::windows_core::PCWSTR, riid: *const ::windows_core::GUID, ppvout: *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();
this.GetEnum(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&assocenum), ::core::mem::transmute(&pszextra), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppvout)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Init: Init::<Identity, Impl, OFFSET>,
GetString: GetString::<Identity, Impl, OFFSET>,
GetKey: GetKey::<Identity, Impl, OFFSET>,
GetData: GetData::<Identity, Impl, OFFSET>,
GetEnum: GetEnum::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IQueryAssociations as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IQueryCancelAutoPlay_Impl: Sized {
fn AllowAutoPlay(&self, pszpath: &::windows_core::PCWSTR, dwcontenttype: u32, pszlabel: &::windows_core::PCWSTR, dwserialnumber: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IQueryCancelAutoPlay {}
impl IQueryCancelAutoPlay_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryCancelAutoPlay_Impl, const OFFSET: isize>() -> IQueryCancelAutoPlay_Vtbl {
unsafe extern "system" fn AllowAutoPlay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryCancelAutoPlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpath: ::windows_core::PCWSTR, dwcontenttype: u32, pszlabel: ::windows_core::PCWSTR, dwserialnumber: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AllowAutoPlay(::core::mem::transmute(&pszpath), ::core::mem::transmute_copy(&dwcontenttype), ::core::mem::transmute(&pszlabel), ::core::mem::transmute_copy(&dwserialnumber)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), AllowAutoPlay: AllowAutoPlay::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IQueryCancelAutoPlay as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IQueryCodePage_Impl: Sized {
fn GetCodePage(&self) -> ::windows_core::Result<u32>;
fn SetCodePage(&self, uicodepage: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IQueryCodePage {}
impl IQueryCodePage_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryCodePage_Impl, const OFFSET: isize>() -> IQueryCodePage_Vtbl {
unsafe extern "system" fn GetCodePage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryCodePage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puicodepage: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCodePage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puicodepage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCodePage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryCodePage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uicodepage: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCodePage(::core::mem::transmute_copy(&uicodepage)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCodePage: GetCodePage::<Identity, Impl, OFFSET>,
SetCodePage: SetCodePage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IQueryCodePage as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IQueryContinue_Impl: Sized {
fn QueryContinue(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IQueryContinue {}
impl IQueryContinue_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryContinue_Impl, const OFFSET: isize>() -> IQueryContinue_Vtbl {
unsafe extern "system" fn QueryContinue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryContinue_Impl, const OFFSET: isize>(this: *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.QueryContinue().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), QueryContinue: QueryContinue::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IQueryContinue as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IQueryContinueWithStatus_Impl: Sized + IQueryContinue_Impl {
fn SetStatusMessage(&self, psz: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IQueryContinueWithStatus {}
impl IQueryContinueWithStatus_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryContinueWithStatus_Impl, const OFFSET: isize>() -> IQueryContinueWithStatus_Vtbl {
unsafe extern "system" fn SetStatusMessage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryContinueWithStatus_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psz: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStatusMessage(::core::mem::transmute(&psz)).into()
}
Self { base__: IQueryContinue_Vtbl::new::<Identity, Impl, OFFSET>(), SetStatusMessage: SetStatusMessage::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IQueryContinueWithStatus as ::windows_core::ComInterface>::IID || iid == &<IQueryContinue as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IQueryInfo_Impl: Sized {
fn GetInfoTip(&self, dwflags: &QITIPF_FLAGS) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetInfoFlags(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IQueryInfo {}
impl IQueryInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryInfo_Impl, const OFFSET: isize>() -> IQueryInfo_Vtbl {
unsafe extern "system" fn GetInfoTip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppwsztip: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInfoTip(::core::mem::transmute(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppwsztip, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInfoFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueryInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInfoFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInfoTip: GetInfoTip::<Identity, Impl, OFFSET>,
GetInfoFlags: GetInfoFlags::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IQueryInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IRegTreeItem_Impl: Sized {
fn GetCheckState(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn SetCheckState(&self, bcheck: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IRegTreeItem {}
#[cfg(feature = "Win32_Foundation")]
impl IRegTreeItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRegTreeItem_Impl, const OFFSET: isize>() -> IRegTreeItem_Vtbl {
unsafe extern "system" fn GetCheckState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRegTreeItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbcheck: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCheckState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbcheck, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCheckState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRegTreeItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bcheck: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCheckState(::core::mem::transmute_copy(&bcheck)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCheckState: GetCheckState::<Identity, Impl, OFFSET>,
SetCheckState: SetCheckState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IRegTreeItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IRelatedItem_Impl: Sized {
fn GetItemIDList(&self) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
fn GetItem(&self) -> ::windows_core::Result<IShellItem>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IRelatedItem {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IRelatedItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRelatedItem_Impl, const OFFSET: isize>() -> IRelatedItem_Vtbl {
unsafe extern "system" fn GetItemIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRelatedItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidl: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemIDList() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRelatedItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsi: *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.GetItem() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsi, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetItemIDList: GetItemIDList::<Identity, Impl, OFFSET>,
GetItem: GetItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IRelatedItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IRemoteComputer_Impl: Sized {
fn Initialize(&self, pszmachine: &::windows_core::PCWSTR, benumerating: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IRemoteComputer {}
#[cfg(feature = "Win32_Foundation")]
impl IRemoteComputer_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRemoteComputer_Impl, const OFFSET: isize>() -> IRemoteComputer_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRemoteComputer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszmachine: ::windows_core::PCWSTR, benumerating: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute(&pszmachine), ::core::mem::transmute_copy(&benumerating)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IRemoteComputer as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IResolveShellLink_Impl: Sized {
fn ResolveShellLink(&self, punklink: ::core::option::Option<&::windows_core::IUnknown>, hwnd: super::super::Foundation::HWND, fflags: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IResolveShellLink {}
#[cfg(feature = "Win32_Foundation")]
impl IResolveShellLink_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResolveShellLink_Impl, const OFFSET: isize>() -> IResolveShellLink_Vtbl {
unsafe extern "system" fn ResolveShellLink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResolveShellLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punklink: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, fflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ResolveShellLink(::windows_core::from_raw_borrowed(&punklink), ::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&fflags)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), ResolveShellLink: ResolveShellLink::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IResolveShellLink as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IResultsFolder_Impl: Sized {
fn AddItem(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn AddIDList(&self, pidl: *const Common::ITEMIDLIST, ppidladded: *mut *mut Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn RemoveItem(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn RemoveIDList(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn RemoveAll(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IResultsFolder {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IResultsFolder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResultsFolder_Impl, const OFFSET: isize>() -> IResultsFolder_Vtbl {
unsafe extern "system" fn AddItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResultsFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.AddItem(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn AddIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResultsFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, ppidladded: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddIDList(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&ppidladded)).into()
}
unsafe extern "system" fn RemoveItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResultsFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.RemoveItem(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn RemoveIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResultsFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveIDList(::core::mem::transmute_copy(&pidl)).into()
}
unsafe extern "system" fn RemoveAll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResultsFolder_Impl, const OFFSET: isize>(this: *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.RemoveAll().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AddItem: AddItem::<Identity, Impl, OFFSET>,
AddIDList: AddIDList::<Identity, Impl, OFFSET>,
RemoveItem: RemoveItem::<Identity, Impl, OFFSET>,
RemoveIDList: RemoveIDList::<Identity, Impl, OFFSET>,
RemoveAll: RemoveAll::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IResultsFolder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IRunnableTask_Impl: Sized {
fn Run(&self) -> ::windows_core::Result<()>;
fn Kill(&self, bwait: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn Suspend(&self) -> ::windows_core::Result<()>;
fn Resume(&self) -> ::windows_core::Result<()>;
fn IsRunning(&self) -> u32;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IRunnableTask {}
#[cfg(feature = "Win32_Foundation")]
impl IRunnableTask_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRunnableTask_Impl, const OFFSET: isize>() -> IRunnableTask_Vtbl {
unsafe extern "system" fn Run<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRunnableTask_Impl, const OFFSET: isize>(this: *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.Run().into()
}
unsafe extern "system" fn Kill<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRunnableTask_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bwait: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Kill(::core::mem::transmute_copy(&bwait)).into()
}
unsafe extern "system" fn Suspend<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRunnableTask_Impl, const OFFSET: isize>(this: *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.Suspend().into()
}
unsafe extern "system" fn Resume<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRunnableTask_Impl, const OFFSET: isize>(this: *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.Resume().into()
}
unsafe extern "system" fn IsRunning<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRunnableTask_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsRunning()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Run: Run::<Identity, Impl, OFFSET>,
Kill: Kill::<Identity, Impl, OFFSET>,
Suspend: Suspend::<Identity, Impl, OFFSET>,
Resume: Resume::<Identity, Impl, OFFSET>,
IsRunning: IsRunning::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IRunnableTask as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IScriptErrorList_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn advanceError(&self) -> ::windows_core::Result<()>;
fn retreatError(&self) -> ::windows_core::Result<()>;
fn canAdvanceError(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn canRetreatError(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn getErrorLine(&self) -> ::windows_core::Result<i32>;
fn getErrorChar(&self) -> ::windows_core::Result<i32>;
fn getErrorCode(&self) -> ::windows_core::Result<i32>;
fn getErrorMsg(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn getErrorUrl(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn getAlwaysShowLockState(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn getDetailsPaneOpen(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn setDetailsPaneOpen(&self, fdetailspaneopen: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn getPerErrorDisplay(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn setPerErrorDisplay(&self, fpererrordisplay: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IScriptErrorList {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IScriptErrorList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>() -> IScriptErrorList_Vtbl {
unsafe extern "system" fn advanceError<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *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.advanceError().into()
}
unsafe extern "system" fn retreatError<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *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.retreatError().into()
}
unsafe extern "system" fn canAdvanceError<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfcanadvance: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.canAdvanceError() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfcanadvance, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn canRetreatError<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfcanretreat: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.canRetreatError() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfcanretreat, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn getErrorLine<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plline: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.getErrorLine() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plline, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn getErrorChar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plchar: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.getErrorChar() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plchar, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn getErrorCode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plcode: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.getErrorCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plcode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn getErrorMsg<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstr: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.getErrorMsg() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn getErrorUrl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstr: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.getErrorUrl() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn getAlwaysShowLockState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfalwaysshowlocked: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.getAlwaysShowLockState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfalwaysshowlocked, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn getDetailsPaneOpen<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfdetailspaneopen: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.getDetailsPaneOpen() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfdetailspaneopen, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn setDetailsPaneOpen<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fdetailspaneopen: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.setDetailsPaneOpen(::core::mem::transmute_copy(&fdetailspaneopen)).into()
}
unsafe extern "system" fn getPerErrorDisplay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfpererrordisplay: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.getPerErrorDisplay() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfpererrordisplay, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn setPerErrorDisplay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IScriptErrorList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fpererrordisplay: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.setPerErrorDisplay(::core::mem::transmute_copy(&fpererrordisplay)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
advanceError: advanceError::<Identity, Impl, OFFSET>,
retreatError: retreatError::<Identity, Impl, OFFSET>,
canAdvanceError: canAdvanceError::<Identity, Impl, OFFSET>,
canRetreatError: canRetreatError::<Identity, Impl, OFFSET>,
getErrorLine: getErrorLine::<Identity, Impl, OFFSET>,
getErrorChar: getErrorChar::<Identity, Impl, OFFSET>,
getErrorCode: getErrorCode::<Identity, Impl, OFFSET>,
getErrorMsg: getErrorMsg::<Identity, Impl, OFFSET>,
getErrorUrl: getErrorUrl::<Identity, Impl, OFFSET>,
getAlwaysShowLockState: getAlwaysShowLockState::<Identity, Impl, OFFSET>,
getDetailsPaneOpen: getDetailsPaneOpen::<Identity, Impl, OFFSET>,
setDetailsPaneOpen: setDetailsPaneOpen::<Identity, Impl, OFFSET>,
getPerErrorDisplay: getPerErrorDisplay::<Identity, Impl, OFFSET>,
setPerErrorDisplay: setPerErrorDisplay::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IScriptErrorList as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISearchBoxInfo_Impl: Sized {
fn GetCondition(&self, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetText(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
impl ::windows_core::RuntimeName for ISearchBoxInfo {}
impl ISearchBoxInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchBoxInfo_Impl, const OFFSET: isize>() -> ISearchBoxInfo_Vtbl {
unsafe extern "system" fn GetCondition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchBoxInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetCondition(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchBoxInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsz: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetText() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsz, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCondition: GetCondition::<Identity, Impl, OFFSET>,
GetText: GetText::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISearchBoxInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISearchContext_Impl: Sized {
fn GetSearchUrl(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetSearchText(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetSearchStyle(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for ISearchContext {}
impl ISearchContext_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchContext_Impl, const OFFSET: isize>() -> ISearchContext_Vtbl {
unsafe extern "system" fn GetSearchUrl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrsearchurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSearchUrl() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrsearchurl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSearchText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrsearchtext: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSearchText() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrsearchtext, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSearchStyle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwsearchstyle: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSearchStyle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwsearchstyle, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSearchUrl: GetSearchUrl::<Identity, Impl, OFFSET>,
GetSearchText: GetSearchText::<Identity, Impl, OFFSET>,
GetSearchStyle: GetSearchStyle::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISearchContext as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_System_Search\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Search", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait ISearchFolderItemFactory_Impl: Sized {
fn SetDisplayName(&self, pszdisplayname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetFolderTypeID(&self, ftid: &::windows_core::GUID) -> ::windows_core::Result<()>;
fn SetFolderLogicalViewMode(&self, flvm: FOLDERLOGICALVIEWMODE) -> ::windows_core::Result<()>;
fn SetIconSize(&self, iiconsize: i32) -> ::windows_core::Result<()>;
fn SetVisibleColumns(&self, cvisiblecolumns: u32, rgkey: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<()>;
fn SetSortColumns(&self, csortcolumns: u32, rgsortcolumns: *const SORTCOLUMN) -> ::windows_core::Result<()>;
fn SetGroupColumn(&self, keygroup: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<()>;
fn SetStacks(&self, cstackkeys: u32, rgstackkeys: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<()>;
fn SetScope(&self, psiascope: ::core::option::Option<&IShellItemArray>) -> ::windows_core::Result<()>;
fn SetCondition(&self, pcondition: ::core::option::Option<&super::super::System::Search::ICondition>) -> ::windows_core::Result<()>;
fn GetShellItem(&self, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetIDList(&self) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Search", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for ISearchFolderItemFactory {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Search", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ISearchFolderItemFactory_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>() -> ISearchFolderItemFactory_Vtbl {
unsafe extern "system" fn SetDisplayName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdisplayname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDisplayName(::core::mem::transmute(&pszdisplayname)).into()
}
unsafe extern "system" fn SetFolderTypeID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ftid: ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFolderTypeID(::core::mem::transmute(&ftid)).into()
}
unsafe extern "system" fn SetFolderLogicalViewMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flvm: FOLDERLOGICALVIEWMODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFolderLogicalViewMode(::core::mem::transmute_copy(&flvm)).into()
}
unsafe extern "system" fn SetIconSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iiconsize: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIconSize(::core::mem::transmute_copy(&iiconsize)).into()
}
unsafe extern "system" fn SetVisibleColumns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cvisiblecolumns: u32, rgkey: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVisibleColumns(::core::mem::transmute_copy(&cvisiblecolumns), ::core::mem::transmute_copy(&rgkey)).into()
}
unsafe extern "system" fn SetSortColumns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, csortcolumns: u32, rgsortcolumns: *const SORTCOLUMN) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSortColumns(::core::mem::transmute_copy(&csortcolumns), ::core::mem::transmute_copy(&rgsortcolumns)).into()
}
unsafe extern "system" fn SetGroupColumn<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, keygroup: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetGroupColumn(::core::mem::transmute_copy(&keygroup)).into()
}
unsafe extern "system" fn SetStacks<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cstackkeys: u32, rgstackkeys: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStacks(::core::mem::transmute_copy(&cstackkeys), ::core::mem::transmute_copy(&rgstackkeys)).into()
}
unsafe extern "system" fn SetScope<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiascope: *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.SetScope(::windows_core::from_raw_borrowed(&psiascope)).into()
}
unsafe extern "system" fn SetCondition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcondition: *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.SetCondition(::windows_core::from_raw_borrowed(&pcondition)).into()
}
unsafe extern "system" fn GetShellItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetShellItem(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISearchFolderItemFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidl: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIDList() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetDisplayName: SetDisplayName::<Identity, Impl, OFFSET>,
SetFolderTypeID: SetFolderTypeID::<Identity, Impl, OFFSET>,
SetFolderLogicalViewMode: SetFolderLogicalViewMode::<Identity, Impl, OFFSET>,
SetIconSize: SetIconSize::<Identity, Impl, OFFSET>,
SetVisibleColumns: SetVisibleColumns::<Identity, Impl, OFFSET>,
SetSortColumns: SetSortColumns::<Identity, Impl, OFFSET>,
SetGroupColumn: SetGroupColumn::<Identity, Impl, OFFSET>,
SetStacks: SetStacks::<Identity, Impl, OFFSET>,
SetScope: SetScope::<Identity, Impl, OFFSET>,
SetCondition: SetCondition::<Identity, Impl, OFFSET>,
GetShellItem: GetShellItem::<Identity, Impl, OFFSET>,
GetIDList: GetIDList::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISearchFolderItemFactory as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait ISharedBitmap_Impl: Sized {
fn GetSharedBitmap(&self) -> ::windows_core::Result<super::super::Graphics::Gdi::HBITMAP>;
fn GetSize(&self) -> ::windows_core::Result<super::super::Foundation::SIZE>;
fn GetFormat(&self) -> ::windows_core::Result<WTS_ALPHATYPE>;
fn InitializeBitmap(&self, hbm: super::super::Graphics::Gdi::HBITMAP, wtsat: WTS_ALPHATYPE) -> ::windows_core::Result<()>;
fn Detach(&self) -> ::windows_core::Result<super::super::Graphics::Gdi::HBITMAP>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for ISharedBitmap {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ISharedBitmap_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharedBitmap_Impl, const OFFSET: isize>() -> ISharedBitmap_Vtbl {
unsafe extern "system" fn GetSharedBitmap<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharedBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phbm: *mut super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSharedBitmap() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phbm, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharedBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psize: *mut super::super::Foundation::SIZE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psize, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharedBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pat: *mut WTS_ALPHATYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFormat() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pat, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn InitializeBitmap<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharedBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hbm: super::super::Graphics::Gdi::HBITMAP, wtsat: WTS_ALPHATYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitializeBitmap(::core::mem::transmute_copy(&hbm), ::core::mem::transmute_copy(&wtsat)).into()
}
unsafe extern "system" fn Detach<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharedBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phbm: *mut super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Detach() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phbm, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSharedBitmap: GetSharedBitmap::<Identity, Impl, OFFSET>,
GetSize: GetSize::<Identity, Impl, OFFSET>,
GetFormat: GetFormat::<Identity, Impl, OFFSET>,
InitializeBitmap: InitializeBitmap::<Identity, Impl, OFFSET>,
Detach: Detach::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISharedBitmap as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISharingConfigurationManager_Impl: Sized {
fn CreateShare(&self, dsid: DEF_SHARE_ID, role: SHARE_ROLE) -> ::windows_core::Result<()>;
fn DeleteShare(&self, dsid: DEF_SHARE_ID) -> ::windows_core::Result<()>;
fn ShareExists(&self, dsid: DEF_SHARE_ID) -> ::windows_core::Result<()>;
fn GetSharePermissions(&self, dsid: DEF_SHARE_ID) -> ::windows_core::Result<SHARE_ROLE>;
fn SharePrinters(&self) -> ::windows_core::Result<()>;
fn StopSharingPrinters(&self) -> ::windows_core::Result<()>;
fn ArePrintersShared(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ISharingConfigurationManager {}
impl ISharingConfigurationManager_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharingConfigurationManager_Impl, const OFFSET: isize>() -> ISharingConfigurationManager_Vtbl {
unsafe extern "system" fn CreateShare<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharingConfigurationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dsid: DEF_SHARE_ID, role: SHARE_ROLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateShare(::core::mem::transmute_copy(&dsid), ::core::mem::transmute_copy(&role)).into()
}
unsafe extern "system" fn DeleteShare<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharingConfigurationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dsid: DEF_SHARE_ID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteShare(::core::mem::transmute_copy(&dsid)).into()
}
unsafe extern "system" fn ShareExists<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharingConfigurationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dsid: DEF_SHARE_ID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShareExists(::core::mem::transmute_copy(&dsid)).into()
}
unsafe extern "system" fn GetSharePermissions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharingConfigurationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dsid: DEF_SHARE_ID, prole: *mut SHARE_ROLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSharePermissions(::core::mem::transmute_copy(&dsid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prole, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SharePrinters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharingConfigurationManager_Impl, const OFFSET: isize>(this: *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.SharePrinters().into()
}
unsafe extern "system" fn StopSharingPrinters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharingConfigurationManager_Impl, const OFFSET: isize>(this: *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.StopSharingPrinters().into()
}
unsafe extern "system" fn ArePrintersShared<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISharingConfigurationManager_Impl, const OFFSET: isize>(this: *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.ArePrintersShared().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CreateShare: CreateShare::<Identity, Impl, OFFSET>,
DeleteShare: DeleteShare::<Identity, Impl, OFFSET>,
ShareExists: ShareExists::<Identity, Impl, OFFSET>,
GetSharePermissions: GetSharePermissions::<Identity, Impl, OFFSET>,
SharePrinters: SharePrinters::<Identity, Impl, OFFSET>,
StopSharingPrinters: StopSharingPrinters::<Identity, Impl, OFFSET>,
ArePrintersShared: ArePrintersShared::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISharingConfigurationManager as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IShellApp_Impl: Sized {
fn GetAppInfo(&self, pai: *mut APPINFODATA) -> ::windows_core::Result<()>;
fn GetPossibleActions(&self) -> ::windows_core::Result<u32>;
fn GetSlowAppInfo(&self, psaid: *mut SLOWAPPINFO) -> ::windows_core::Result<()>;
fn GetCachedSlowAppInfo(&self, psaid: *mut SLOWAPPINFO) -> ::windows_core::Result<()>;
fn IsInstalled(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IShellApp {}
#[cfg(feature = "Win32_Foundation")]
impl IShellApp_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellApp_Impl, const OFFSET: isize>() -> IShellApp_Vtbl {
unsafe extern "system" fn GetAppInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pai: *mut APPINFODATA) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAppInfo(::core::mem::transmute_copy(&pai)).into()
}
unsafe extern "system" fn GetPossibleActions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwactions: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPossibleActions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwactions, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSlowAppInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psaid: *mut SLOWAPPINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSlowAppInfo(::core::mem::transmute_copy(&psaid)).into()
}
unsafe extern "system" fn GetCachedSlowAppInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psaid: *mut SLOWAPPINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCachedSlowAppInfo(::core::mem::transmute_copy(&psaid)).into()
}
unsafe extern "system" fn IsInstalled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellApp_Impl, const OFFSET: isize>(this: *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.IsInstalled().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetAppInfo: GetAppInfo::<Identity, Impl, OFFSET>,
GetPossibleActions: GetPossibleActions::<Identity, Impl, OFFSET>,
GetSlowAppInfo: GetSlowAppInfo::<Identity, Impl, OFFSET>,
GetCachedSlowAppInfo: GetCachedSlowAppInfo::<Identity, Impl, OFFSET>,
IsInstalled: IsInstalled::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellApp as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IShellBrowser_Impl: Sized + super::super::System::Ole::IOleWindow_Impl {
fn InsertMenusSB(&self, hmenushared: super::WindowsAndMessaging::HMENU, lpmenuwidths: *mut super::super::System::Ole::OLEMENUGROUPWIDTHS) -> ::windows_core::Result<()>;
fn SetMenuSB(&self, hmenushared: super::WindowsAndMessaging::HMENU, holemenures: isize, hwndactiveobject: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn RemoveMenusSB(&self, hmenushared: super::WindowsAndMessaging::HMENU) -> ::windows_core::Result<()>;
fn SetStatusTextSB(&self, pszstatustext: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn EnableModelessSB(&self, fenable: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn TranslateAcceleratorSB(&self, pmsg: *const super::WindowsAndMessaging::MSG, wid: u16) -> ::windows_core::Result<()>;
fn BrowseObject(&self, pidl: *const Common::ITEMIDLIST, wflags: u32) -> ::windows_core::Result<()>;
fn GetViewStateStream(&self, grfmode: u32) -> ::windows_core::Result<super::super::System::Com::IStream>;
fn GetControlWindow(&self, id: u32) -> ::windows_core::Result<super::super::Foundation::HWND>;
fn SendControlMsg(&self, id: u32, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM, pret: *mut super::super::Foundation::LRESULT) -> ::windows_core::Result<()>;
fn QueryActiveShellView(&self) -> ::windows_core::Result<IShellView>;
fn OnViewWindowActive(&self, pshv: ::core::option::Option<&IShellView>) -> ::windows_core::Result<()>;
fn SetToolbarItems(&self, lpbuttons: *const super::Controls::TBBUTTON, nbuttons: u32, uflags: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IShellBrowser {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IShellBrowser_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>() -> IShellBrowser_Vtbl {
unsafe extern "system" fn InsertMenusSB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hmenushared: super::WindowsAndMessaging::HMENU, lpmenuwidths: *mut super::super::System::Ole::OLEMENUGROUPWIDTHS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InsertMenusSB(::core::mem::transmute_copy(&hmenushared), ::core::mem::transmute_copy(&lpmenuwidths)).into()
}
unsafe extern "system" fn SetMenuSB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hmenushared: super::WindowsAndMessaging::HMENU, holemenures: isize, hwndactiveobject: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMenuSB(::core::mem::transmute_copy(&hmenushared), ::core::mem::transmute_copy(&holemenures), ::core::mem::transmute_copy(&hwndactiveobject)).into()
}
unsafe extern "system" fn RemoveMenusSB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hmenushared: super::WindowsAndMessaging::HMENU) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveMenusSB(::core::mem::transmute_copy(&hmenushared)).into()
}
unsafe extern "system" fn SetStatusTextSB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszstatustext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStatusTextSB(::core::mem::transmute(&pszstatustext)).into()
}
unsafe extern "system" fn EnableModelessSB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fenable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableModelessSB(::core::mem::transmute_copy(&fenable)).into()
}
unsafe extern "system" fn TranslateAcceleratorSB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *const super::WindowsAndMessaging::MSG, wid: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TranslateAcceleratorSB(::core::mem::transmute_copy(&pmsg), ::core::mem::transmute_copy(&wid)).into()
}
unsafe extern "system" fn BrowseObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, wflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BrowseObject(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&wflags)).into()
}
unsafe extern "system" fn GetViewStateStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, grfmode: u32, ppstrm: *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.GetViewStateStream(::core::mem::transmute_copy(&grfmode)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppstrm, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetControlWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, phwnd: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetControlWindow(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phwnd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SendControlMsg<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM, pret: *mut super::super::Foundation::LRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SendControlMsg(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam), ::core::mem::transmute_copy(&pret)).into()
}
unsafe extern "system" fn QueryActiveShellView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppshv: *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.QueryActiveShellView() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppshv, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OnViewWindowActive<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pshv: *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.OnViewWindowActive(::windows_core::from_raw_borrowed(&pshv)).into()
}
unsafe extern "system" fn SetToolbarItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpbuttons: *const super::Controls::TBBUTTON, nbuttons: u32, uflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetToolbarItems(::core::mem::transmute_copy(&lpbuttons), ::core::mem::transmute_copy(&nbuttons), ::core::mem::transmute_copy(&uflags)).into()
}
Self {
base__: super::super::System::Ole::IOleWindow_Vtbl::new::<Identity, Impl, OFFSET>(),
InsertMenusSB: InsertMenusSB::<Identity, Impl, OFFSET>,
SetMenuSB: SetMenuSB::<Identity, Impl, OFFSET>,
RemoveMenusSB: RemoveMenusSB::<Identity, Impl, OFFSET>,
SetStatusTextSB: SetStatusTextSB::<Identity, Impl, OFFSET>,
EnableModelessSB: EnableModelessSB::<Identity, Impl, OFFSET>,
TranslateAcceleratorSB: TranslateAcceleratorSB::<Identity, Impl, OFFSET>,
BrowseObject: BrowseObject::<Identity, Impl, OFFSET>,
GetViewStateStream: GetViewStateStream::<Identity, Impl, OFFSET>,
GetControlWindow: GetControlWindow::<Identity, Impl, OFFSET>,
SendControlMsg: SendControlMsg::<Identity, Impl, OFFSET>,
QueryActiveShellView: QueryActiveShellView::<Identity, Impl, OFFSET>,
OnViewWindowActive: OnViewWindowActive::<Identity, Impl, OFFSET>,
SetToolbarItems: SetToolbarItems::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellBrowser as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IShellChangeNotify_Impl: Sized {
fn OnChange(&self, levent: i32, pidl1: *const Common::ITEMIDLIST, pidl2: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IShellChangeNotify {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IShellChangeNotify_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellChangeNotify_Impl, const OFFSET: isize>() -> IShellChangeNotify_Vtbl {
unsafe extern "system" fn OnChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellChangeNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, levent: i32, pidl1: *const Common::ITEMIDLIST, pidl2: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnChange(::core::mem::transmute_copy(&levent), ::core::mem::transmute_copy(&pidl1), ::core::mem::transmute_copy(&pidl2)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), OnChange: OnChange::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellChangeNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IShellDetails_Impl: Sized {
fn GetDetailsOf(&self, pidl: *const Common::ITEMIDLIST, icolumn: u32, pdetails: *mut Common::SHELLDETAILS) -> ::windows_core::Result<()>;
fn ColumnClick(&self, icolumn: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IShellDetails {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IShellDetails_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDetails_Impl, const OFFSET: isize>() -> IShellDetails_Vtbl {
unsafe extern "system" fn GetDetailsOf<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDetails_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, icolumn: u32, pdetails: *mut Common::SHELLDETAILS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDetailsOf(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&icolumn), ::core::mem::transmute_copy(&pdetails)).into()
}
unsafe extern "system" fn ColumnClick<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDetails_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, icolumn: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ColumnClick(::core::mem::transmute_copy(&icolumn)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDetailsOf: GetDetailsOf::<Identity, Impl, OFFSET>,
ColumnClick: ColumnClick::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellDetails as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellDispatch_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Application(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Parent(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn NameSpace(&self, vdir: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<Folder>;
fn BrowseForFolder(&self, hwnd: i32, title: &::windows_core::BSTR, options: i32, rootfolder: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<Folder>;
fn Windows(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Open(&self, vdir: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn Explore(&self, vdir: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn MinimizeAll(&self) -> ::windows_core::Result<()>;
fn UndoMinimizeALL(&self) -> ::windows_core::Result<()>;
fn FileRun(&self) -> ::windows_core::Result<()>;
fn CascadeWindows(&self) -> ::windows_core::Result<()>;
fn TileVertically(&self) -> ::windows_core::Result<()>;
fn TileHorizontally(&self) -> ::windows_core::Result<()>;
fn ShutdownWindows(&self) -> ::windows_core::Result<()>;
fn Suspend(&self) -> ::windows_core::Result<()>;
fn EjectPC(&self) -> ::windows_core::Result<()>;
fn SetTime(&self) -> ::windows_core::Result<()>;
fn TrayProperties(&self) -> ::windows_core::Result<()>;
fn Help(&self) -> ::windows_core::Result<()>;
fn FindFiles(&self) -> ::windows_core::Result<()>;
fn FindComputer(&self) -> ::windows_core::Result<()>;
fn RefreshMenu(&self) -> ::windows_core::Result<()>;
fn ControlPanelItem(&self, bstrdir: &::windows_core::BSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellDispatch {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellDispatch_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>() -> IShellDispatch_Vtbl {
unsafe extern "system" fn Application<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Application() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Parent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Parent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn NameSpace<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vdir: super::super::System::Variant::VARIANT, ppsdf: *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.NameSpace(::core::mem::transmute(&vdir)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsdf, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn BrowseForFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: i32, title: ::std::mem::MaybeUninit<::windows_core::BSTR>, options: i32, rootfolder: super::super::System::Variant::VARIANT, ppsdf: *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.BrowseForFolder(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute(&title), ::core::mem::transmute_copy(&options), ::core::mem::transmute(&rootfolder)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsdf, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Windows<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Windows() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Open<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vdir: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Open(::core::mem::transmute(&vdir)).into()
}
unsafe extern "system" fn Explore<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vdir: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Explore(::core::mem::transmute(&vdir)).into()
}
unsafe extern "system" fn MinimizeAll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.MinimizeAll().into()
}
unsafe extern "system" fn UndoMinimizeALL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.UndoMinimizeALL().into()
}
unsafe extern "system" fn FileRun<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.FileRun().into()
}
unsafe extern "system" fn CascadeWindows<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.CascadeWindows().into()
}
unsafe extern "system" fn TileVertically<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.TileVertically().into()
}
unsafe extern "system" fn TileHorizontally<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.TileHorizontally().into()
}
unsafe extern "system" fn ShutdownWindows<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.ShutdownWindows().into()
}
unsafe extern "system" fn Suspend<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.Suspend().into()
}
unsafe extern "system" fn EjectPC<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.EjectPC().into()
}
unsafe extern "system" fn SetTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.SetTime().into()
}
unsafe extern "system" fn TrayProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.TrayProperties().into()
}
unsafe extern "system" fn Help<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.Help().into()
}
unsafe extern "system" fn FindFiles<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.FindFiles().into()
}
unsafe extern "system" fn FindComputer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.FindComputer().into()
}
unsafe extern "system" fn RefreshMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *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.RefreshMenu().into()
}
unsafe extern "system" fn ControlPanelItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrdir: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlPanelItem(::core::mem::transmute(&bstrdir)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Application: Application::<Identity, Impl, OFFSET>,
Parent: Parent::<Identity, Impl, OFFSET>,
NameSpace: NameSpace::<Identity, Impl, OFFSET>,
BrowseForFolder: BrowseForFolder::<Identity, Impl, OFFSET>,
Windows: Windows::<Identity, Impl, OFFSET>,
Open: Open::<Identity, Impl, OFFSET>,
Explore: Explore::<Identity, Impl, OFFSET>,
MinimizeAll: MinimizeAll::<Identity, Impl, OFFSET>,
UndoMinimizeALL: UndoMinimizeALL::<Identity, Impl, OFFSET>,
FileRun: FileRun::<Identity, Impl, OFFSET>,
CascadeWindows: CascadeWindows::<Identity, Impl, OFFSET>,
TileVertically: TileVertically::<Identity, Impl, OFFSET>,
TileHorizontally: TileHorizontally::<Identity, Impl, OFFSET>,
ShutdownWindows: ShutdownWindows::<Identity, Impl, OFFSET>,
Suspend: Suspend::<Identity, Impl, OFFSET>,
EjectPC: EjectPC::<Identity, Impl, OFFSET>,
SetTime: SetTime::<Identity, Impl, OFFSET>,
TrayProperties: TrayProperties::<Identity, Impl, OFFSET>,
Help: Help::<Identity, Impl, OFFSET>,
FindFiles: FindFiles::<Identity, Impl, OFFSET>,
FindComputer: FindComputer::<Identity, Impl, OFFSET>,
RefreshMenu: RefreshMenu::<Identity, Impl, OFFSET>,
ControlPanelItem: ControlPanelItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellDispatch as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellDispatch2_Impl: Sized + IShellDispatch_Impl {
fn IsRestricted(&self, group: &::windows_core::BSTR, restriction: &::windows_core::BSTR) -> ::windows_core::Result<i32>;
fn ShellExecute(&self, file: &::windows_core::BSTR, vargs: &super::super::System::Variant::VARIANT, vdir: &super::super::System::Variant::VARIANT, voperation: &super::super::System::Variant::VARIANT, vshow: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn FindPrinter(&self, name: &::windows_core::BSTR, location: &::windows_core::BSTR, model: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn GetSystemInformation(&self, name: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn ServiceStart(&self, servicename: &::windows_core::BSTR, persistent: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn ServiceStop(&self, servicename: &::windows_core::BSTR, persistent: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn IsServiceRunning(&self, servicename: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn CanStartStopService(&self, servicename: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn ShowBrowserBar(&self, bstrclsid: &::windows_core::BSTR, bshow: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellDispatch2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellDispatch2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch2_Impl, const OFFSET: isize>() -> IShellDispatch2_Vtbl {
unsafe extern "system" fn IsRestricted<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, group: ::std::mem::MaybeUninit<::windows_core::BSTR>, restriction: ::std::mem::MaybeUninit<::windows_core::BSTR>, plrestrictvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsRestricted(::core::mem::transmute(&group), ::core::mem::transmute(&restriction)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plrestrictvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ShellExecute<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::std::mem::MaybeUninit<::windows_core::BSTR>, vargs: super::super::System::Variant::VARIANT, vdir: super::super::System::Variant::VARIANT, voperation: super::super::System::Variant::VARIANT, vshow: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShellExecute(::core::mem::transmute(&file), ::core::mem::transmute(&vargs), ::core::mem::transmute(&vdir), ::core::mem::transmute(&voperation), ::core::mem::transmute(&vshow)).into()
}
unsafe extern "system" fn FindPrinter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::std::mem::MaybeUninit<::windows_core::BSTR>, location: ::std::mem::MaybeUninit<::windows_core::BSTR>, model: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindPrinter(::core::mem::transmute(&name), ::core::mem::transmute(&location), ::core::mem::transmute(&model)).into()
}
unsafe extern "system" fn GetSystemInformation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::std::mem::MaybeUninit<::windows_core::BSTR>, pv: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSystemInformation(::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pv, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ServiceStart<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, servicename: ::std::mem::MaybeUninit<::windows_core::BSTR>, persistent: super::super::System::Variant::VARIANT, psuccess: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ServiceStart(::core::mem::transmute(&servicename), ::core::mem::transmute(&persistent)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psuccess, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ServiceStop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, servicename: ::std::mem::MaybeUninit<::windows_core::BSTR>, persistent: super::super::System::Variant::VARIANT, psuccess: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ServiceStop(::core::mem::transmute(&servicename), ::core::mem::transmute(&persistent)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psuccess, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsServiceRunning<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, servicename: ::std::mem::MaybeUninit<::windows_core::BSTR>, prunning: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsServiceRunning(::core::mem::transmute(&servicename)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prunning, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CanStartStopService<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, servicename: ::std::mem::MaybeUninit<::windows_core::BSTR>, pcanstartstop: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CanStartStopService(::core::mem::transmute(&servicename)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcanstartstop, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ShowBrowserBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrclsid: ::std::mem::MaybeUninit<::windows_core::BSTR>, bshow: super::super::System::Variant::VARIANT, psuccess: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ShowBrowserBar(::core::mem::transmute(&bstrclsid), ::core::mem::transmute(&bshow)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psuccess, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IShellDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
IsRestricted: IsRestricted::<Identity, Impl, OFFSET>,
ShellExecute: ShellExecute::<Identity, Impl, OFFSET>,
FindPrinter: FindPrinter::<Identity, Impl, OFFSET>,
GetSystemInformation: GetSystemInformation::<Identity, Impl, OFFSET>,
ServiceStart: ServiceStart::<Identity, Impl, OFFSET>,
ServiceStop: ServiceStop::<Identity, Impl, OFFSET>,
IsServiceRunning: IsServiceRunning::<Identity, Impl, OFFSET>,
CanStartStopService: CanStartStopService::<Identity, Impl, OFFSET>,
ShowBrowserBar: ShowBrowserBar::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellDispatch2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellDispatch3_Impl: Sized + IShellDispatch2_Impl {
fn AddToRecent(&self, varfile: &super::super::System::Variant::VARIANT, bstrcategory: &::windows_core::BSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellDispatch3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellDispatch3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch3_Impl, const OFFSET: isize>() -> IShellDispatch3_Vtbl {
unsafe extern "system" fn AddToRecent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, varfile: super::super::System::Variant::VARIANT, bstrcategory: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddToRecent(::core::mem::transmute(&varfile), ::core::mem::transmute(&bstrcategory)).into()
}
Self { base__: IShellDispatch2_Vtbl::new::<Identity, Impl, OFFSET>(), AddToRecent: AddToRecent::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellDispatch3 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellDispatch4_Impl: Sized + IShellDispatch3_Impl {
fn WindowsSecurity(&self) -> ::windows_core::Result<()>;
fn ToggleDesktop(&self) -> ::windows_core::Result<()>;
fn ExplorerPolicy(&self, bstrpolicyname: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn GetSetting(&self, lsetting: i32) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellDispatch4 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellDispatch4_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch4_Impl, const OFFSET: isize>() -> IShellDispatch4_Vtbl {
unsafe extern "system" fn WindowsSecurity<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch4_Impl, const OFFSET: isize>(this: *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.WindowsSecurity().into()
}
unsafe extern "system" fn ToggleDesktop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch4_Impl, const OFFSET: isize>(this: *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.ToggleDesktop().into()
}
unsafe extern "system" fn ExplorerPolicy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrpolicyname: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvalue: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ExplorerPolicy(::core::mem::transmute(&bstrpolicyname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSetting<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lsetting: i32, presult: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSetting(::core::mem::transmute_copy(&lsetting)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(presult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IShellDispatch3_Vtbl::new::<Identity, Impl, OFFSET>(),
WindowsSecurity: WindowsSecurity::<Identity, Impl, OFFSET>,
ToggleDesktop: ToggleDesktop::<Identity, Impl, OFFSET>,
ExplorerPolicy: ExplorerPolicy::<Identity, Impl, OFFSET>,
GetSetting: GetSetting::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellDispatch4 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch2 as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch3 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellDispatch5_Impl: Sized + IShellDispatch4_Impl {
fn WindowSwitcher(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellDispatch5 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellDispatch5_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch5_Impl, const OFFSET: isize>() -> IShellDispatch5_Vtbl {
unsafe extern "system" fn WindowSwitcher<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch5_Impl, const OFFSET: isize>(this: *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.WindowSwitcher().into()
}
Self { base__: IShellDispatch4_Vtbl::new::<Identity, Impl, OFFSET>(), WindowSwitcher: WindowSwitcher::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellDispatch5 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch2 as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch3 as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch4 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellDispatch6_Impl: Sized + IShellDispatch5_Impl {
fn SearchCommand(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellDispatch6 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellDispatch6_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch6_Impl, const OFFSET: isize>() -> IShellDispatch6_Vtbl {
unsafe extern "system" fn SearchCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellDispatch6_Impl, const OFFSET: isize>(this: *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.SearchCommand().into()
}
Self { base__: IShellDispatch5_Vtbl::new::<Identity, Impl, OFFSET>(), SearchCommand: SearchCommand::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellDispatch6 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch2 as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch3 as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch4 as ::windows_core::ComInterface>::IID || iid == &<IShellDispatch5 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_System_Registry\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))]
pub trait IShellExtInit_Impl: Sized {
fn Initialize(&self, pidlfolder: *const Common::ITEMIDLIST, pdtobj: ::core::option::Option<&super::super::System::Com::IDataObject>, hkeyprogid: super::super::System::Registry::HKEY) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IShellExtInit {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))]
impl IShellExtInit_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellExtInit_Impl, const OFFSET: isize>() -> IShellExtInit_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellExtInit_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlfolder: *const Common::ITEMIDLIST, pdtobj: *mut ::core::ffi::c_void, hkeyprogid: super::super::System::Registry::HKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&pidlfolder), ::windows_core::from_raw_borrowed(&pdtobj), ::core::mem::transmute_copy(&hkeyprogid)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellExtInit as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellFavoritesNameSpace_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn MoveSelectionUp(&self) -> ::windows_core::Result<()>;
fn MoveSelectionDown(&self) -> ::windows_core::Result<()>;
fn ResetSort(&self) -> ::windows_core::Result<()>;
fn NewFolder(&self) -> ::windows_core::Result<()>;
fn Synchronize(&self) -> ::windows_core::Result<()>;
fn Import(&self) -> ::windows_core::Result<()>;
fn Export(&self) -> ::windows_core::Result<()>;
fn InvokeContextMenuCommand(&self, strcommand: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn MoveSelectionTo(&self) -> ::windows_core::Result<()>;
fn SubscriptionsEnabled(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn CreateSubscriptionForSelection(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn DeleteSubscriptionForSelection(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetRoot(&self, bstrfullpath: &::windows_core::BSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellFavoritesNameSpace {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellFavoritesNameSpace_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>() -> IShellFavoritesNameSpace_Vtbl {
unsafe extern "system" fn MoveSelectionUp<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *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.MoveSelectionUp().into()
}
unsafe extern "system" fn MoveSelectionDown<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *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.MoveSelectionDown().into()
}
unsafe extern "system" fn ResetSort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *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.ResetSort().into()
}
unsafe extern "system" fn NewFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *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.NewFolder().into()
}
unsafe extern "system" fn Synchronize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *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.Synchronize().into()
}
unsafe extern "system" fn Import<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *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.Import().into()
}
unsafe extern "system" fn Export<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *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.Export().into()
}
unsafe extern "system" fn InvokeContextMenuCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strcommand: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeContextMenuCommand(::core::mem::transmute(&strcommand)).into()
}
unsafe extern "system" fn MoveSelectionTo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *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.MoveSelectionTo().into()
}
unsafe extern "system" fn SubscriptionsEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbool: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SubscriptionsEnabled() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbool, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSubscriptionForSelection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbool: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateSubscriptionForSelection() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbool, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DeleteSubscriptionForSelection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbool: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DeleteSubscriptionForSelection() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbool, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRoot<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFavoritesNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrfullpath: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRoot(::core::mem::transmute(&bstrfullpath)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
MoveSelectionUp: MoveSelectionUp::<Identity, Impl, OFFSET>,
MoveSelectionDown: MoveSelectionDown::<Identity, Impl, OFFSET>,
ResetSort: ResetSort::<Identity, Impl, OFFSET>,
NewFolder: NewFolder::<Identity, Impl, OFFSET>,
Synchronize: Synchronize::<Identity, Impl, OFFSET>,
Import: Import::<Identity, Impl, OFFSET>,
Export: Export::<Identity, Impl, OFFSET>,
InvokeContextMenuCommand: InvokeContextMenuCommand::<Identity, Impl, OFFSET>,
MoveSelectionTo: MoveSelectionTo::<Identity, Impl, OFFSET>,
SubscriptionsEnabled: SubscriptionsEnabled::<Identity, Impl, OFFSET>,
CreateSubscriptionForSelection: CreateSubscriptionForSelection::<Identity, Impl, OFFSET>,
DeleteSubscriptionForSelection: DeleteSubscriptionForSelection::<Identity, Impl, OFFSET>,
SetRoot: SetRoot::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellFavoritesNameSpace as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
pub trait IShellFolder_Impl: Sized {
fn ParseDisplayName(&self, hwnd: super::super::Foundation::HWND, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>, pszdisplayname: &::windows_core::PCWSTR, pcheaten: *const u32, ppidl: *mut *mut Common::ITEMIDLIST, pdwattributes: *mut u32) -> ::windows_core::Result<()>;
fn EnumObjects(&self, hwnd: super::super::Foundation::HWND, grfflags: u32, ppenumidlist: *mut ::core::option::Option<IEnumIDList>) -> ::windows_core::HRESULT;
fn BindToObject(&self, pidl: *const Common::ITEMIDLIST, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn BindToStorage(&self, pidl: *const Common::ITEMIDLIST, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn CompareIDs(&self, lparam: super::super::Foundation::LPARAM, pidl1: *const Common::ITEMIDLIST, pidl2: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn CreateViewObject(&self, hwndowner: super::super::Foundation::HWND, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetAttributesOf(&self, cidl: u32, apidl: *const *const Common::ITEMIDLIST, rgfinout: *mut u32) -> ::windows_core::Result<()>;
fn GetUIObjectOf(&self, hwndowner: super::super::Foundation::HWND, cidl: u32, apidl: *const *const Common::ITEMIDLIST, riid: *const ::windows_core::GUID, rgfreserved: *const u32, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetDisplayNameOf(&self, pidl: *const Common::ITEMIDLIST, uflags: SHGDNF, pname: *mut Common::STRRET) -> ::windows_core::Result<()>;
fn SetNameOf(&self, hwnd: super::super::Foundation::HWND, pidl: *const Common::ITEMIDLIST, pszname: &::windows_core::PCWSTR, uflags: SHGDNF, ppidlout: *mut *mut Common::ITEMIDLIST) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IShellFolder {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl IShellFolder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>() -> IShellFolder_Vtbl {
unsafe extern "system" fn ParseDisplayName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, pbc: *mut ::core::ffi::c_void, pszdisplayname: ::windows_core::PCWSTR, pcheaten: *const u32, ppidl: *mut *mut Common::ITEMIDLIST, pdwattributes: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ParseDisplayName(::core::mem::transmute_copy(&hwnd), ::windows_core::from_raw_borrowed(&pbc), ::core::mem::transmute(&pszdisplayname), ::core::mem::transmute_copy(&pcheaten), ::core::mem::transmute_copy(&ppidl), ::core::mem::transmute_copy(&pdwattributes)).into()
}
unsafe extern "system" fn EnumObjects<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, grfflags: u32, ppenumidlist: *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();
this.EnumObjects(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&grfflags), ::core::mem::transmute_copy(&ppenumidlist))
}
unsafe extern "system" fn BindToObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, pbc: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.BindToObject(::core::mem::transmute_copy(&pidl), ::windows_core::from_raw_borrowed(&pbc), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn BindToStorage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, pbc: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.BindToStorage(::core::mem::transmute_copy(&pidl), ::windows_core::from_raw_borrowed(&pbc), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn CompareIDs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lparam: super::super::Foundation::LPARAM, pidl1: *const Common::ITEMIDLIST, pidl2: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CompareIDs(::core::mem::transmute_copy(&lparam), ::core::mem::transmute_copy(&pidl1), ::core::mem::transmute_copy(&pidl2)).into()
}
unsafe extern "system" fn CreateViewObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndowner: super::super::Foundation::HWND, riid: *const ::windows_core::GUID, ppv: *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();
this.CreateViewObject(::core::mem::transmute_copy(&hwndowner), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetAttributesOf<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cidl: u32, apidl: *const *const Common::ITEMIDLIST, rgfinout: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAttributesOf(::core::mem::transmute_copy(&cidl), ::core::mem::transmute_copy(&apidl), ::core::mem::transmute_copy(&rgfinout)).into()
}
unsafe extern "system" fn GetUIObjectOf<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndowner: super::super::Foundation::HWND, cidl: u32, apidl: *const *const Common::ITEMIDLIST, riid: *const ::windows_core::GUID, rgfreserved: *const u32, ppv: *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();
this.GetUIObjectOf(::core::mem::transmute_copy(&hwndowner), ::core::mem::transmute_copy(&cidl), ::core::mem::transmute_copy(&apidl), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&rgfreserved), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetDisplayNameOf<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, uflags: SHGDNF, pname: *mut Common::STRRET) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDisplayNameOf(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&uflags), ::core::mem::transmute_copy(&pname)).into()
}
unsafe extern "system" fn SetNameOf<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, pidl: *const Common::ITEMIDLIST, pszname: ::windows_core::PCWSTR, uflags: SHGDNF, ppidlout: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNameOf(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&pidl), ::core::mem::transmute(&pszname), ::core::mem::transmute_copy(&uflags), ::core::mem::transmute_copy(&ppidlout)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ParseDisplayName: ParseDisplayName::<Identity, Impl, OFFSET>,
EnumObjects: EnumObjects::<Identity, Impl, OFFSET>,
BindToObject: BindToObject::<Identity, Impl, OFFSET>,
BindToStorage: BindToStorage::<Identity, Impl, OFFSET>,
CompareIDs: CompareIDs::<Identity, Impl, OFFSET>,
CreateViewObject: CreateViewObject::<Identity, Impl, OFFSET>,
GetAttributesOf: GetAttributesOf::<Identity, Impl, OFFSET>,
GetUIObjectOf: GetUIObjectOf::<Identity, Impl, OFFSET>,
GetDisplayNameOf: GetDisplayNameOf::<Identity, Impl, OFFSET>,
SetNameOf: SetNameOf::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellFolder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait IShellFolder2_Impl: Sized + IShellFolder_Impl {
fn GetDefaultSearchGUID(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn EnumSearches(&self) -> ::windows_core::Result<IEnumExtraSearch>;
fn GetDefaultColumn(&self, dwres: u32, psort: *mut u32, pdisplay: *mut u32) -> ::windows_core::Result<()>;
fn GetDefaultColumnState(&self, icolumn: u32) -> ::windows_core::Result<u32>;
fn GetDetailsEx(&self, pidl: *const Common::ITEMIDLIST, pscid: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn GetDetailsOf(&self, pidl: *const Common::ITEMIDLIST, icolumn: u32, psd: *mut Common::SHELLDETAILS) -> ::windows_core::Result<()>;
fn MapColumnToSCID(&self, icolumn: u32, pscid: *mut PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for IShellFolder2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl IShellFolder2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder2_Impl, const OFFSET: isize>() -> IShellFolder2_Vtbl {
unsafe extern "system" fn GetDefaultSearchGUID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDefaultSearchGUID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pguid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumSearches<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.EnumSearches() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDefaultColumn<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwres: u32, psort: *mut u32, pdisplay: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDefaultColumn(::core::mem::transmute_copy(&dwres), ::core::mem::transmute_copy(&psort), ::core::mem::transmute_copy(&pdisplay)).into()
}
unsafe extern "system" fn GetDefaultColumnState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, icolumn: u32, pcsflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDefaultColumnState(::core::mem::transmute_copy(&icolumn)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcsflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDetailsEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, pscid: *const PropertiesSystem::PROPERTYKEY, pv: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDetailsEx(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&pscid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pv, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDetailsOf<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, icolumn: u32, psd: *mut Common::SHELLDETAILS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDetailsOf(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&icolumn), ::core::mem::transmute_copy(&psd)).into()
}
unsafe extern "system" fn MapColumnToSCID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, icolumn: u32, pscid: *mut PropertiesSystem::PROPERTYKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MapColumnToSCID(::core::mem::transmute_copy(&icolumn), ::core::mem::transmute_copy(&pscid)).into()
}
Self {
base__: IShellFolder_Vtbl::new::<Identity, Impl, OFFSET>(),
GetDefaultSearchGUID: GetDefaultSearchGUID::<Identity, Impl, OFFSET>,
EnumSearches: EnumSearches::<Identity, Impl, OFFSET>,
GetDefaultColumn: GetDefaultColumn::<Identity, Impl, OFFSET>,
GetDefaultColumnState: GetDefaultColumnState::<Identity, Impl, OFFSET>,
GetDetailsEx: GetDetailsEx::<Identity, Impl, OFFSET>,
GetDetailsOf: GetDetailsOf::<Identity, Impl, OFFSET>,
MapColumnToSCID: MapColumnToSCID::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellFolder2 as ::windows_core::ComInterface>::IID || iid == &<IShellFolder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
pub trait IShellFolderBand_Impl: Sized {
fn InitializeSFB(&self, psf: ::core::option::Option<&IShellFolder>, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn SetBandInfoSFB(&self, pbi: *const BANDINFOSFB) -> ::windows_core::Result<()>;
fn GetBandInfoSFB(&self, pbi: *mut BANDINFOSFB) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IShellFolderBand {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl IShellFolderBand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderBand_Impl, const OFFSET: isize>() -> IShellFolderBand_Vtbl {
unsafe extern "system" fn InitializeSFB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psf: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitializeSFB(::windows_core::from_raw_borrowed(&psf), ::core::mem::transmute_copy(&pidl)).into()
}
unsafe extern "system" fn SetBandInfoSFB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbi: *const BANDINFOSFB) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBandInfoSFB(::core::mem::transmute_copy(&pbi)).into()
}
unsafe extern "system" fn GetBandInfoSFB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbi: *mut BANDINFOSFB) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBandInfoSFB(::core::mem::transmute_copy(&pbi)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
InitializeSFB: InitializeSFB::<Identity, Impl, OFFSET>,
SetBandInfoSFB: SetBandInfoSFB::<Identity, Impl, OFFSET>,
GetBandInfoSFB: GetBandInfoSFB::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellFolderBand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
pub trait IShellFolderView_Impl: Sized {
fn Rearrange(&self, lparamsort: super::super::Foundation::LPARAM) -> ::windows_core::Result<()>;
fn GetArrangeParam(&self) -> ::windows_core::Result<super::super::Foundation::LPARAM>;
fn ArrangeGrid(&self) -> ::windows_core::Result<()>;
fn AutoArrange(&self) -> ::windows_core::Result<()>;
fn GetAutoArrange(&self) -> ::windows_core::Result<()>;
fn AddObject(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<u32>;
fn GetObject(&self, ppidl: *mut *mut Common::ITEMIDLIST, uitem: u32) -> ::windows_core::Result<()>;
fn RemoveObject(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<u32>;
fn GetObjectCount(&self) -> ::windows_core::Result<u32>;
fn SetObjectCount(&self, ucount: u32, dwflags: u32) -> ::windows_core::Result<()>;
fn UpdateObject(&self, pidlold: *const Common::ITEMIDLIST, pidlnew: *const Common::ITEMIDLIST) -> ::windows_core::Result<u32>;
fn RefreshObject(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<u32>;
fn SetRedraw(&self, bredraw: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetSelectedCount(&self) -> ::windows_core::Result<u32>;
fn GetSelectedObjects(&self, pppidl: *mut *mut *mut Common::ITEMIDLIST, puitems: *mut u32) -> ::windows_core::Result<()>;
fn IsDropOnSource(&self, pdroptarget: ::core::option::Option<&super::super::System::Ole::IDropTarget>) -> ::windows_core::Result<()>;
fn GetDragPoint(&self) -> ::windows_core::Result<super::super::Foundation::POINT>;
fn GetDropPoint(&self) -> ::windows_core::Result<super::super::Foundation::POINT>;
fn MoveIcons(&self, pdataobject: ::core::option::Option<&super::super::System::Com::IDataObject>) -> ::windows_core::Result<()>;
fn SetItemPos(&self, pidl: *const Common::ITEMIDLIST, ppt: *const super::super::Foundation::POINT) -> ::windows_core::Result<()>;
fn IsBkDropTarget(&self, pdroptarget: ::core::option::Option<&super::super::System::Ole::IDropTarget>) -> ::windows_core::Result<()>;
fn SetClipboard(&self, bmove: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetPoints(&self, pdataobject: ::core::option::Option<&super::super::System::Com::IDataObject>) -> ::windows_core::Result<()>;
fn GetItemSpacing(&self) -> ::windows_core::Result<ITEMSPACING>;
fn SetCallback(&self, pnewcb: ::core::option::Option<&IShellFolderViewCB>) -> ::windows_core::Result<IShellFolderViewCB>;
fn Select(&self, dwflags: &SFVS_SELECT) -> ::windows_core::Result<()>;
fn QuerySupport(&self, pdwsupport: *mut u32) -> ::windows_core::Result<()>;
fn SetAutomationObject(&self, pdisp: ::core::option::Option<&super::super::System::Com::IDispatch>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IShellFolderView {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common"))]
impl IShellFolderView_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>() -> IShellFolderView_Vtbl {
unsafe extern "system" fn Rearrange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lparamsort: super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Rearrange(::core::mem::transmute_copy(&lparamsort)).into()
}
unsafe extern "system" fn GetArrangeParam<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plparamsort: *mut super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetArrangeParam() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plparamsort, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ArrangeGrid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *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.ArrangeGrid().into()
}
unsafe extern "system" fn AutoArrange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *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.AutoArrange().into()
}
unsafe extern "system" fn GetAutoArrange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *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.GetAutoArrange().into()
}
unsafe extern "system" fn AddObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, puitem: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddObject(::core::mem::transmute_copy(&pidl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidl: *mut *mut Common::ITEMIDLIST, uitem: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetObject(::core::mem::transmute_copy(&ppidl), ::core::mem::transmute_copy(&uitem)).into()
}
unsafe extern "system" fn RemoveObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, puitem: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RemoveObject(::core::mem::transmute_copy(&pidl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetObjectCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pucount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetObjectCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pucount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetObjectCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ucount: u32, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetObjectCount(::core::mem::transmute_copy(&ucount), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn UpdateObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlold: *const Common::ITEMIDLIST, pidlnew: *const Common::ITEMIDLIST, puitem: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.UpdateObject(::core::mem::transmute_copy(&pidlold), ::core::mem::transmute_copy(&pidlnew)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RefreshObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, puitem: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RefreshObject(::core::mem::transmute_copy(&pidl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRedraw<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bredraw: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRedraw(::core::mem::transmute_copy(&bredraw)).into()
}
unsafe extern "system" fn GetSelectedCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puselected: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSelectedCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puselected, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSelectedObjects<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pppidl: *mut *mut *mut Common::ITEMIDLIST, puitems: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSelectedObjects(::core::mem::transmute_copy(&pppidl), ::core::mem::transmute_copy(&puitems)).into()
}
unsafe extern "system" fn IsDropOnSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdroptarget: *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.IsDropOnSource(::windows_core::from_raw_borrowed(&pdroptarget)).into()
}
unsafe extern "system" fn GetDragPoint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppt: *mut super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDragPoint() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppt, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDropPoint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppt: *mut super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDropPoint() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppt, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn MoveIcons<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdataobject: *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.MoveIcons(::windows_core::from_raw_borrowed(&pdataobject)).into()
}
unsafe extern "system" fn SetItemPos<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, ppt: *const super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetItemPos(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&ppt)).into()
}
unsafe extern "system" fn IsBkDropTarget<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdroptarget: *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.IsBkDropTarget(::windows_core::from_raw_borrowed(&pdroptarget)).into()
}
unsafe extern "system" fn SetClipboard<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bmove: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetClipboard(::core::mem::transmute_copy(&bmove)).into()
}
unsafe extern "system" fn SetPoints<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdataobject: *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.SetPoints(::windows_core::from_raw_borrowed(&pdataobject)).into()
}
unsafe extern "system" fn GetItemSpacing<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pspacing: *mut ITEMSPACING) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemSpacing() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pspacing, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCallback<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnewcb: *mut ::core::ffi::c_void, ppoldcb: *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.SetCallback(::windows_core::from_raw_borrowed(&pnewcb)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppoldcb, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Select<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Select(::core::mem::transmute(&dwflags)).into()
}
unsafe extern "system" fn QuerySupport<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwsupport: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QuerySupport(::core::mem::transmute_copy(&pdwsupport)).into()
}
unsafe extern "system" fn SetAutomationObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdisp: *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.SetAutomationObject(::windows_core::from_raw_borrowed(&pdisp)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Rearrange: Rearrange::<Identity, Impl, OFFSET>,
GetArrangeParam: GetArrangeParam::<Identity, Impl, OFFSET>,
ArrangeGrid: ArrangeGrid::<Identity, Impl, OFFSET>,
AutoArrange: AutoArrange::<Identity, Impl, OFFSET>,
GetAutoArrange: GetAutoArrange::<Identity, Impl, OFFSET>,
AddObject: AddObject::<Identity, Impl, OFFSET>,
GetObject: GetObject::<Identity, Impl, OFFSET>,
RemoveObject: RemoveObject::<Identity, Impl, OFFSET>,
GetObjectCount: GetObjectCount::<Identity, Impl, OFFSET>,
SetObjectCount: SetObjectCount::<Identity, Impl, OFFSET>,
UpdateObject: UpdateObject::<Identity, Impl, OFFSET>,
RefreshObject: RefreshObject::<Identity, Impl, OFFSET>,
SetRedraw: SetRedraw::<Identity, Impl, OFFSET>,
GetSelectedCount: GetSelectedCount::<Identity, Impl, OFFSET>,
GetSelectedObjects: GetSelectedObjects::<Identity, Impl, OFFSET>,
IsDropOnSource: IsDropOnSource::<Identity, Impl, OFFSET>,
GetDragPoint: GetDragPoint::<Identity, Impl, OFFSET>,
GetDropPoint: GetDropPoint::<Identity, Impl, OFFSET>,
MoveIcons: MoveIcons::<Identity, Impl, OFFSET>,
SetItemPos: SetItemPos::<Identity, Impl, OFFSET>,
IsBkDropTarget: IsBkDropTarget::<Identity, Impl, OFFSET>,
SetClipboard: SetClipboard::<Identity, Impl, OFFSET>,
SetPoints: SetPoints::<Identity, Impl, OFFSET>,
GetItemSpacing: GetItemSpacing::<Identity, Impl, OFFSET>,
SetCallback: SetCallback::<Identity, Impl, OFFSET>,
Select: Select::<Identity, Impl, OFFSET>,
QuerySupport: QuerySupport::<Identity, Impl, OFFSET>,
SetAutomationObject: SetAutomationObject::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellFolderView as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IShellFolderViewCB_Impl: Sized {
fn MessageSFVCB(&self, umsg: &SFVM_MESSAGE_ID, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IShellFolderViewCB {}
#[cfg(feature = "Win32_Foundation")]
impl IShellFolderViewCB_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewCB_Impl, const OFFSET: isize>() -> IShellFolderViewCB_Vtbl {
unsafe extern "system" fn MessageSFVCB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewCB_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MessageSFVCB(::core::mem::transmute(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), MessageSFVCB: MessageSFVCB::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellFolderViewCB as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellFolderViewDual_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Application(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Parent(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Folder(&self) -> ::windows_core::Result<Folder>;
fn SelectedItems(&self) -> ::windows_core::Result<FolderItems>;
fn FocusedItem(&self) -> ::windows_core::Result<FolderItem>;
fn SelectItem(&self, pvfi: *const super::super::System::Variant::VARIANT, dwflags: i32) -> ::windows_core::Result<()>;
fn PopupItemMenu(&self, pfi: ::core::option::Option<&FolderItem>, vx: &super::super::System::Variant::VARIANT, vy: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<::windows_core::BSTR>;
fn Script(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn ViewOptions(&self) -> ::windows_core::Result<i32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellFolderViewDual {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellFolderViewDual_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual_Impl, const OFFSET: isize>() -> IShellFolderViewDual_Vtbl {
unsafe extern "system" fn Application<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Application() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Parent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Parent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Folder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.Folder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SelectedItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.SelectedItems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FocusedItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.FocusedItem() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SelectItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvfi: *const super::super::System::Variant::VARIANT, dwflags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectItem(::core::mem::transmute_copy(&pvfi), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn PopupItemMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfi: *mut ::core::ffi::c_void, vx: super::super::System::Variant::VARIANT, vy: super::super::System::Variant::VARIANT, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PopupItemMenu(::windows_core::from_raw_borrowed(&pfi), ::core::mem::transmute(&vx), ::core::mem::transmute(&vy)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Script<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdisp: *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.Script() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppdisp, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ViewOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plviewoptions: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ViewOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plviewoptions, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Application: Application::<Identity, Impl, OFFSET>,
Parent: Parent::<Identity, Impl, OFFSET>,
Folder: Folder::<Identity, Impl, OFFSET>,
SelectedItems: SelectedItems::<Identity, Impl, OFFSET>,
FocusedItem: FocusedItem::<Identity, Impl, OFFSET>,
SelectItem: SelectItem::<Identity, Impl, OFFSET>,
PopupItemMenu: PopupItemMenu::<Identity, Impl, OFFSET>,
Script: Script::<Identity, Impl, OFFSET>,
ViewOptions: ViewOptions::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellFolderViewDual as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellFolderViewDual2_Impl: Sized + IShellFolderViewDual_Impl {
fn CurrentViewMode(&self) -> ::windows_core::Result<u32>;
fn SetCurrentViewMode(&self, viewmode: u32) -> ::windows_core::Result<()>;
fn SelectItemRelative(&self, irelative: i32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellFolderViewDual2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellFolderViewDual2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual2_Impl, const OFFSET: isize>() -> IShellFolderViewDual2_Vtbl {
unsafe extern "system" fn CurrentViewMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pviewmode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CurrentViewMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pviewmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentViewMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, viewmode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentViewMode(::core::mem::transmute_copy(&viewmode)).into()
}
unsafe extern "system" fn SelectItemRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, irelative: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectItemRelative(::core::mem::transmute_copy(&irelative)).into()
}
Self {
base__: IShellFolderViewDual_Vtbl::new::<Identity, Impl, OFFSET>(),
CurrentViewMode: CurrentViewMode::<Identity, Impl, OFFSET>,
SetCurrentViewMode: SetCurrentViewMode::<Identity, Impl, OFFSET>,
SelectItemRelative: SelectItemRelative::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellFolderViewDual2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellFolderViewDual as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellFolderViewDual3_Impl: Sized + IShellFolderViewDual2_Impl {
fn GroupBy(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetGroupBy(&self, bstrgroupby: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn FolderFlags(&self) -> ::windows_core::Result<u32>;
fn SetFolderFlags(&self, dwflags: u32) -> ::windows_core::Result<()>;
fn SortColumns(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetSortColumns(&self, bstrsortcolumns: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn SetIconSize(&self, iiconsize: i32) -> ::windows_core::Result<()>;
fn IconSize(&self) -> ::windows_core::Result<i32>;
fn FilterView(&self, bstrfiltertext: &::windows_core::BSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellFolderViewDual3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellFolderViewDual3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual3_Impl, const OFFSET: isize>() -> IShellFolderViewDual3_Vtbl {
unsafe extern "system" fn GroupBy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrgroupby: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GroupBy() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrgroupby, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetGroupBy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrgroupby: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetGroupBy(::core::mem::transmute(&bstrgroupby)).into()
}
unsafe extern "system" fn FolderFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FolderFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFolderFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFolderFlags(::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn SortColumns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrsortcolumns: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SortColumns() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrsortcolumns, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSortColumns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrsortcolumns: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSortColumns(::core::mem::transmute(&bstrsortcolumns)).into()
}
unsafe extern "system" fn SetIconSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iiconsize: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIconSize(::core::mem::transmute_copy(&iiconsize)).into()
}
unsafe extern "system" fn IconSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piiconsize: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IconSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piiconsize, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FilterView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellFolderViewDual3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrfiltertext: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FilterView(::core::mem::transmute(&bstrfiltertext)).into()
}
Self {
base__: IShellFolderViewDual2_Vtbl::new::<Identity, Impl, OFFSET>(),
GroupBy: GroupBy::<Identity, Impl, OFFSET>,
SetGroupBy: SetGroupBy::<Identity, Impl, OFFSET>,
FolderFlags: FolderFlags::<Identity, Impl, OFFSET>,
SetFolderFlags: SetFolderFlags::<Identity, Impl, OFFSET>,
SortColumns: SortColumns::<Identity, Impl, OFFSET>,
SetSortColumns: SetSortColumns::<Identity, Impl, OFFSET>,
SetIconSize: SetIconSize::<Identity, Impl, OFFSET>,
IconSize: IconSize::<Identity, Impl, OFFSET>,
FilterView: FilterView::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellFolderViewDual3 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellFolderViewDual as ::windows_core::ComInterface>::IID || iid == &<IShellFolderViewDual2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IShellIcon_Impl: Sized {
fn GetIconOf(&self, pidl: *const Common::ITEMIDLIST, flags: u32) -> ::windows_core::Result<i32>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IShellIcon {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IShellIcon_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIcon_Impl, const OFFSET: isize>() -> IShellIcon_Vtbl {
unsafe extern "system" fn GetIconOf<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIcon_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, flags: u32, piconindex: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIconOf(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piconindex, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetIconOf: GetIconOf::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellIcon as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IShellIconOverlay_Impl: Sized {
fn GetOverlayIndex(&self, pidl: *const Common::ITEMIDLIST, pindex: *mut i32) -> ::windows_core::Result<()>;
fn GetOverlayIconIndex(&self, pidl: *const Common::ITEMIDLIST, piconindex: *mut i32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IShellIconOverlay {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IShellIconOverlay_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlay_Impl, const OFFSET: isize>() -> IShellIconOverlay_Vtbl {
unsafe extern "system" fn GetOverlayIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, pindex: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOverlayIndex(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&pindex)).into()
}
unsafe extern "system" fn GetOverlayIconIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, piconindex: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOverlayIconIndex(::core::mem::transmute_copy(&pidl), ::core::mem::transmute_copy(&piconindex)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetOverlayIndex: GetOverlayIndex::<Identity, Impl, OFFSET>,
GetOverlayIconIndex: GetOverlayIconIndex::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellIconOverlay as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IShellIconOverlayIdentifier_Impl: Sized {
fn IsMemberOf(&self, pwszpath: &::windows_core::PCWSTR, dwattrib: u32) -> ::windows_core::Result<()>;
fn GetOverlayInfo(&self, pwsziconfile: ::windows_core::PWSTR, cchmax: i32, pindex: *mut i32, pdwflags: *mut u32) -> ::windows_core::Result<()>;
fn GetPriority(&self) -> ::windows_core::Result<i32>;
}
impl ::windows_core::RuntimeName for IShellIconOverlayIdentifier {}
impl IShellIconOverlayIdentifier_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlayIdentifier_Impl, const OFFSET: isize>() -> IShellIconOverlayIdentifier_Vtbl {
unsafe extern "system" fn IsMemberOf<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlayIdentifier_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwszpath: ::windows_core::PCWSTR, dwattrib: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsMemberOf(::core::mem::transmute(&pwszpath), ::core::mem::transmute_copy(&dwattrib)).into()
}
unsafe extern "system" fn GetOverlayInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlayIdentifier_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwsziconfile: ::windows_core::PWSTR, cchmax: i32, pindex: *mut i32, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOverlayInfo(::core::mem::transmute_copy(&pwsziconfile), ::core::mem::transmute_copy(&cchmax), ::core::mem::transmute_copy(&pindex), ::core::mem::transmute_copy(&pdwflags)).into()
}
unsafe extern "system" fn GetPriority<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlayIdentifier_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppriority: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPriority() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppriority, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsMemberOf: IsMemberOf::<Identity, Impl, OFFSET>,
GetOverlayInfo: GetOverlayInfo::<Identity, Impl, OFFSET>,
GetPriority: GetPriority::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellIconOverlayIdentifier as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IShellIconOverlayManager_Impl: Sized {
fn GetFileOverlayInfo(&self, pwszpath: &::windows_core::PCWSTR, dwattrib: u32, pindex: *mut i32, dwflags: u32) -> ::windows_core::Result<()>;
fn GetReservedOverlayInfo(&self, pwszpath: &::windows_core::PCWSTR, dwattrib: u32, pindex: *mut i32, dwflags: u32, ireservedid: i32) -> ::windows_core::Result<()>;
fn RefreshOverlayImages(&self, dwflags: u32) -> ::windows_core::Result<()>;
fn LoadNonloadedOverlayIdentifiers(&self) -> ::windows_core::Result<()>;
fn OverlayIndexFromImageIndex(&self, iimage: i32, piindex: *mut i32, fadd: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IShellIconOverlayManager {}
#[cfg(feature = "Win32_Foundation")]
impl IShellIconOverlayManager_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlayManager_Impl, const OFFSET: isize>() -> IShellIconOverlayManager_Vtbl {
unsafe extern "system" fn GetFileOverlayInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlayManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwszpath: ::windows_core::PCWSTR, dwattrib: u32, pindex: *mut i32, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFileOverlayInfo(::core::mem::transmute(&pwszpath), ::core::mem::transmute_copy(&dwattrib), ::core::mem::transmute_copy(&pindex), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn GetReservedOverlayInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlayManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwszpath: ::windows_core::PCWSTR, dwattrib: u32, pindex: *mut i32, dwflags: u32, ireservedid: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetReservedOverlayInfo(::core::mem::transmute(&pwszpath), ::core::mem::transmute_copy(&dwattrib), ::core::mem::transmute_copy(&pindex), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&ireservedid)).into()
}
unsafe extern "system" fn RefreshOverlayImages<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlayManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RefreshOverlayImages(::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn LoadNonloadedOverlayIdentifiers<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlayManager_Impl, const OFFSET: isize>(this: *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.LoadNonloadedOverlayIdentifiers().into()
}
unsafe extern "system" fn OverlayIndexFromImageIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellIconOverlayManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iimage: i32, piindex: *mut i32, fadd: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OverlayIndexFromImageIndex(::core::mem::transmute_copy(&iimage), ::core::mem::transmute_copy(&piindex), ::core::mem::transmute_copy(&fadd)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetFileOverlayInfo: GetFileOverlayInfo::<Identity, Impl, OFFSET>,
GetReservedOverlayInfo: GetReservedOverlayInfo::<Identity, Impl, OFFSET>,
RefreshOverlayImages: RefreshOverlayImages::<Identity, Impl, OFFSET>,
LoadNonloadedOverlayIdentifiers: LoadNonloadedOverlayIdentifiers::<Identity, Impl, OFFSET>,
OverlayIndexFromImageIndex: OverlayIndexFromImageIndex::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellIconOverlayManager as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))]
pub trait IShellImageData_Impl: Sized {
fn Decode(&self, dwflags: u32, cxdesired: u32, cydesired: u32) -> ::windows_core::Result<()>;
fn Draw(&self, hdc: super::super::Graphics::Gdi::HDC, prcdest: *mut super::super::Foundation::RECT, prcsrc: *mut super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn NextFrame(&self) -> ::windows_core::Result<()>;
fn NextPage(&self) -> ::windows_core::Result<()>;
fn PrevPage(&self) -> ::windows_core::Result<()>;
fn IsTransparent(&self) -> ::windows_core::Result<()>;
fn IsAnimated(&self) -> ::windows_core::Result<()>;
fn IsVector(&self) -> ::windows_core::Result<()>;
fn IsMultipage(&self) -> ::windows_core::Result<()>;
fn IsEditable(&self) -> ::windows_core::Result<()>;
fn IsPrintable(&self) -> ::windows_core::Result<()>;
fn IsDecoded(&self) -> ::windows_core::Result<()>;
fn GetCurrentPage(&self, pnpage: *mut u32) -> ::windows_core::Result<()>;
fn GetPageCount(&self, pcpages: *mut u32) -> ::windows_core::Result<()>;
fn SelectPage(&self, ipage: u32) -> ::windows_core::Result<()>;
fn GetSize(&self, psize: *mut super::super::Foundation::SIZE) -> ::windows_core::Result<()>;
fn GetRawDataFormat(&self, pdataformat: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetPixelFormat(&self, pformat: *mut u32) -> ::windows_core::Result<()>;
fn GetDelay(&self, pdwdelay: *mut u32) -> ::windows_core::Result<()>;
fn GetProperties(&self, dwmode: u32) -> ::windows_core::Result<super::super::System::Com::StructuredStorage::IPropertySetStorage>;
fn Rotate(&self, dwangle: u32) -> ::windows_core::Result<()>;
fn Scale(&self, cx: u32, cy: u32, hints: u32) -> ::windows_core::Result<()>;
fn DiscardEdit(&self) -> ::windows_core::Result<()>;
fn SetEncoderParams(&self, pbagenc: ::core::option::Option<&super::super::System::Com::StructuredStorage::IPropertyBag>) -> ::windows_core::Result<()>;
fn DisplayName(&self, wszname: &::windows_core::PCWSTR, cch: u32) -> ::windows_core::Result<()>;
fn GetResolution(&self, puresolutionx: *mut u32, puresolutiony: *mut u32) -> ::windows_core::Result<()>;
fn GetEncoderParams(&self, pguidfmt: *mut ::windows_core::GUID, ppencparams: *mut *mut u8) -> ::windows_core::Result<()>;
fn RegisterAbort(&self, pabort: ::core::option::Option<&IShellImageDataAbort>) -> ::windows_core::Result<IShellImageDataAbort>;
fn CloneFrame(&self, ppimg: *mut *mut u8) -> ::windows_core::Result<()>;
fn ReplaceFrame(&self, pimg: *mut u8) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))]
impl ::windows_core::RuntimeName for IShellImageData {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))]
impl IShellImageData_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>() -> IShellImageData_Vtbl {
unsafe extern "system" fn Decode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, cxdesired: u32, cydesired: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Decode(::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&cxdesired), ::core::mem::transmute_copy(&cydesired)).into()
}
unsafe extern "system" fn Draw<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hdc: super::super::Graphics::Gdi::HDC, prcdest: *mut super::super::Foundation::RECT, prcsrc: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Draw(::core::mem::transmute_copy(&hdc), ::core::mem::transmute_copy(&prcdest), ::core::mem::transmute_copy(&prcsrc)).into()
}
unsafe extern "system" fn NextFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.NextFrame().into()
}
unsafe extern "system" fn NextPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.NextPage().into()
}
unsafe extern "system" fn PrevPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.PrevPage().into()
}
unsafe extern "system" fn IsTransparent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.IsTransparent().into()
}
unsafe extern "system" fn IsAnimated<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.IsAnimated().into()
}
unsafe extern "system" fn IsVector<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.IsVector().into()
}
unsafe extern "system" fn IsMultipage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.IsMultipage().into()
}
unsafe extern "system" fn IsEditable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.IsEditable().into()
}
unsafe extern "system" fn IsPrintable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.IsPrintable().into()
}
unsafe extern "system" fn IsDecoded<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.IsDecoded().into()
}
unsafe extern "system" fn GetCurrentPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnpage: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentPage(::core::mem::transmute_copy(&pnpage)).into()
}
unsafe extern "system" fn GetPageCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcpages: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPageCount(::core::mem::transmute_copy(&pcpages)).into()
}
unsafe extern "system" fn SelectPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ipage: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectPage(::core::mem::transmute_copy(&ipage)).into()
}
unsafe extern "system" fn GetSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psize: *mut super::super::Foundation::SIZE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSize(::core::mem::transmute_copy(&psize)).into()
}
unsafe extern "system" fn GetRawDataFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdataformat: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRawDataFormat(::core::mem::transmute_copy(&pdataformat)).into()
}
unsafe extern "system" fn GetPixelFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pformat: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPixelFormat(::core::mem::transmute_copy(&pformat)).into()
}
unsafe extern "system" fn GetDelay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwdelay: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDelay(::core::mem::transmute_copy(&pdwdelay)).into()
}
unsafe extern "system" fn GetProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwmode: u32, pppropset: *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.GetProperties(::core::mem::transmute_copy(&dwmode)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pppropset, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Rotate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwangle: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Rotate(::core::mem::transmute_copy(&dwangle)).into()
}
unsafe extern "system" fn Scale<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cx: u32, cy: u32, hints: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Scale(::core::mem::transmute_copy(&cx), ::core::mem::transmute_copy(&cy), ::core::mem::transmute_copy(&hints)).into()
}
unsafe extern "system" fn DiscardEdit<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *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.DiscardEdit().into()
}
unsafe extern "system" fn SetEncoderParams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbagenc: *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.SetEncoderParams(::windows_core::from_raw_borrowed(&pbagenc)).into()
}
unsafe extern "system" fn DisplayName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wszname: ::windows_core::PCWSTR, cch: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisplayName(::core::mem::transmute(&wszname), ::core::mem::transmute_copy(&cch)).into()
}
unsafe extern "system" fn GetResolution<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puresolutionx: *mut u32, puresolutiony: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetResolution(::core::mem::transmute_copy(&puresolutionx), ::core::mem::transmute_copy(&puresolutiony)).into()
}
unsafe extern "system" fn GetEncoderParams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidfmt: *mut ::windows_core::GUID, ppencparams: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEncoderParams(::core::mem::transmute_copy(&pguidfmt), ::core::mem::transmute_copy(&ppencparams)).into()
}
unsafe extern "system" fn RegisterAbort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pabort: *mut ::core::ffi::c_void, ppabortprev: *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.RegisterAbort(::windows_core::from_raw_borrowed(&pabort)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppabortprev, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CloneFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppimg: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CloneFrame(::core::mem::transmute_copy(&ppimg)).into()
}
unsafe extern "system" fn ReplaceFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pimg: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReplaceFrame(::core::mem::transmute_copy(&pimg)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Decode: Decode::<Identity, Impl, OFFSET>,
Draw: Draw::<Identity, Impl, OFFSET>,
NextFrame: NextFrame::<Identity, Impl, OFFSET>,
NextPage: NextPage::<Identity, Impl, OFFSET>,
PrevPage: PrevPage::<Identity, Impl, OFFSET>,
IsTransparent: IsTransparent::<Identity, Impl, OFFSET>,
IsAnimated: IsAnimated::<Identity, Impl, OFFSET>,
IsVector: IsVector::<Identity, Impl, OFFSET>,
IsMultipage: IsMultipage::<Identity, Impl, OFFSET>,
IsEditable: IsEditable::<Identity, Impl, OFFSET>,
IsPrintable: IsPrintable::<Identity, Impl, OFFSET>,
IsDecoded: IsDecoded::<Identity, Impl, OFFSET>,
GetCurrentPage: GetCurrentPage::<Identity, Impl, OFFSET>,
GetPageCount: GetPageCount::<Identity, Impl, OFFSET>,
SelectPage: SelectPage::<Identity, Impl, OFFSET>,
GetSize: GetSize::<Identity, Impl, OFFSET>,
GetRawDataFormat: GetRawDataFormat::<Identity, Impl, OFFSET>,
GetPixelFormat: GetPixelFormat::<Identity, Impl, OFFSET>,
GetDelay: GetDelay::<Identity, Impl, OFFSET>,
GetProperties: GetProperties::<Identity, Impl, OFFSET>,
Rotate: Rotate::<Identity, Impl, OFFSET>,
Scale: Scale::<Identity, Impl, OFFSET>,
DiscardEdit: DiscardEdit::<Identity, Impl, OFFSET>,
SetEncoderParams: SetEncoderParams::<Identity, Impl, OFFSET>,
DisplayName: DisplayName::<Identity, Impl, OFFSET>,
GetResolution: GetResolution::<Identity, Impl, OFFSET>,
GetEncoderParams: GetEncoderParams::<Identity, Impl, OFFSET>,
RegisterAbort: RegisterAbort::<Identity, Impl, OFFSET>,
CloneFrame: CloneFrame::<Identity, Impl, OFFSET>,
ReplaceFrame: ReplaceFrame::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellImageData as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IShellImageDataAbort_Impl: Sized {
fn QueryAbort(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IShellImageDataAbort {}
impl IShellImageDataAbort_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageDataAbort_Impl, const OFFSET: isize>() -> IShellImageDataAbort_Vtbl {
unsafe extern "system" fn QueryAbort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageDataAbort_Impl, const OFFSET: isize>(this: *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.QueryAbort().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), QueryAbort: QueryAbort::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellImageDataAbort as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IShellImageDataFactory_Impl: Sized {
fn CreateIShellImageData(&self) -> ::windows_core::Result<IShellImageData>;
fn CreateImageFromFile(&self, pszpath: &::windows_core::PCWSTR) -> ::windows_core::Result<IShellImageData>;
fn CreateImageFromStream(&self, pstream: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows_core::Result<IShellImageData>;
fn GetDataFormatFromPath(&self, pszpath: &::windows_core::PCWSTR) -> ::windows_core::Result<::windows_core::GUID>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IShellImageDataFactory {}
#[cfg(feature = "Win32_System_Com")]
impl IShellImageDataFactory_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageDataFactory_Impl, const OFFSET: isize>() -> IShellImageDataFactory_Vtbl {
unsafe extern "system" fn CreateIShellImageData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageDataFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppshimg: *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.CreateIShellImageData() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppshimg, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateImageFromFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageDataFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpath: ::windows_core::PCWSTR, ppshimg: *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.CreateImageFromFile(::core::mem::transmute(&pszpath)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppshimg, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateImageFromStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageDataFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstream: *mut ::core::ffi::c_void, ppshimg: *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.CreateImageFromStream(::windows_core::from_raw_borrowed(&pstream)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppshimg, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDataFormatFromPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellImageDataFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpath: ::windows_core::PCWSTR, pdataformat: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDataFormatFromPath(::core::mem::transmute(&pszpath)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdataformat, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CreateIShellImageData: CreateIShellImageData::<Identity, Impl, OFFSET>,
CreateImageFromFile: CreateImageFromFile::<Identity, Impl, OFFSET>,
CreateImageFromStream: CreateImageFromStream::<Identity, Impl, OFFSET>,
GetDataFormatFromPath: GetDataFormatFromPath::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellImageDataFactory as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_System_SystemServices\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_SystemServices"))]
pub trait IShellItem_Impl: Sized {
fn BindToHandler(&self, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>, bhid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetParent(&self) -> ::windows_core::Result<IShellItem>;
fn GetDisplayName(&self, sigdnname: SIGDN) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetAttributes(&self, sfgaomask: super::super::System::SystemServices::SFGAO_FLAGS) -> ::windows_core::Result<super::super::System::SystemServices::SFGAO_FLAGS>;
fn Compare(&self, psi: ::core::option::Option<&IShellItem>, hint: u32) -> ::windows_core::Result<i32>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_SystemServices"))]
impl ::windows_core::RuntimeName for IShellItem {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_SystemServices"))]
impl IShellItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem_Impl, const OFFSET: isize>() -> IShellItem_Vtbl {
unsafe extern "system" fn BindToHandler<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbc: *mut ::core::ffi::c_void, bhid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *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();
this.BindToHandler(::windows_core::from_raw_borrowed(&pbc), ::core::mem::transmute_copy(&bhid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetParent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsi: *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.GetParent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsi, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDisplayName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sigdnname: SIGDN, ppszname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDisplayName(::core::mem::transmute_copy(&sigdnname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sfgaomask: super::super::System::SystemServices::SFGAO_FLAGS, psfgaoattribs: *mut super::super::System::SystemServices::SFGAO_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAttributes(::core::mem::transmute_copy(&sfgaomask)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psfgaoattribs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Compare<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, hint: u32, piorder: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Compare(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&hint)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piorder, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
BindToHandler: BindToHandler::<Identity, Impl, OFFSET>,
GetParent: GetParent::<Identity, Impl, OFFSET>,
GetDisplayName: GetDisplayName::<Identity, Impl, OFFSET>,
GetAttributes: GetAttributes::<Identity, Impl, OFFSET>,
Compare: Compare::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_SystemServices\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_SystemServices", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait IShellItem2_Impl: Sized + IShellItem_Impl {
fn GetPropertyStore(&self, flags: PropertiesSystem::GETPROPERTYSTOREFLAGS, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetPropertyStoreWithCreateObject(&self, flags: PropertiesSystem::GETPROPERTYSTOREFLAGS, punkcreateobject: ::core::option::Option<&::windows_core::IUnknown>, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetPropertyStoreForKeys(&self, rgkeys: *const PropertiesSystem::PROPERTYKEY, ckeys: u32, flags: PropertiesSystem::GETPROPERTYSTOREFLAGS, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetPropertyDescriptionList(&self, keytype: *const PropertiesSystem::PROPERTYKEY, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn Update(&self, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>) -> ::windows_core::Result<()>;
fn GetProperty(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<super::super::System::Com::StructuredStorage::PROPVARIANT>;
fn GetCLSID(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<::windows_core::GUID>;
fn GetFileTime(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<super::super::Foundation::FILETIME>;
fn GetInt32(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<i32>;
fn GetString(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetUInt32(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<u32>;
fn GetUInt64(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<u64>;
fn GetBool(&self, key: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<super::super::Foundation::BOOL>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_SystemServices", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for IShellItem2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_SystemServices", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl IShellItem2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>() -> IShellItem2_Vtbl {
unsafe extern "system" fn GetPropertyStore<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: PropertiesSystem::GETPROPERTYSTOREFLAGS, riid: *const ::windows_core::GUID, ppv: *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();
this.GetPropertyStore(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetPropertyStoreWithCreateObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: PropertiesSystem::GETPROPERTYSTOREFLAGS, punkcreateobject: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetPropertyStoreWithCreateObject(::core::mem::transmute_copy(&flags), ::windows_core::from_raw_borrowed(&punkcreateobject), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetPropertyStoreForKeys<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rgkeys: *const PropertiesSystem::PROPERTYKEY, ckeys: u32, flags: PropertiesSystem::GETPROPERTYSTOREFLAGS, riid: *const ::windows_core::GUID, ppv: *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();
this.GetPropertyStoreForKeys(::core::mem::transmute_copy(&rgkeys), ::core::mem::transmute_copy(&ckeys), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetPropertyDescriptionList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, keytype: *const PropertiesSystem::PROPERTYKEY, riid: *const ::windows_core::GUID, ppv: *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();
this.GetPropertyDescriptionList(::core::mem::transmute_copy(&keytype), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn Update<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbc: *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.Update(::windows_core::from_raw_borrowed(&pbc)).into()
}
unsafe extern "system" fn GetProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, ppropvar: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProperty(::core::mem::transmute_copy(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppropvar, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCLSID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, pclsid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCLSID(::core::mem::transmute_copy(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pclsid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFileTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, pft: *mut super::super::Foundation::FILETIME) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFileTime(::core::mem::transmute_copy(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pft, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInt32<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, pi: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInt32(::core::mem::transmute_copy(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pi, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetString<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, ppsz: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetString(::core::mem::transmute_copy(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsz, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetUInt32<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, pui: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetUInt32(::core::mem::transmute_copy(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pui, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetUInt64<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, pull: *mut u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetUInt64(::core::mem::transmute_copy(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pull, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBool<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *const PropertiesSystem::PROPERTYKEY, pf: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetBool(::core::mem::transmute_copy(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pf, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IShellItem_Vtbl::new::<Identity, Impl, OFFSET>(),
GetPropertyStore: GetPropertyStore::<Identity, Impl, OFFSET>,
GetPropertyStoreWithCreateObject: GetPropertyStoreWithCreateObject::<Identity, Impl, OFFSET>,
GetPropertyStoreForKeys: GetPropertyStoreForKeys::<Identity, Impl, OFFSET>,
GetPropertyDescriptionList: GetPropertyDescriptionList::<Identity, Impl, OFFSET>,
Update: Update::<Identity, Impl, OFFSET>,
GetProperty: GetProperty::<Identity, Impl, OFFSET>,
GetCLSID: GetCLSID::<Identity, Impl, OFFSET>,
GetFileTime: GetFileTime::<Identity, Impl, OFFSET>,
GetInt32: GetInt32::<Identity, Impl, OFFSET>,
GetString: GetString::<Identity, Impl, OFFSET>,
GetUInt32: GetUInt32::<Identity, Impl, OFFSET>,
GetUInt64: GetUInt64::<Identity, Impl, OFFSET>,
GetBool: GetBool::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellItem2 as ::windows_core::ComInterface>::IID || iid == &<IShellItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_System_SystemServices\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_SystemServices", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait IShellItemArray_Impl: Sized {
fn BindToHandler(&self, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>, bhid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppvout: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetPropertyStore(&self, flags: PropertiesSystem::GETPROPERTYSTOREFLAGS, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetPropertyDescriptionList(&self, keytype: *const PropertiesSystem::PROPERTYKEY, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetAttributes(&self, attribflags: SIATTRIBFLAGS, sfgaomask: super::super::System::SystemServices::SFGAO_FLAGS) -> ::windows_core::Result<super::super::System::SystemServices::SFGAO_FLAGS>;
fn GetCount(&self) -> ::windows_core::Result<u32>;
fn GetItemAt(&self, dwindex: u32) -> ::windows_core::Result<IShellItem>;
fn EnumItems(&self) -> ::windows_core::Result<IEnumShellItems>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_SystemServices", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for IShellItemArray {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_SystemServices", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl IShellItemArray_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemArray_Impl, const OFFSET: isize>() -> IShellItemArray_Vtbl {
unsafe extern "system" fn BindToHandler<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbc: *mut ::core::ffi::c_void, bhid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppvout: *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();
this.BindToHandler(::windows_core::from_raw_borrowed(&pbc), ::core::mem::transmute_copy(&bhid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppvout)).into()
}
unsafe extern "system" fn GetPropertyStore<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: PropertiesSystem::GETPROPERTYSTOREFLAGS, riid: *const ::windows_core::GUID, ppv: *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();
this.GetPropertyStore(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetPropertyDescriptionList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, keytype: *const PropertiesSystem::PROPERTYKEY, riid: *const ::windows_core::GUID, ppv: *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();
this.GetPropertyDescriptionList(::core::mem::transmute_copy(&keytype), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, attribflags: SIATTRIBFLAGS, sfgaomask: super::super::System::SystemServices::SFGAO_FLAGS, psfgaoattribs: *mut super::super::System::SystemServices::SFGAO_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAttributes(::core::mem::transmute_copy(&attribflags), ::core::mem::transmute_copy(&sfgaomask)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psfgaoattribs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwnumitems: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwnumitems, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItemAt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwindex: u32, ppsi: *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.GetItemAt(::core::mem::transmute_copy(&dwindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsi, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenumshellitems: *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.EnumItems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenumshellitems, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
BindToHandler: BindToHandler::<Identity, Impl, OFFSET>,
GetPropertyStore: GetPropertyStore::<Identity, Impl, OFFSET>,
GetPropertyDescriptionList: GetPropertyDescriptionList::<Identity, Impl, OFFSET>,
GetAttributes: GetAttributes::<Identity, Impl, OFFSET>,
GetCount: GetCount::<Identity, Impl, OFFSET>,
GetItemAt: GetItemAt::<Identity, Impl, OFFSET>,
EnumItems: EnumItems::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellItemArray as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IShellItemFilter_Impl: Sized {
fn IncludeItem(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn GetEnumFlagsForItem(&self, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IShellItemFilter {}
impl IShellItemFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemFilter_Impl, const OFFSET: isize>() -> IShellItemFilter_Vtbl {
unsafe extern "system" fn IncludeItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *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.IncludeItem(::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn GetEnumFlagsForItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, pgrfflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEnumFlagsForItem(::windows_core::from_raw_borrowed(&psi)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pgrfflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IncludeItem: IncludeItem::<Identity, Impl, OFFSET>,
GetEnumFlagsForItem: GetEnumFlagsForItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellItemFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IShellItemImageFactory_Impl: Sized {
fn GetImage(&self, size: &super::super::Foundation::SIZE, flags: SIIGBF) -> ::windows_core::Result<super::super::Graphics::Gdi::HBITMAP>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IShellItemImageFactory {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IShellItemImageFactory_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemImageFactory_Impl, const OFFSET: isize>() -> IShellItemImageFactory_Vtbl {
unsafe extern "system" fn GetImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemImageFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: super::super::Foundation::SIZE, flags: SIIGBF, phbm: *mut super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetImage(::core::mem::transmute(&size), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phbm, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetImage: GetImage::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellItemImageFactory as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IShellItemResources_Impl: Sized {
fn GetAttributes(&self) -> ::windows_core::Result<u32>;
fn GetSize(&self) -> ::windows_core::Result<u64>;
fn GetTimes(&self, pftcreation: *mut super::super::Foundation::FILETIME, pftwrite: *mut super::super::Foundation::FILETIME, pftaccess: *mut super::super::Foundation::FILETIME) -> ::windows_core::Result<()>;
fn SetTimes(&self, pftcreation: *const super::super::Foundation::FILETIME, pftwrite: *const super::super::Foundation::FILETIME, pftaccess: *const super::super::Foundation::FILETIME) -> ::windows_core::Result<()>;
fn GetResourceDescription(&self, pcsir: *const SHELL_ITEM_RESOURCE) -> ::windows_core::Result<::windows_core::PWSTR>;
fn EnumResources(&self) -> ::windows_core::Result<IEnumResources>;
fn SupportsResource(&self, pcsir: *const SHELL_ITEM_RESOURCE) -> ::windows_core::Result<()>;
fn OpenResource(&self, pcsir: *const SHELL_ITEM_RESOURCE, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn CreateResource(&self, pcsir: *const SHELL_ITEM_RESOURCE, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn MarkForDelete(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IShellItemResources {}
#[cfg(feature = "Win32_Foundation")]
impl IShellItemResources_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>() -> IShellItemResources_Vtbl {
unsafe extern "system" fn GetAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwattributes: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAttributes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwattributes, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pullsize: *mut u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pullsize, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTimes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pftcreation: *mut super::super::Foundation::FILETIME, pftwrite: *mut super::super::Foundation::FILETIME, pftaccess: *mut super::super::Foundation::FILETIME) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTimes(::core::mem::transmute_copy(&pftcreation), ::core::mem::transmute_copy(&pftwrite), ::core::mem::transmute_copy(&pftaccess)).into()
}
unsafe extern "system" fn SetTimes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pftcreation: *const super::super::Foundation::FILETIME, pftwrite: *const super::super::Foundation::FILETIME, pftaccess: *const super::super::Foundation::FILETIME) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTimes(::core::mem::transmute_copy(&pftcreation), ::core::mem::transmute_copy(&pftwrite), ::core::mem::transmute_copy(&pftaccess)).into()
}
unsafe extern "system" fn GetResourceDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcsir: *const SHELL_ITEM_RESOURCE, ppszdescription: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetResourceDescription(::core::mem::transmute_copy(&pcsir)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszdescription, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumResources<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenumr: *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.EnumResources() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenumr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SupportsResource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcsir: *const SHELL_ITEM_RESOURCE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SupportsResource(::core::mem::transmute_copy(&pcsir)).into()
}
unsafe extern "system" fn OpenResource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcsir: *const SHELL_ITEM_RESOURCE, riid: *const ::windows_core::GUID, ppv: *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();
this.OpenResource(::core::mem::transmute_copy(&pcsir), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn CreateResource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcsir: *const SHELL_ITEM_RESOURCE, riid: *const ::windows_core::GUID, ppv: *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();
this.CreateResource(::core::mem::transmute_copy(&pcsir), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn MarkForDelete<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellItemResources_Impl, const OFFSET: isize>(this: *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.MarkForDelete().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetAttributes: GetAttributes::<Identity, Impl, OFFSET>,
GetSize: GetSize::<Identity, Impl, OFFSET>,
GetTimes: GetTimes::<Identity, Impl, OFFSET>,
SetTimes: SetTimes::<Identity, Impl, OFFSET>,
GetResourceDescription: GetResourceDescription::<Identity, Impl, OFFSET>,
EnumResources: EnumResources::<Identity, Impl, OFFSET>,
SupportsResource: SupportsResource::<Identity, Impl, OFFSET>,
OpenResource: OpenResource::<Identity, Impl, OFFSET>,
CreateResource: CreateResource::<Identity, Impl, OFFSET>,
MarkForDelete: MarkForDelete::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellItemResources as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IShellLibrary_Impl: Sized {
fn LoadLibraryFromItem(&self, psilibrary: ::core::option::Option<&IShellItem>, grfmode: u32) -> ::windows_core::Result<()>;
fn LoadLibraryFromKnownFolder(&self, kfidlibrary: *const ::windows_core::GUID, grfmode: u32) -> ::windows_core::Result<()>;
fn AddFolder(&self, psilocation: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn RemoveFolder(&self, psilocation: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn GetFolders(&self, lff: LIBRARYFOLDERFILTER, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn ResolveFolder(&self, psifoldertoresolve: ::core::option::Option<&IShellItem>, dwtimeout: u32, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetDefaultSaveFolder(&self, dsft: DEFAULTSAVEFOLDERTYPE, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn SetDefaultSaveFolder(&self, dsft: DEFAULTSAVEFOLDERTYPE, psi: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn GetOptions(&self) -> ::windows_core::Result<LIBRARYOPTIONFLAGS>;
fn SetOptions(&self, lofmask: LIBRARYOPTIONFLAGS, lofoptions: LIBRARYOPTIONFLAGS) -> ::windows_core::Result<()>;
fn GetFolderType(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn SetFolderType(&self, ftid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetIcon(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn SetIcon(&self, pszicon: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn Commit(&self) -> ::windows_core::Result<()>;
fn Save(&self, psifoldertosavein: ::core::option::Option<&IShellItem>, pszlibraryname: &::windows_core::PCWSTR, lsf: LIBRARYSAVEFLAGS) -> ::windows_core::Result<IShellItem>;
fn SaveInKnownFolder(&self, kfidtosavein: *const ::windows_core::GUID, pszlibraryname: &::windows_core::PCWSTR, lsf: LIBRARYSAVEFLAGS) -> ::windows_core::Result<IShellItem>;
}
impl ::windows_core::RuntimeName for IShellLibrary {}
impl IShellLibrary_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>() -> IShellLibrary_Vtbl {
unsafe extern "system" fn LoadLibraryFromItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psilibrary: *mut ::core::ffi::c_void, grfmode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LoadLibraryFromItem(::windows_core::from_raw_borrowed(&psilibrary), ::core::mem::transmute_copy(&grfmode)).into()
}
unsafe extern "system" fn LoadLibraryFromKnownFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kfidlibrary: *const ::windows_core::GUID, grfmode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LoadLibraryFromKnownFolder(::core::mem::transmute_copy(&kfidlibrary), ::core::mem::transmute_copy(&grfmode)).into()
}
unsafe extern "system" fn AddFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psilocation: *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.AddFolder(::windows_core::from_raw_borrowed(&psilocation)).into()
}
unsafe extern "system" fn RemoveFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psilocation: *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.RemoveFolder(::windows_core::from_raw_borrowed(&psilocation)).into()
}
unsafe extern "system" fn GetFolders<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lff: LIBRARYFOLDERFILTER, riid: *const ::windows_core::GUID, ppv: *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();
this.GetFolders(::core::mem::transmute_copy(&lff), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn ResolveFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psifoldertoresolve: *mut ::core::ffi::c_void, dwtimeout: u32, riid: *const ::windows_core::GUID, ppv: *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();
this.ResolveFolder(::windows_core::from_raw_borrowed(&psifoldertoresolve), ::core::mem::transmute_copy(&dwtimeout), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetDefaultSaveFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dsft: DEFAULTSAVEFOLDERTYPE, riid: *const ::windows_core::GUID, ppv: *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();
this.GetDefaultSaveFolder(::core::mem::transmute_copy(&dsft), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn SetDefaultSaveFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dsft: DEFAULTSAVEFOLDERTYPE, psi: *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.SetDefaultSaveFolder(::core::mem::transmute_copy(&dsft), ::windows_core::from_raw_borrowed(&psi)).into()
}
unsafe extern "system" fn GetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plofoptions: *mut LIBRARYOPTIONFLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plofoptions, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lofmask: LIBRARYOPTIONFLAGS, lofoptions: LIBRARYOPTIONFLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOptions(::core::mem::transmute_copy(&lofmask), ::core::mem::transmute_copy(&lofoptions)).into()
}
unsafe extern "system" fn GetFolderType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pftid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFolderType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pftid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFolderType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ftid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFolderType(::core::mem::transmute_copy(&ftid)).into()
}
unsafe extern "system" fn GetIcon<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszicon: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIcon() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszicon, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetIcon<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszicon: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIcon(::core::mem::transmute(&pszicon)).into()
}
unsafe extern "system" fn Commit<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *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.Commit().into()
}
unsafe extern "system" fn Save<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psifoldertosavein: *mut ::core::ffi::c_void, pszlibraryname: ::windows_core::PCWSTR, lsf: LIBRARYSAVEFLAGS, ppsisavedto: *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.Save(::windows_core::from_raw_borrowed(&psifoldertosavein), ::core::mem::transmute(&pszlibraryname), ::core::mem::transmute_copy(&lsf)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsisavedto, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SaveInKnownFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLibrary_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kfidtosavein: *const ::windows_core::GUID, pszlibraryname: ::windows_core::PCWSTR, lsf: LIBRARYSAVEFLAGS, ppsisavedto: *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.SaveInKnownFolder(::core::mem::transmute_copy(&kfidtosavein), ::core::mem::transmute(&pszlibraryname), ::core::mem::transmute_copy(&lsf)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsisavedto, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
LoadLibraryFromItem: LoadLibraryFromItem::<Identity, Impl, OFFSET>,
LoadLibraryFromKnownFolder: LoadLibraryFromKnownFolder::<Identity, Impl, OFFSET>,
AddFolder: AddFolder::<Identity, Impl, OFFSET>,
RemoveFolder: RemoveFolder::<Identity, Impl, OFFSET>,
GetFolders: GetFolders::<Identity, Impl, OFFSET>,
ResolveFolder: ResolveFolder::<Identity, Impl, OFFSET>,
GetDefaultSaveFolder: GetDefaultSaveFolder::<Identity, Impl, OFFSET>,
SetDefaultSaveFolder: SetDefaultSaveFolder::<Identity, Impl, OFFSET>,
GetOptions: GetOptions::<Identity, Impl, OFFSET>,
SetOptions: SetOptions::<Identity, Impl, OFFSET>,
GetFolderType: GetFolderType::<Identity, Impl, OFFSET>,
SetFolderType: SetFolderType::<Identity, Impl, OFFSET>,
GetIcon: GetIcon::<Identity, Impl, OFFSET>,
SetIcon: SetIcon::<Identity, Impl, OFFSET>,
Commit: Commit::<Identity, Impl, OFFSET>,
Save: Save::<Identity, Impl, OFFSET>,
SaveInKnownFolder: SaveInKnownFolder::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellLibrary as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IShellLinkA_Impl: Sized {
fn GetPath(&self, pszfile: ::windows_core::PSTR, cch: i32, pfd: *mut super::super::Storage::FileSystem::WIN32_FIND_DATAA, fflags: u32) -> ::windows_core::Result<()>;
fn GetIDList(&self) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
fn SetIDList(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn GetDescription(&self, pszname: ::windows_core::PSTR, cch: i32) -> ::windows_core::Result<()>;
fn SetDescription(&self, pszname: &::windows_core::PCSTR) -> ::windows_core::Result<()>;
fn GetWorkingDirectory(&self, pszdir: ::windows_core::PSTR, cch: i32) -> ::windows_core::Result<()>;
fn SetWorkingDirectory(&self, pszdir: &::windows_core::PCSTR) -> ::windows_core::Result<()>;
fn GetArguments(&self, pszargs: ::windows_core::PSTR, cch: i32) -> ::windows_core::Result<()>;
fn SetArguments(&self, pszargs: &::windows_core::PCSTR) -> ::windows_core::Result<()>;
fn GetHotkey(&self) -> ::windows_core::Result<u16>;
fn SetHotkey(&self, whotkey: u16) -> ::windows_core::Result<()>;
fn GetShowCmd(&self) -> ::windows_core::Result<super::WindowsAndMessaging::SHOW_WINDOW_CMD>;
fn SetShowCmd(&self, ishowcmd: super::WindowsAndMessaging::SHOW_WINDOW_CMD) -> ::windows_core::Result<()>;
fn GetIconLocation(&self, psziconpath: ::windows_core::PSTR, cch: i32, piicon: *mut i32) -> ::windows_core::Result<()>;
fn SetIconLocation(&self, psziconpath: &::windows_core::PCSTR, iicon: i32) -> ::windows_core::Result<()>;
fn SetRelativePath(&self, pszpathrel: &::windows_core::PCSTR, dwreserved: u32) -> ::windows_core::Result<()>;
fn Resolve(&self, hwnd: super::super::Foundation::HWND, fflags: u32) -> ::windows_core::Result<()>;
fn SetPath(&self, pszfile: &::windows_core::PCSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IShellLinkA {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IShellLinkA_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>() -> IShellLinkA_Vtbl {
unsafe extern "system" fn GetPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfile: ::windows_core::PSTR, cch: i32, pfd: *mut super::super::Storage::FileSystem::WIN32_FIND_DATAA, fflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPath(::core::mem::transmute_copy(&pszfile), ::core::mem::transmute_copy(&cch), ::core::mem::transmute_copy(&pfd), ::core::mem::transmute_copy(&fflags)).into()
}
unsafe extern "system" fn GetIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidl: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIDList() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIDList(::core::mem::transmute_copy(&pidl)).into()
}
unsafe extern "system" fn GetDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PSTR, cch: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDescription(::core::mem::transmute_copy(&pszname), ::core::mem::transmute_copy(&cch)).into()
}
unsafe extern "system" fn SetDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PCSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDescription(::core::mem::transmute(&pszname)).into()
}
unsafe extern "system" fn GetWorkingDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdir: ::windows_core::PSTR, cch: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWorkingDirectory(::core::mem::transmute_copy(&pszdir), ::core::mem::transmute_copy(&cch)).into()
}
unsafe extern "system" fn SetWorkingDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdir: ::windows_core::PCSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWorkingDirectory(::core::mem::transmute(&pszdir)).into()
}
unsafe extern "system" fn GetArguments<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszargs: ::windows_core::PSTR, cch: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetArguments(::core::mem::transmute_copy(&pszargs), ::core::mem::transmute_copy(&cch)).into()
}
unsafe extern "system" fn SetArguments<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszargs: ::windows_core::PCSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetArguments(::core::mem::transmute(&pszargs)).into()
}
unsafe extern "system" fn GetHotkey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwhotkey: *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetHotkey() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pwhotkey, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetHotkey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, whotkey: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHotkey(::core::mem::transmute_copy(&whotkey)).into()
}
unsafe extern "system" fn GetShowCmd<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pishowcmd: *mut super::WindowsAndMessaging::SHOW_WINDOW_CMD) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetShowCmd() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pishowcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetShowCmd<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ishowcmd: super::WindowsAndMessaging::SHOW_WINDOW_CMD) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetShowCmd(::core::mem::transmute_copy(&ishowcmd)).into()
}
unsafe extern "system" fn GetIconLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psziconpath: ::windows_core::PSTR, cch: i32, piicon: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIconLocation(::core::mem::transmute_copy(&psziconpath), ::core::mem::transmute_copy(&cch), ::core::mem::transmute_copy(&piicon)).into()
}
unsafe extern "system" fn SetIconLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psziconpath: ::windows_core::PCSTR, iicon: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIconLocation(::core::mem::transmute(&psziconpath), ::core::mem::transmute_copy(&iicon)).into()
}
unsafe extern "system" fn SetRelativePath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpathrel: ::windows_core::PCSTR, dwreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRelativePath(::core::mem::transmute(&pszpathrel), ::core::mem::transmute_copy(&dwreserved)).into()
}
unsafe extern "system" fn Resolve<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, fflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Resolve(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&fflags)).into()
}
unsafe extern "system" fn SetPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfile: ::windows_core::PCSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPath(::core::mem::transmute(&pszfile)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetPath: GetPath::<Identity, Impl, OFFSET>,
GetIDList: GetIDList::<Identity, Impl, OFFSET>,
SetIDList: SetIDList::<Identity, Impl, OFFSET>,
GetDescription: GetDescription::<Identity, Impl, OFFSET>,
SetDescription: SetDescription::<Identity, Impl, OFFSET>,
GetWorkingDirectory: GetWorkingDirectory::<Identity, Impl, OFFSET>,
SetWorkingDirectory: SetWorkingDirectory::<Identity, Impl, OFFSET>,
GetArguments: GetArguments::<Identity, Impl, OFFSET>,
SetArguments: SetArguments::<Identity, Impl, OFFSET>,
GetHotkey: GetHotkey::<Identity, Impl, OFFSET>,
SetHotkey: SetHotkey::<Identity, Impl, OFFSET>,
GetShowCmd: GetShowCmd::<Identity, Impl, OFFSET>,
SetShowCmd: SetShowCmd::<Identity, Impl, OFFSET>,
GetIconLocation: GetIconLocation::<Identity, Impl, OFFSET>,
SetIconLocation: SetIconLocation::<Identity, Impl, OFFSET>,
SetRelativePath: SetRelativePath::<Identity, Impl, OFFSET>,
Resolve: Resolve::<Identity, Impl, OFFSET>,
SetPath: SetPath::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellLinkA as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IShellLinkDataList_Impl: Sized {
fn AddDataBlock(&self, pdatablock: *const ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn CopyDataBlock(&self, dwsig: u32, ppdatablock: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn RemoveDataBlock(&self, dwsig: u32) -> ::windows_core::Result<()>;
fn GetFlags(&self) -> ::windows_core::Result<u32>;
fn SetFlags(&self, dwflags: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IShellLinkDataList {}
impl IShellLinkDataList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDataList_Impl, const OFFSET: isize>() -> IShellLinkDataList_Vtbl {
unsafe extern "system" fn AddDataBlock<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDataList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdatablock: *const ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDataBlock(::core::mem::transmute_copy(&pdatablock)).into()
}
unsafe extern "system" fn CopyDataBlock<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDataList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsig: u32, ppdatablock: *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();
this.CopyDataBlock(::core::mem::transmute_copy(&dwsig), ::core::mem::transmute_copy(&ppdatablock)).into()
}
unsafe extern "system" fn RemoveDataBlock<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDataList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsig: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveDataBlock(::core::mem::transmute_copy(&dwsig)).into()
}
unsafe extern "system" fn GetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDataList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDataList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFlags(::core::mem::transmute_copy(&dwflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AddDataBlock: AddDataBlock::<Identity, Impl, OFFSET>,
CopyDataBlock: CopyDataBlock::<Identity, Impl, OFFSET>,
RemoveDataBlock: RemoveDataBlock::<Identity, Impl, OFFSET>,
GetFlags: GetFlags::<Identity, Impl, OFFSET>,
SetFlags: SetFlags::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellLinkDataList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellLinkDual_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Path(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetPath(&self, bs: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Description(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetDescription(&self, bs: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn WorkingDirectory(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetWorkingDirectory(&self, bs: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Arguments(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetArguments(&self, bs: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Hotkey(&self) -> ::windows_core::Result<i32>;
fn SetHotkey(&self, ihk: i32) -> ::windows_core::Result<()>;
fn ShowCommand(&self) -> ::windows_core::Result<i32>;
fn SetShowCommand(&self, ishowcommand: i32) -> ::windows_core::Result<()>;
fn Resolve(&self, fflags: i32) -> ::windows_core::Result<()>;
fn GetIconLocation(&self, pbs: *mut ::windows_core::BSTR, piicon: *mut i32) -> ::windows_core::Result<()>;
fn SetIconLocation(&self, bs: &::windows_core::BSTR, iicon: i32) -> ::windows_core::Result<()>;
fn Save(&self, vwhere: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellLinkDual {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellLinkDual_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>() -> IShellLinkDual_Vtbl {
unsafe extern "system" fn Path<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Path() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bs: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPath(::core::mem::transmute(&bs)).into()
}
unsafe extern "system" fn Description<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Description() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bs: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDescription(::core::mem::transmute(&bs)).into()
}
unsafe extern "system" fn WorkingDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.WorkingDirectory() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetWorkingDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bs: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWorkingDirectory(::core::mem::transmute(&bs)).into()
}
unsafe extern "system" fn Arguments<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Arguments() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetArguments<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bs: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetArguments(::core::mem::transmute(&bs)).into()
}
unsafe extern "system" fn Hotkey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pihk: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Hotkey() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pihk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetHotkey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ihk: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHotkey(::core::mem::transmute_copy(&ihk)).into()
}
unsafe extern "system" fn ShowCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pishowcommand: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ShowCommand() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pishowcommand, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetShowCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ishowcommand: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetShowCommand(::core::mem::transmute_copy(&ishowcommand)).into()
}
unsafe extern "system" fn Resolve<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fflags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Resolve(::core::mem::transmute_copy(&fflags)).into()
}
unsafe extern "system" fn GetIconLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbs: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, piicon: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIconLocation(::core::mem::transmute_copy(&pbs), ::core::mem::transmute_copy(&piicon)).into()
}
unsafe extern "system" fn SetIconLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bs: ::std::mem::MaybeUninit<::windows_core::BSTR>, iicon: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIconLocation(::core::mem::transmute(&bs), ::core::mem::transmute_copy(&iicon)).into()
}
unsafe extern "system" fn Save<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vwhere: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Save(::core::mem::transmute(&vwhere)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Path: Path::<Identity, Impl, OFFSET>,
SetPath: SetPath::<Identity, Impl, OFFSET>,
Description: Description::<Identity, Impl, OFFSET>,
SetDescription: SetDescription::<Identity, Impl, OFFSET>,
WorkingDirectory: WorkingDirectory::<Identity, Impl, OFFSET>,
SetWorkingDirectory: SetWorkingDirectory::<Identity, Impl, OFFSET>,
Arguments: Arguments::<Identity, Impl, OFFSET>,
SetArguments: SetArguments::<Identity, Impl, OFFSET>,
Hotkey: Hotkey::<Identity, Impl, OFFSET>,
SetHotkey: SetHotkey::<Identity, Impl, OFFSET>,
ShowCommand: ShowCommand::<Identity, Impl, OFFSET>,
SetShowCommand: SetShowCommand::<Identity, Impl, OFFSET>,
Resolve: Resolve::<Identity, Impl, OFFSET>,
GetIconLocation: GetIconLocation::<Identity, Impl, OFFSET>,
SetIconLocation: SetIconLocation::<Identity, Impl, OFFSET>,
Save: Save::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellLinkDual as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellLinkDual2_Impl: Sized + IShellLinkDual_Impl {
fn Target(&self) -> ::windows_core::Result<FolderItem>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellLinkDual2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellLinkDual2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual2_Impl, const OFFSET: isize>() -> IShellLinkDual2_Vtbl {
unsafe extern "system" fn Target<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkDual2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppfi: *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.Target() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppfi, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IShellLinkDual_Vtbl::new::<Identity, Impl, OFFSET>(), Target: Target::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellLinkDual2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellLinkDual as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IShellLinkW_Impl: Sized {
fn GetPath(&self, pszfile: ::windows_core::PWSTR, cch: i32, pfd: *mut super::super::Storage::FileSystem::WIN32_FIND_DATAW, fflags: u32) -> ::windows_core::Result<()>;
fn GetIDList(&self) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
fn SetIDList(&self, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn GetDescription(&self, pszname: ::windows_core::PWSTR, cch: i32) -> ::windows_core::Result<()>;
fn SetDescription(&self, pszname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetWorkingDirectory(&self, pszdir: ::windows_core::PWSTR, cch: i32) -> ::windows_core::Result<()>;
fn SetWorkingDirectory(&self, pszdir: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetArguments(&self, pszargs: ::windows_core::PWSTR, cch: i32) -> ::windows_core::Result<()>;
fn SetArguments(&self, pszargs: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetHotkey(&self) -> ::windows_core::Result<u16>;
fn SetHotkey(&self, whotkey: u16) -> ::windows_core::Result<()>;
fn GetShowCmd(&self) -> ::windows_core::Result<super::WindowsAndMessaging::SHOW_WINDOW_CMD>;
fn SetShowCmd(&self, ishowcmd: super::WindowsAndMessaging::SHOW_WINDOW_CMD) -> ::windows_core::Result<()>;
fn GetIconLocation(&self, psziconpath: ::windows_core::PWSTR, cch: i32, piicon: *mut i32) -> ::windows_core::Result<()>;
fn SetIconLocation(&self, psziconpath: &::windows_core::PCWSTR, iicon: i32) -> ::windows_core::Result<()>;
fn SetRelativePath(&self, pszpathrel: &::windows_core::PCWSTR, dwreserved: u32) -> ::windows_core::Result<()>;
fn Resolve(&self, hwnd: super::super::Foundation::HWND, fflags: u32) -> ::windows_core::Result<()>;
fn SetPath(&self, pszfile: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IShellLinkW {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IShellLinkW_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>() -> IShellLinkW_Vtbl {
unsafe extern "system" fn GetPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfile: ::windows_core::PWSTR, cch: i32, pfd: *mut super::super::Storage::FileSystem::WIN32_FIND_DATAW, fflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPath(::core::mem::transmute_copy(&pszfile), ::core::mem::transmute_copy(&cch), ::core::mem::transmute_copy(&pfd), ::core::mem::transmute_copy(&fflags)).into()
}
unsafe extern "system" fn GetIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidl: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIDList() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIDList(::core::mem::transmute_copy(&pidl)).into()
}
unsafe extern "system" fn GetDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PWSTR, cch: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDescription(::core::mem::transmute_copy(&pszname), ::core::mem::transmute_copy(&cch)).into()
}
unsafe extern "system" fn SetDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDescription(::core::mem::transmute(&pszname)).into()
}
unsafe extern "system" fn GetWorkingDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdir: ::windows_core::PWSTR, cch: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWorkingDirectory(::core::mem::transmute_copy(&pszdir), ::core::mem::transmute_copy(&cch)).into()
}
unsafe extern "system" fn SetWorkingDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszdir: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWorkingDirectory(::core::mem::transmute(&pszdir)).into()
}
unsafe extern "system" fn GetArguments<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszargs: ::windows_core::PWSTR, cch: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetArguments(::core::mem::transmute_copy(&pszargs), ::core::mem::transmute_copy(&cch)).into()
}
unsafe extern "system" fn SetArguments<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszargs: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetArguments(::core::mem::transmute(&pszargs)).into()
}
unsafe extern "system" fn GetHotkey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwhotkey: *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetHotkey() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pwhotkey, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetHotkey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, whotkey: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHotkey(::core::mem::transmute_copy(&whotkey)).into()
}
unsafe extern "system" fn GetShowCmd<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pishowcmd: *mut super::WindowsAndMessaging::SHOW_WINDOW_CMD) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetShowCmd() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pishowcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetShowCmd<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ishowcmd: super::WindowsAndMessaging::SHOW_WINDOW_CMD) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetShowCmd(::core::mem::transmute_copy(&ishowcmd)).into()
}
unsafe extern "system" fn GetIconLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psziconpath: ::windows_core::PWSTR, cch: i32, piicon: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIconLocation(::core::mem::transmute_copy(&psziconpath), ::core::mem::transmute_copy(&cch), ::core::mem::transmute_copy(&piicon)).into()
}
unsafe extern "system" fn SetIconLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psziconpath: ::windows_core::PCWSTR, iicon: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIconLocation(::core::mem::transmute(&psziconpath), ::core::mem::transmute_copy(&iicon)).into()
}
unsafe extern "system" fn SetRelativePath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpathrel: ::windows_core::PCWSTR, dwreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRelativePath(::core::mem::transmute(&pszpathrel), ::core::mem::transmute_copy(&dwreserved)).into()
}
unsafe extern "system" fn Resolve<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, fflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Resolve(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&fflags)).into()
}
unsafe extern "system" fn SetPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellLinkW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfile: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPath(::core::mem::transmute(&pszfile)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetPath: GetPath::<Identity, Impl, OFFSET>,
GetIDList: GetIDList::<Identity, Impl, OFFSET>,
SetIDList: SetIDList::<Identity, Impl, OFFSET>,
GetDescription: GetDescription::<Identity, Impl, OFFSET>,
SetDescription: SetDescription::<Identity, Impl, OFFSET>,
GetWorkingDirectory: GetWorkingDirectory::<Identity, Impl, OFFSET>,
SetWorkingDirectory: SetWorkingDirectory::<Identity, Impl, OFFSET>,
GetArguments: GetArguments::<Identity, Impl, OFFSET>,
SetArguments: SetArguments::<Identity, Impl, OFFSET>,
GetHotkey: GetHotkey::<Identity, Impl, OFFSET>,
SetHotkey: SetHotkey::<Identity, Impl, OFFSET>,
GetShowCmd: GetShowCmd::<Identity, Impl, OFFSET>,
SetShowCmd: SetShowCmd::<Identity, Impl, OFFSET>,
GetIconLocation: GetIconLocation::<Identity, Impl, OFFSET>,
SetIconLocation: SetIconLocation::<Identity, Impl, OFFSET>,
SetRelativePath: SetRelativePath::<Identity, Impl, OFFSET>,
Resolve: Resolve::<Identity, Impl, OFFSET>,
SetPath: SetPath::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellLinkW as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IShellMenu_Impl: Sized {
fn Initialize(&self, psmc: ::core::option::Option<&IShellMenuCallback>, uid: u32, uidancestor: u32, dwflags: u32) -> ::windows_core::Result<()>;
fn GetMenuInfo(&self, ppsmc: *mut ::core::option::Option<IShellMenuCallback>, puid: *mut u32, puidancestor: *mut u32, pdwflags: *mut u32) -> ::windows_core::Result<()>;
fn SetShellFolder(&self, psf: ::core::option::Option<&IShellFolder>, pidlfolder: *const Common::ITEMIDLIST, hkey: super::super::System::Registry::HKEY, dwflags: u32) -> ::windows_core::Result<()>;
fn GetShellFolder(&self, pdwflags: *mut u32, ppidl: *mut *mut Common::ITEMIDLIST, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn SetMenu(&self, hmenu: super::WindowsAndMessaging::HMENU, hwnd: super::super::Foundation::HWND, dwflags: u32) -> ::windows_core::Result<()>;
fn GetMenu(&self, phmenu: *mut super::WindowsAndMessaging::HMENU, phwnd: *mut super::super::Foundation::HWND, pdwflags: *mut u32) -> ::windows_core::Result<()>;
fn InvalidateItem(&self, psmd: *const SMDATA, dwflags: u32) -> ::windows_core::Result<()>;
fn GetState(&self, psmd: *mut SMDATA) -> ::windows_core::Result<()>;
fn SetMenuToolbar(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, dwflags: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IShellMenu {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IShellMenu_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenu_Impl, const OFFSET: isize>() -> IShellMenu_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psmc: *mut ::core::ffi::c_void, uid: u32, uidancestor: u32, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::windows_core::from_raw_borrowed(&psmc), ::core::mem::transmute_copy(&uid), ::core::mem::transmute_copy(&uidancestor), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn GetMenuInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsmc: *mut *mut ::core::ffi::c_void, puid: *mut u32, puidancestor: *mut u32, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMenuInfo(::core::mem::transmute_copy(&ppsmc), ::core::mem::transmute_copy(&puid), ::core::mem::transmute_copy(&puidancestor), ::core::mem::transmute_copy(&pdwflags)).into()
}
unsafe extern "system" fn SetShellFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psf: *mut ::core::ffi::c_void, pidlfolder: *const Common::ITEMIDLIST, hkey: super::super::System::Registry::HKEY, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetShellFolder(::windows_core::from_raw_borrowed(&psf), ::core::mem::transmute_copy(&pidlfolder), ::core::mem::transmute_copy(&hkey), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn GetShellFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32, ppidl: *mut *mut Common::ITEMIDLIST, riid: *const ::windows_core::GUID, ppv: *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();
this.GetShellFolder(::core::mem::transmute_copy(&pdwflags), ::core::mem::transmute_copy(&ppidl), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn SetMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hmenu: super::WindowsAndMessaging::HMENU, hwnd: super::super::Foundation::HWND, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMenu(::core::mem::transmute_copy(&hmenu), ::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn GetMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phmenu: *mut super::WindowsAndMessaging::HMENU, phwnd: *mut super::super::Foundation::HWND, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMenu(::core::mem::transmute_copy(&phmenu), ::core::mem::transmute_copy(&phwnd), ::core::mem::transmute_copy(&pdwflags)).into()
}
unsafe extern "system" fn InvalidateItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psmd: *const SMDATA, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvalidateItem(::core::mem::transmute_copy(&psmd), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn GetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psmd: *mut SMDATA) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetState(::core::mem::transmute_copy(&psmd)).into()
}
unsafe extern "system" fn SetMenuToolbar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMenuToolbar(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&dwflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
GetMenuInfo: GetMenuInfo::<Identity, Impl, OFFSET>,
SetShellFolder: SetShellFolder::<Identity, Impl, OFFSET>,
GetShellFolder: GetShellFolder::<Identity, Impl, OFFSET>,
SetMenu: SetMenu::<Identity, Impl, OFFSET>,
GetMenu: GetMenu::<Identity, Impl, OFFSET>,
InvalidateItem: InvalidateItem::<Identity, Impl, OFFSET>,
GetState: GetState::<Identity, Impl, OFFSET>,
SetMenuToolbar: SetMenuToolbar::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellMenu as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IShellMenuCallback_Impl: Sized {
fn CallbackSM(&self, psmd: *mut SMDATA, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IShellMenuCallback {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IShellMenuCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenuCallback_Impl, const OFFSET: isize>() -> IShellMenuCallback_Vtbl {
unsafe extern "system" fn CallbackSM<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellMenuCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psmd: *mut SMDATA, umsg: u32, wparam: super::super::Foundation::WPARAM, lparam: super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallbackSM(::core::mem::transmute_copy(&psmd), ::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CallbackSM: CallbackSM::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellMenuCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellNameSpace_Impl: Sized + IShellFavoritesNameSpace_Impl {
fn EnumOptions(&self) -> ::windows_core::Result<i32>;
fn SetEnumOptions(&self, lval: i32) -> ::windows_core::Result<()>;
fn SelectedItem(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn SetSelectedItem(&self, pitem: ::core::option::Option<&super::super::System::Com::IDispatch>) -> ::windows_core::Result<()>;
fn Root(&self) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn SetRoot2(&self, var: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn Depth(&self) -> ::windows_core::Result<i32>;
fn SetDepth(&self, idepth: i32) -> ::windows_core::Result<()>;
fn Mode(&self) -> ::windows_core::Result<u32>;
fn SetMode(&self, umode: u32) -> ::windows_core::Result<()>;
fn Flags(&self) -> ::windows_core::Result<u32>;
fn SetFlags(&self, dwflags: u32) -> ::windows_core::Result<()>;
fn SetTVFlags(&self, dwflags: u32) -> ::windows_core::Result<()>;
fn TVFlags(&self) -> ::windows_core::Result<u32>;
fn Columns(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetColumns(&self, bstrcolumns: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn CountViewTypes(&self) -> ::windows_core::Result<i32>;
fn SetViewType(&self, itype: i32) -> ::windows_core::Result<()>;
fn SelectedItems(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Expand(&self, var: &super::super::System::Variant::VARIANT, idepth: i32) -> ::windows_core::Result<()>;
fn UnselectAll(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellNameSpace {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellNameSpace_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>() -> IShellNameSpace_Vtbl {
unsafe extern "system" fn EnumOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pgrfenumflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pgrfenumflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEnumOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lval: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnumOptions(::core::mem::transmute_copy(&lval)).into()
}
unsafe extern "system" fn SelectedItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pitem: *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.SelectedItem() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSelectedItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pitem: *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.SetSelectedItem(::windows_core::from_raw_borrowed(&pitem)).into()
}
unsafe extern "system" fn Root<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvar: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Root() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvar, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRoot2<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, var: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRoot2(::core::mem::transmute(&var)).into()
}
unsafe extern "system" fn Depth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidepth: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Depth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pidepth, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDepth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idepth: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDepth(::core::mem::transmute_copy(&idepth)).into()
}
unsafe extern "system" fn Mode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pumode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Mode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pumode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, umode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMode(::core::mem::transmute_copy(&umode)).into()
}
unsafe extern "system" fn Flags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Flags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFlags(::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn SetTVFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTVFlags(::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn TVFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.TVFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(dwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Columns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrcolumns: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Columns() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bstrcolumns, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetColumns<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrcolumns: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetColumns(::core::mem::transmute(&bstrcolumns)).into()
}
unsafe extern "system" fn CountViewTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pitypes: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CountViewTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pitypes, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetViewType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itype: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetViewType(::core::mem::transmute_copy(&itype)).into()
}
unsafe extern "system" fn SelectedItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *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.SelectedItems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Expand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, var: super::super::System::Variant::VARIANT, idepth: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Expand(::core::mem::transmute(&var), ::core::mem::transmute_copy(&idepth)).into()
}
unsafe extern "system" fn UnselectAll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellNameSpace_Impl, const OFFSET: isize>(this: *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.UnselectAll().into()
}
Self {
base__: IShellFavoritesNameSpace_Vtbl::new::<Identity, Impl, OFFSET>(),
EnumOptions: EnumOptions::<Identity, Impl, OFFSET>,
SetEnumOptions: SetEnumOptions::<Identity, Impl, OFFSET>,
SelectedItem: SelectedItem::<Identity, Impl, OFFSET>,
SetSelectedItem: SetSelectedItem::<Identity, Impl, OFFSET>,
Root: Root::<Identity, Impl, OFFSET>,
SetRoot2: SetRoot2::<Identity, Impl, OFFSET>,
Depth: Depth::<Identity, Impl, OFFSET>,
SetDepth: SetDepth::<Identity, Impl, OFFSET>,
Mode: Mode::<Identity, Impl, OFFSET>,
SetMode: SetMode::<Identity, Impl, OFFSET>,
Flags: Flags::<Identity, Impl, OFFSET>,
SetFlags: SetFlags::<Identity, Impl, OFFSET>,
SetTVFlags: SetTVFlags::<Identity, Impl, OFFSET>,
TVFlags: TVFlags::<Identity, Impl, OFFSET>,
Columns: Columns::<Identity, Impl, OFFSET>,
SetColumns: SetColumns::<Identity, Impl, OFFSET>,
CountViewTypes: CountViewTypes::<Identity, Impl, OFFSET>,
SetViewType: SetViewType::<Identity, Impl, OFFSET>,
SelectedItems: SelectedItems::<Identity, Impl, OFFSET>,
Expand: Expand::<Identity, Impl, OFFSET>,
UnselectAll: UnselectAll::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellNameSpace as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellFavoritesNameSpace as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))]
pub trait IShellPropSheetExt_Impl: Sized {
fn AddPages(&self, pfnaddpage: super::Controls::LPFNSVADDPROPSHEETPAGE, lparam: super::super::Foundation::LPARAM) -> ::windows_core::Result<()>;
fn ReplacePage(&self, upageid: u32, pfnreplacewith: super::Controls::LPFNSVADDPROPSHEETPAGE, lparam: super::super::Foundation::LPARAM) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))]
impl ::windows_core::RuntimeName for IShellPropSheetExt {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))]
impl IShellPropSheetExt_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellPropSheetExt_Impl, const OFFSET: isize>() -> IShellPropSheetExt_Vtbl {
unsafe extern "system" fn AddPages<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellPropSheetExt_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfnaddpage: super::Controls::LPFNSVADDPROPSHEETPAGE, lparam: super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddPages(::core::mem::transmute_copy(&pfnaddpage), ::core::mem::transmute_copy(&lparam)).into()
}
unsafe extern "system" fn ReplacePage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellPropSheetExt_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, upageid: u32, pfnreplacewith: super::Controls::LPFNSVADDPROPSHEETPAGE, lparam: super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReplacePage(::core::mem::transmute_copy(&upageid), ::core::mem::transmute_copy(&pfnreplacewith), ::core::mem::transmute_copy(&lparam)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AddPages: AddPages::<Identity, Impl, OFFSET>,
ReplacePage: ReplacePage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellPropSheetExt as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IShellRunDll_Impl: Sized {
fn Run(&self, pszargs: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IShellRunDll {}
impl IShellRunDll_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellRunDll_Impl, const OFFSET: isize>() -> IShellRunDll_Vtbl {
unsafe extern "system" fn Run<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellRunDll_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszargs: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Run(::core::mem::transmute(&pszargs)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Run: Run::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellRunDll as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IShellService_Impl: Sized {
fn SetOwner(&self, punkowner: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IShellService {}
impl IShellService_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellService_Impl, const OFFSET: isize>() -> IShellService_Vtbl {
unsafe extern "system" fn SetOwner<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkowner: *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.SetOwner(::windows_core::from_raw_borrowed(&punkowner)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetOwner: SetOwner::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IShellTaskScheduler_Impl: Sized {
fn AddTask(&self, prt: ::core::option::Option<&IRunnableTask>, rtoid: *const ::windows_core::GUID, lparam: usize, dwpriority: u32) -> ::windows_core::Result<()>;
fn RemoveTasks(&self, rtoid: *const ::windows_core::GUID, lparam: usize, bwaitifrunning: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn CountTasks(&self, rtoid: *const ::windows_core::GUID) -> u32;
fn Status(&self, dwreleasestatus: u32, dwthreadtimeout: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IShellTaskScheduler {}
#[cfg(feature = "Win32_Foundation")]
impl IShellTaskScheduler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellTaskScheduler_Impl, const OFFSET: isize>() -> IShellTaskScheduler_Vtbl {
unsafe extern "system" fn AddTask<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellTaskScheduler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prt: *mut ::core::ffi::c_void, rtoid: *const ::windows_core::GUID, lparam: usize, dwpriority: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddTask(::windows_core::from_raw_borrowed(&prt), ::core::mem::transmute_copy(&rtoid), ::core::mem::transmute_copy(&lparam), ::core::mem::transmute_copy(&dwpriority)).into()
}
unsafe extern "system" fn RemoveTasks<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellTaskScheduler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rtoid: *const ::windows_core::GUID, lparam: usize, bwaitifrunning: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveTasks(::core::mem::transmute_copy(&rtoid), ::core::mem::transmute_copy(&lparam), ::core::mem::transmute_copy(&bwaitifrunning)).into()
}
unsafe extern "system" fn CountTasks<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellTaskScheduler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rtoid: *const ::windows_core::GUID) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CountTasks(::core::mem::transmute_copy(&rtoid))
}
unsafe extern "system" fn Status<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellTaskScheduler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwreleasestatus: u32, dwthreadtimeout: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Status(::core::mem::transmute_copy(&dwreleasestatus), ::core::mem::transmute_copy(&dwthreadtimeout)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AddTask: AddTask::<Identity, Impl, OFFSET>,
RemoveTasks: RemoveTasks::<Identity, Impl, OFFSET>,
CountTasks: CountTasks::<Identity, Impl, OFFSET>,
Status: Status::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellTaskScheduler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellUIHelper_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn ResetFirstBootMode(&self) -> ::windows_core::Result<()>;
fn ResetSafeMode(&self) -> ::windows_core::Result<()>;
fn RefreshOfflineDesktop(&self) -> ::windows_core::Result<()>;
fn AddFavorite(&self, url: &::windows_core::BSTR, title: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn AddChannel(&self, url: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn AddDesktopComponent(&self, url: &::windows_core::BSTR, r#type: &::windows_core::BSTR, left: *const super::super::System::Variant::VARIANT, top: *const super::super::System::Variant::VARIANT, width: *const super::super::System::Variant::VARIANT, height: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn IsSubscribed(&self, url: &::windows_core::BSTR) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn NavigateAndFind(&self, url: &::windows_core::BSTR, strquery: &::windows_core::BSTR, vartargetframe: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn ImportExportFavorites(&self, fimport: super::super::Foundation::VARIANT_BOOL, strimpexppath: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn AutoCompleteSaveForm(&self, form: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn AutoScan(&self, strsearch: &::windows_core::BSTR, strfailureurl: &::windows_core::BSTR, pvartargetframe: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn AutoCompleteAttach(&self, reserved: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn ShowBrowserUI(&self, bstrname: &::windows_core::BSTR, pvarin: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellUIHelper {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellUIHelper_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>() -> IShellUIHelper_Vtbl {
unsafe extern "system" fn ResetFirstBootMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *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.ResetFirstBootMode().into()
}
unsafe extern "system" fn ResetSafeMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *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.ResetSafeMode().into()
}
unsafe extern "system" fn RefreshOfflineDesktop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *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.RefreshOfflineDesktop().into()
}
unsafe extern "system" fn AddFavorite<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>, title: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddFavorite(::core::mem::transmute(&url), ::core::mem::transmute_copy(&title)).into()
}
unsafe extern "system" fn AddChannel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddChannel(::core::mem::transmute(&url)).into()
}
unsafe extern "system" fn AddDesktopComponent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>, r#type: ::std::mem::MaybeUninit<::windows_core::BSTR>, left: *const super::super::System::Variant::VARIANT, top: *const super::super::System::Variant::VARIANT, width: *const super::super::System::Variant::VARIANT, height: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDesktopComponent(::core::mem::transmute(&url), ::core::mem::transmute(&r#type), ::core::mem::transmute_copy(&left), ::core::mem::transmute_copy(&top), ::core::mem::transmute_copy(&width), ::core::mem::transmute_copy(&height)).into()
}
unsafe extern "system" fn IsSubscribed<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>, pbool: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsSubscribed(::core::mem::transmute(&url)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbool, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn NavigateAndFind<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>, strquery: ::std::mem::MaybeUninit<::windows_core::BSTR>, vartargetframe: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NavigateAndFind(::core::mem::transmute(&url), ::core::mem::transmute(&strquery), ::core::mem::transmute_copy(&vartargetframe)).into()
}
unsafe extern "system" fn ImportExportFavorites<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fimport: super::super::Foundation::VARIANT_BOOL, strimpexppath: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ImportExportFavorites(::core::mem::transmute_copy(&fimport), ::core::mem::transmute(&strimpexppath)).into()
}
unsafe extern "system" fn AutoCompleteSaveForm<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, form: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AutoCompleteSaveForm(::core::mem::transmute_copy(&form)).into()
}
unsafe extern "system" fn AutoScan<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strsearch: ::std::mem::MaybeUninit<::windows_core::BSTR>, strfailureurl: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvartargetframe: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AutoScan(::core::mem::transmute(&strsearch), ::core::mem::transmute(&strfailureurl), ::core::mem::transmute_copy(&pvartargetframe)).into()
}
unsafe extern "system" fn AutoCompleteAttach<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, reserved: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AutoCompleteAttach(::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ShowBrowserUI<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrname: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvarin: *const super::super::System::Variant::VARIANT, pvarout: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ShowBrowserUI(::core::mem::transmute(&bstrname), ::core::mem::transmute_copy(&pvarin)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvarout, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
ResetFirstBootMode: ResetFirstBootMode::<Identity, Impl, OFFSET>,
ResetSafeMode: ResetSafeMode::<Identity, Impl, OFFSET>,
RefreshOfflineDesktop: RefreshOfflineDesktop::<Identity, Impl, OFFSET>,
AddFavorite: AddFavorite::<Identity, Impl, OFFSET>,
AddChannel: AddChannel::<Identity, Impl, OFFSET>,
AddDesktopComponent: AddDesktopComponent::<Identity, Impl, OFFSET>,
IsSubscribed: IsSubscribed::<Identity, Impl, OFFSET>,
NavigateAndFind: NavigateAndFind::<Identity, Impl, OFFSET>,
ImportExportFavorites: ImportExportFavorites::<Identity, Impl, OFFSET>,
AutoCompleteSaveForm: AutoCompleteSaveForm::<Identity, Impl, OFFSET>,
AutoScan: AutoScan::<Identity, Impl, OFFSET>,
AutoCompleteAttach: AutoCompleteAttach::<Identity, Impl, OFFSET>,
ShowBrowserUI: ShowBrowserUI::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellUIHelper as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellUIHelper2_Impl: Sized + IShellUIHelper_Impl {
fn AddSearchProvider(&self, url: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn RunOnceShown(&self) -> ::windows_core::Result<()>;
fn SkipRunOnce(&self) -> ::windows_core::Result<()>;
fn CustomizeSettings(&self, fsqm: super::super::Foundation::VARIANT_BOOL, fphishing: super::super::Foundation::VARIANT_BOOL, bstrlocale: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn SqmEnabled(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn PhishingEnabled(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn BrandImageUri(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SkipTabsWelcome(&self) -> ::windows_core::Result<()>;
fn DiagnoseConnection(&self) -> ::windows_core::Result<()>;
fn CustomizeClearType(&self, fset: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn IsSearchProviderInstalled(&self, url: &::windows_core::BSTR) -> ::windows_core::Result<u32>;
fn IsSearchMigrated(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn DefaultSearchProvider(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn RunOnceRequiredSettingsComplete(&self, fcomplete: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn RunOnceHasShown(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SearchGuideUrl(&self) -> ::windows_core::Result<::windows_core::BSTR>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellUIHelper2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellUIHelper2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>() -> IShellUIHelper2_Vtbl {
unsafe extern "system" fn AddSearchProvider<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSearchProvider(::core::mem::transmute(&url)).into()
}
unsafe extern "system" fn RunOnceShown<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *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.RunOnceShown().into()
}
unsafe extern "system" fn SkipRunOnce<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *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.SkipRunOnce().into()
}
unsafe extern "system" fn CustomizeSettings<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fsqm: super::super::Foundation::VARIANT_BOOL, fphishing: super::super::Foundation::VARIANT_BOOL, bstrlocale: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CustomizeSettings(::core::mem::transmute_copy(&fsqm), ::core::mem::transmute_copy(&fphishing), ::core::mem::transmute(&bstrlocale)).into()
}
unsafe extern "system" fn SqmEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfenabled: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SqmEnabled() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfenabled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PhishingEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfenabled: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PhishingEnabled() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfenabled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn BrandImageUri<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstruri: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.BrandImageUri() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstruri, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SkipTabsWelcome<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *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.SkipTabsWelcome().into()
}
unsafe extern "system" fn DiagnoseConnection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *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.DiagnoseConnection().into()
}
unsafe extern "system" fn CustomizeClearType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fset: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CustomizeClearType(::core::mem::transmute_copy(&fset)).into()
}
unsafe extern "system" fn IsSearchProviderInstalled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>, pdwresult: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsSearchProviderInstalled(::core::mem::transmute(&url)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwresult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsSearchMigrated<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfmigrated: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsSearchMigrated() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfmigrated, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DefaultSearchProvider<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DefaultSearchProvider() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RunOnceRequiredSettingsComplete<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fcomplete: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RunOnceRequiredSettingsComplete(::core::mem::transmute_copy(&fcomplete)).into()
}
unsafe extern "system" fn RunOnceHasShown<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfshown: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RunOnceHasShown() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfshown, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SearchGuideUrl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SearchGuideUrl() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrurl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IShellUIHelper_Vtbl::new::<Identity, Impl, OFFSET>(),
AddSearchProvider: AddSearchProvider::<Identity, Impl, OFFSET>,
RunOnceShown: RunOnceShown::<Identity, Impl, OFFSET>,
SkipRunOnce: SkipRunOnce::<Identity, Impl, OFFSET>,
CustomizeSettings: CustomizeSettings::<Identity, Impl, OFFSET>,
SqmEnabled: SqmEnabled::<Identity, Impl, OFFSET>,
PhishingEnabled: PhishingEnabled::<Identity, Impl, OFFSET>,
BrandImageUri: BrandImageUri::<Identity, Impl, OFFSET>,
SkipTabsWelcome: SkipTabsWelcome::<Identity, Impl, OFFSET>,
DiagnoseConnection: DiagnoseConnection::<Identity, Impl, OFFSET>,
CustomizeClearType: CustomizeClearType::<Identity, Impl, OFFSET>,
IsSearchProviderInstalled: IsSearchProviderInstalled::<Identity, Impl, OFFSET>,
IsSearchMigrated: IsSearchMigrated::<Identity, Impl, OFFSET>,
DefaultSearchProvider: DefaultSearchProvider::<Identity, Impl, OFFSET>,
RunOnceRequiredSettingsComplete: RunOnceRequiredSettingsComplete::<Identity, Impl, OFFSET>,
RunOnceHasShown: RunOnceHasShown::<Identity, Impl, OFFSET>,
SearchGuideUrl: SearchGuideUrl::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellUIHelper2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellUIHelper3_Impl: Sized + IShellUIHelper2_Impl {
fn AddService(&self, url: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn IsServiceInstalled(&self, url: &::windows_core::BSTR, verb: &::windows_core::BSTR) -> ::windows_core::Result<u32>;
fn InPrivateFilteringEnabled(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn AddToFavoritesBar(&self, url: &::windows_core::BSTR, title: &::windows_core::BSTR, r#type: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn BuildNewTabPage(&self) -> ::windows_core::Result<()>;
fn SetRecentlyClosedVisible(&self, fvisible: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn SetActivitiesVisible(&self, fvisible: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn ContentDiscoveryReset(&self) -> ::windows_core::Result<()>;
fn IsSuggestedSitesEnabled(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn EnableSuggestedSites(&self, fenable: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn NavigateToSuggestedSites(&self, bstrrelativeurl: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn ShowTabsHelp(&self) -> ::windows_core::Result<()>;
fn ShowInPrivateHelp(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellUIHelper3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellUIHelper3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>() -> IShellUIHelper3_Vtbl {
unsafe extern "system" fn AddService<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddService(::core::mem::transmute(&url)).into()
}
unsafe extern "system" fn IsServiceInstalled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>, verb: ::std::mem::MaybeUninit<::windows_core::BSTR>, pdwresult: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsServiceInstalled(::core::mem::transmute(&url), ::core::mem::transmute(&verb)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwresult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn InPrivateFilteringEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfenabled: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.InPrivateFilteringEnabled() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfenabled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddToFavoritesBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>, title: ::std::mem::MaybeUninit<::windows_core::BSTR>, r#type: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddToFavoritesBar(::core::mem::transmute(&url), ::core::mem::transmute(&title), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn BuildNewTabPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *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.BuildNewTabPage().into()
}
unsafe extern "system" fn SetRecentlyClosedVisible<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fvisible: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRecentlyClosedVisible(::core::mem::transmute_copy(&fvisible)).into()
}
unsafe extern "system" fn SetActivitiesVisible<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fvisible: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetActivitiesVisible(::core::mem::transmute_copy(&fvisible)).into()
}
unsafe extern "system" fn ContentDiscoveryReset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *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.ContentDiscoveryReset().into()
}
unsafe extern "system" fn IsSuggestedSitesEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfenabled: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsSuggestedSitesEnabled() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfenabled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnableSuggestedSites<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fenable: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableSuggestedSites(::core::mem::transmute_copy(&fenable)).into()
}
unsafe extern "system" fn NavigateToSuggestedSites<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrrelativeurl: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NavigateToSuggestedSites(::core::mem::transmute(&bstrrelativeurl)).into()
}
unsafe extern "system" fn ShowTabsHelp<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *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.ShowTabsHelp().into()
}
unsafe extern "system" fn ShowInPrivateHelp<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper3_Impl, const OFFSET: isize>(this: *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.ShowInPrivateHelp().into()
}
Self {
base__: IShellUIHelper2_Vtbl::new::<Identity, Impl, OFFSET>(),
AddService: AddService::<Identity, Impl, OFFSET>,
IsServiceInstalled: IsServiceInstalled::<Identity, Impl, OFFSET>,
InPrivateFilteringEnabled: InPrivateFilteringEnabled::<Identity, Impl, OFFSET>,
AddToFavoritesBar: AddToFavoritesBar::<Identity, Impl, OFFSET>,
BuildNewTabPage: BuildNewTabPage::<Identity, Impl, OFFSET>,
SetRecentlyClosedVisible: SetRecentlyClosedVisible::<Identity, Impl, OFFSET>,
SetActivitiesVisible: SetActivitiesVisible::<Identity, Impl, OFFSET>,
ContentDiscoveryReset: ContentDiscoveryReset::<Identity, Impl, OFFSET>,
IsSuggestedSitesEnabled: IsSuggestedSitesEnabled::<Identity, Impl, OFFSET>,
EnableSuggestedSites: EnableSuggestedSites::<Identity, Impl, OFFSET>,
NavigateToSuggestedSites: NavigateToSuggestedSites::<Identity, Impl, OFFSET>,
ShowTabsHelp: ShowTabsHelp::<Identity, Impl, OFFSET>,
ShowInPrivateHelp: ShowInPrivateHelp::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellUIHelper3 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellUIHelper4_Impl: Sized + IShellUIHelper3_Impl {
fn msIsSiteMode(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn msSiteModeShowThumbBar(&self) -> ::windows_core::Result<()>;
fn msSiteModeAddThumbBarButton(&self, bstriconurl: &::windows_core::BSTR, bstrtooltip: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn msSiteModeUpdateThumbBarButton(&self, buttonid: &super::super::System::Variant::VARIANT, fenabled: super::super::Foundation::VARIANT_BOOL, fvisible: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn msSiteModeSetIconOverlay(&self, iconurl: &::windows_core::BSTR, pvardescription: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn msSiteModeClearIconOverlay(&self) -> ::windows_core::Result<()>;
fn msAddSiteMode(&self) -> ::windows_core::Result<()>;
fn msSiteModeCreateJumpList(&self, bstrheader: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn msSiteModeAddJumpListItem(&self, bstrname: &::windows_core::BSTR, bstractionuri: &::windows_core::BSTR, bstriconuri: &::windows_core::BSTR, pvarwindowtype: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn msSiteModeClearJumpList(&self) -> ::windows_core::Result<()>;
fn msSiteModeShowJumpList(&self) -> ::windows_core::Result<()>;
fn msSiteModeAddButtonStyle(&self, uibuttonid: &super::super::System::Variant::VARIANT, bstriconurl: &::windows_core::BSTR, bstrtooltip: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn msSiteModeShowButtonStyle(&self, uibuttonid: &super::super::System::Variant::VARIANT, uistyleid: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn msSiteModeActivate(&self) -> ::windows_core::Result<()>;
fn msIsSiteModeFirstRun(&self, fpreservestate: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn msAddTrackingProtectionList(&self, url: &::windows_core::BSTR, bstrfiltername: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn msTrackingProtectionEnabled(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn msActiveXFilteringEnabled(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellUIHelper4 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellUIHelper4_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>() -> IShellUIHelper4_Vtbl {
unsafe extern "system" fn msIsSiteMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfsitemode: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.msIsSiteMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfsitemode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn msSiteModeShowThumbBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *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.msSiteModeShowThumbBar().into()
}
unsafe extern "system" fn msSiteModeAddThumbBarButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstriconurl: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstrtooltip: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvarbuttonid: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.msSiteModeAddThumbBarButton(::core::mem::transmute(&bstriconurl), ::core::mem::transmute(&bstrtooltip)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvarbuttonid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn msSiteModeUpdateThumbBarButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buttonid: super::super::System::Variant::VARIANT, fenabled: super::super::Foundation::VARIANT_BOOL, fvisible: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msSiteModeUpdateThumbBarButton(::core::mem::transmute(&buttonid), ::core::mem::transmute_copy(&fenabled), ::core::mem::transmute_copy(&fvisible)).into()
}
unsafe extern "system" fn msSiteModeSetIconOverlay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iconurl: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvardescription: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msSiteModeSetIconOverlay(::core::mem::transmute(&iconurl), ::core::mem::transmute_copy(&pvardescription)).into()
}
unsafe extern "system" fn msSiteModeClearIconOverlay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *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.msSiteModeClearIconOverlay().into()
}
unsafe extern "system" fn msAddSiteMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *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.msAddSiteMode().into()
}
unsafe extern "system" fn msSiteModeCreateJumpList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrheader: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msSiteModeCreateJumpList(::core::mem::transmute(&bstrheader)).into()
}
unsafe extern "system" fn msSiteModeAddJumpListItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrname: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstractionuri: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstriconuri: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvarwindowtype: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msSiteModeAddJumpListItem(::core::mem::transmute(&bstrname), ::core::mem::transmute(&bstractionuri), ::core::mem::transmute(&bstriconuri), ::core::mem::transmute_copy(&pvarwindowtype)).into()
}
unsafe extern "system" fn msSiteModeClearJumpList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *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.msSiteModeClearJumpList().into()
}
unsafe extern "system" fn msSiteModeShowJumpList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *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.msSiteModeShowJumpList().into()
}
unsafe extern "system" fn msSiteModeAddButtonStyle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uibuttonid: super::super::System::Variant::VARIANT, bstriconurl: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstrtooltip: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvarstyleid: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.msSiteModeAddButtonStyle(::core::mem::transmute(&uibuttonid), ::core::mem::transmute(&bstriconurl), ::core::mem::transmute(&bstrtooltip)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvarstyleid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn msSiteModeShowButtonStyle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uibuttonid: super::super::System::Variant::VARIANT, uistyleid: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msSiteModeShowButtonStyle(::core::mem::transmute(&uibuttonid), ::core::mem::transmute(&uistyleid)).into()
}
unsafe extern "system" fn msSiteModeActivate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *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.msSiteModeActivate().into()
}
unsafe extern "system" fn msIsSiteModeFirstRun<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fpreservestate: super::super::Foundation::VARIANT_BOOL, puifirstrun: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.msIsSiteModeFirstRun(::core::mem::transmute_copy(&fpreservestate)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puifirstrun, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn msAddTrackingProtectionList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstrfiltername: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msAddTrackingProtectionList(::core::mem::transmute(&url), ::core::mem::transmute(&bstrfiltername)).into()
}
unsafe extern "system" fn msTrackingProtectionEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfenabled: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.msTrackingProtectionEnabled() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfenabled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn msActiveXFilteringEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfenabled: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.msActiveXFilteringEnabled() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfenabled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IShellUIHelper3_Vtbl::new::<Identity, Impl, OFFSET>(),
msIsSiteMode: msIsSiteMode::<Identity, Impl, OFFSET>,
msSiteModeShowThumbBar: msSiteModeShowThumbBar::<Identity, Impl, OFFSET>,
msSiteModeAddThumbBarButton: msSiteModeAddThumbBarButton::<Identity, Impl, OFFSET>,
msSiteModeUpdateThumbBarButton: msSiteModeUpdateThumbBarButton::<Identity, Impl, OFFSET>,
msSiteModeSetIconOverlay: msSiteModeSetIconOverlay::<Identity, Impl, OFFSET>,
msSiteModeClearIconOverlay: msSiteModeClearIconOverlay::<Identity, Impl, OFFSET>,
msAddSiteMode: msAddSiteMode::<Identity, Impl, OFFSET>,
msSiteModeCreateJumpList: msSiteModeCreateJumpList::<Identity, Impl, OFFSET>,
msSiteModeAddJumpListItem: msSiteModeAddJumpListItem::<Identity, Impl, OFFSET>,
msSiteModeClearJumpList: msSiteModeClearJumpList::<Identity, Impl, OFFSET>,
msSiteModeShowJumpList: msSiteModeShowJumpList::<Identity, Impl, OFFSET>,
msSiteModeAddButtonStyle: msSiteModeAddButtonStyle::<Identity, Impl, OFFSET>,
msSiteModeShowButtonStyle: msSiteModeShowButtonStyle::<Identity, Impl, OFFSET>,
msSiteModeActivate: msSiteModeActivate::<Identity, Impl, OFFSET>,
msIsSiteModeFirstRun: msIsSiteModeFirstRun::<Identity, Impl, OFFSET>,
msAddTrackingProtectionList: msAddTrackingProtectionList::<Identity, Impl, OFFSET>,
msTrackingProtectionEnabled: msTrackingProtectionEnabled::<Identity, Impl, OFFSET>,
msActiveXFilteringEnabled: msActiveXFilteringEnabled::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellUIHelper4 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper2 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper3 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellUIHelper5_Impl: Sized + IShellUIHelper4_Impl {
fn msProvisionNetworks(&self, bstrprovisioningxml: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn msReportSafeUrl(&self) -> ::windows_core::Result<()>;
fn msSiteModeRefreshBadge(&self) -> ::windows_core::Result<()>;
fn msSiteModeClearBadge(&self) -> ::windows_core::Result<()>;
fn msDiagnoseConnectionUILess(&self) -> ::windows_core::Result<()>;
fn msLaunchNetworkClientHelp(&self) -> ::windows_core::Result<()>;
fn msChangeDefaultBrowser(&self, fchange: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellUIHelper5 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellUIHelper5_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper5_Impl, const OFFSET: isize>() -> IShellUIHelper5_Vtbl {
unsafe extern "system" fn msProvisionNetworks<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrprovisioningxml: ::std::mem::MaybeUninit<::windows_core::BSTR>, puiresult: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.msProvisionNetworks(::core::mem::transmute(&bstrprovisioningxml)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puiresult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn msReportSafeUrl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper5_Impl, const OFFSET: isize>(this: *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.msReportSafeUrl().into()
}
unsafe extern "system" fn msSiteModeRefreshBadge<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper5_Impl, const OFFSET: isize>(this: *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.msSiteModeRefreshBadge().into()
}
unsafe extern "system" fn msSiteModeClearBadge<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper5_Impl, const OFFSET: isize>(this: *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.msSiteModeClearBadge().into()
}
unsafe extern "system" fn msDiagnoseConnectionUILess<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper5_Impl, const OFFSET: isize>(this: *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.msDiagnoseConnectionUILess().into()
}
unsafe extern "system" fn msLaunchNetworkClientHelp<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper5_Impl, const OFFSET: isize>(this: *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.msLaunchNetworkClientHelp().into()
}
unsafe extern "system" fn msChangeDefaultBrowser<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fchange: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msChangeDefaultBrowser(::core::mem::transmute_copy(&fchange)).into()
}
Self {
base__: IShellUIHelper4_Vtbl::new::<Identity, Impl, OFFSET>(),
msProvisionNetworks: msProvisionNetworks::<Identity, Impl, OFFSET>,
msReportSafeUrl: msReportSafeUrl::<Identity, Impl, OFFSET>,
msSiteModeRefreshBadge: msSiteModeRefreshBadge::<Identity, Impl, OFFSET>,
msSiteModeClearBadge: msSiteModeClearBadge::<Identity, Impl, OFFSET>,
msDiagnoseConnectionUILess: msDiagnoseConnectionUILess::<Identity, Impl, OFFSET>,
msLaunchNetworkClientHelp: msLaunchNetworkClientHelp::<Identity, Impl, OFFSET>,
msChangeDefaultBrowser: msChangeDefaultBrowser::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellUIHelper5 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper2 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper3 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper4 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellUIHelper6_Impl: Sized + IShellUIHelper5_Impl {
fn msStopPeriodicTileUpdate(&self) -> ::windows_core::Result<()>;
fn msStartPeriodicTileUpdate(&self, pollinguris: &super::super::System::Variant::VARIANT, starttime: &super::super::System::Variant::VARIANT, uiupdaterecurrence: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn msStartPeriodicTileUpdateBatch(&self, pollinguris: &super::super::System::Variant::VARIANT, starttime: &super::super::System::Variant::VARIANT, uiupdaterecurrence: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn msClearTile(&self) -> ::windows_core::Result<()>;
fn msEnableTileNotificationQueue(&self, fchange: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn msPinnedSiteState(&self) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn msEnableTileNotificationQueueForSquare150x150(&self, fchange: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn msEnableTileNotificationQueueForWide310x150(&self, fchange: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn msEnableTileNotificationQueueForSquare310x310(&self, fchange: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn msScheduledTileNotification(&self, bstrnotificationxml: &::windows_core::BSTR, bstrnotificationid: &::windows_core::BSTR, bstrnotificationtag: &::windows_core::BSTR, starttime: &super::super::System::Variant::VARIANT, expirationtime: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn msRemoveScheduledTileNotification(&self, bstrnotificationid: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn msStartPeriodicBadgeUpdate(&self, pollinguri: &::windows_core::BSTR, starttime: &super::super::System::Variant::VARIANT, uiupdaterecurrence: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn msStopPeriodicBadgeUpdate(&self) -> ::windows_core::Result<()>;
fn msLaunchInternetOptions(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellUIHelper6 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellUIHelper6_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>() -> IShellUIHelper6_Vtbl {
unsafe extern "system" fn msStopPeriodicTileUpdate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *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.msStopPeriodicTileUpdate().into()
}
unsafe extern "system" fn msStartPeriodicTileUpdate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pollinguris: super::super::System::Variant::VARIANT, starttime: super::super::System::Variant::VARIANT, uiupdaterecurrence: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msStartPeriodicTileUpdate(::core::mem::transmute(&pollinguris), ::core::mem::transmute(&starttime), ::core::mem::transmute(&uiupdaterecurrence)).into()
}
unsafe extern "system" fn msStartPeriodicTileUpdateBatch<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pollinguris: super::super::System::Variant::VARIANT, starttime: super::super::System::Variant::VARIANT, uiupdaterecurrence: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msStartPeriodicTileUpdateBatch(::core::mem::transmute(&pollinguris), ::core::mem::transmute(&starttime), ::core::mem::transmute(&uiupdaterecurrence)).into()
}
unsafe extern "system" fn msClearTile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *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.msClearTile().into()
}
unsafe extern "system" fn msEnableTileNotificationQueue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fchange: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msEnableTileNotificationQueue(::core::mem::transmute_copy(&fchange)).into()
}
unsafe extern "system" fn msPinnedSiteState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvarsitestate: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.msPinnedSiteState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvarsitestate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn msEnableTileNotificationQueueForSquare150x150<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fchange: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msEnableTileNotificationQueueForSquare150x150(::core::mem::transmute_copy(&fchange)).into()
}
unsafe extern "system" fn msEnableTileNotificationQueueForWide310x150<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fchange: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msEnableTileNotificationQueueForWide310x150(::core::mem::transmute_copy(&fchange)).into()
}
unsafe extern "system" fn msEnableTileNotificationQueueForSquare310x310<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fchange: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msEnableTileNotificationQueueForSquare310x310(::core::mem::transmute_copy(&fchange)).into()
}
unsafe extern "system" fn msScheduledTileNotification<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrnotificationxml: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstrnotificationid: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstrnotificationtag: ::std::mem::MaybeUninit<::windows_core::BSTR>, starttime: super::super::System::Variant::VARIANT, expirationtime: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msScheduledTileNotification(::core::mem::transmute(&bstrnotificationxml), ::core::mem::transmute(&bstrnotificationid), ::core::mem::transmute(&bstrnotificationtag), ::core::mem::transmute(&starttime), ::core::mem::transmute(&expirationtime)).into()
}
unsafe extern "system" fn msRemoveScheduledTileNotification<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrnotificationid: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msRemoveScheduledTileNotification(::core::mem::transmute(&bstrnotificationid)).into()
}
unsafe extern "system" fn msStartPeriodicBadgeUpdate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pollinguri: ::std::mem::MaybeUninit<::windows_core::BSTR>, starttime: super::super::System::Variant::VARIANT, uiupdaterecurrence: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.msStartPeriodicBadgeUpdate(::core::mem::transmute(&pollinguri), ::core::mem::transmute(&starttime), ::core::mem::transmute(&uiupdaterecurrence)).into()
}
unsafe extern "system" fn msStopPeriodicBadgeUpdate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *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.msStopPeriodicBadgeUpdate().into()
}
unsafe extern "system" fn msLaunchInternetOptions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper6_Impl, const OFFSET: isize>(this: *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.msLaunchInternetOptions().into()
}
Self {
base__: IShellUIHelper5_Vtbl::new::<Identity, Impl, OFFSET>(),
msStopPeriodicTileUpdate: msStopPeriodicTileUpdate::<Identity, Impl, OFFSET>,
msStartPeriodicTileUpdate: msStartPeriodicTileUpdate::<Identity, Impl, OFFSET>,
msStartPeriodicTileUpdateBatch: msStartPeriodicTileUpdateBatch::<Identity, Impl, OFFSET>,
msClearTile: msClearTile::<Identity, Impl, OFFSET>,
msEnableTileNotificationQueue: msEnableTileNotificationQueue::<Identity, Impl, OFFSET>,
msPinnedSiteState: msPinnedSiteState::<Identity, Impl, OFFSET>,
msEnableTileNotificationQueueForSquare150x150: msEnableTileNotificationQueueForSquare150x150::<Identity, Impl, OFFSET>,
msEnableTileNotificationQueueForWide310x150: msEnableTileNotificationQueueForWide310x150::<Identity, Impl, OFFSET>,
msEnableTileNotificationQueueForSquare310x310: msEnableTileNotificationQueueForSquare310x310::<Identity, Impl, OFFSET>,
msScheduledTileNotification: msScheduledTileNotification::<Identity, Impl, OFFSET>,
msRemoveScheduledTileNotification: msRemoveScheduledTileNotification::<Identity, Impl, OFFSET>,
msStartPeriodicBadgeUpdate: msStartPeriodicBadgeUpdate::<Identity, Impl, OFFSET>,
msStopPeriodicBadgeUpdate: msStopPeriodicBadgeUpdate::<Identity, Impl, OFFSET>,
msLaunchInternetOptions: msLaunchInternetOptions::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellUIHelper6 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper2 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper3 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper4 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper5 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellUIHelper7_Impl: Sized + IShellUIHelper6_Impl {
fn SetExperimentalFlag(&self, bstrflagstring: &::windows_core::BSTR, vfflag: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn GetExperimentalFlag(&self, bstrflagstring: &::windows_core::BSTR) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetExperimentalValue(&self, bstrvaluestring: &::windows_core::BSTR, dwvalue: u32) -> ::windows_core::Result<()>;
fn GetExperimentalValue(&self, bstrvaluestring: &::windows_core::BSTR) -> ::windows_core::Result<u32>;
fn ResetAllExperimentalFlagsAndValues(&self) -> ::windows_core::Result<()>;
fn GetNeedIEAutoLaunchFlag(&self, bstrurl: &::windows_core::BSTR) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetNeedIEAutoLaunchFlag(&self, bstrurl: &::windows_core::BSTR, flag: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn HasNeedIEAutoLaunchFlag(&self, bstrurl: &::windows_core::BSTR) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn LaunchIE(&self, bstrurl: &::windows_core::BSTR, automated: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellUIHelper7 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellUIHelper7_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper7_Impl, const OFFSET: isize>() -> IShellUIHelper7_Vtbl {
unsafe extern "system" fn SetExperimentalFlag<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrflagstring: ::std::mem::MaybeUninit<::windows_core::BSTR>, vfflag: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExperimentalFlag(::core::mem::transmute(&bstrflagstring), ::core::mem::transmute_copy(&vfflag)).into()
}
unsafe extern "system" fn GetExperimentalFlag<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrflagstring: ::std::mem::MaybeUninit<::windows_core::BSTR>, vfflag: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExperimentalFlag(::core::mem::transmute(&bstrflagstring)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(vfflag, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExperimentalValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrvaluestring: ::std::mem::MaybeUninit<::windows_core::BSTR>, dwvalue: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExperimentalValue(::core::mem::transmute(&bstrvaluestring), ::core::mem::transmute_copy(&dwvalue)).into()
}
unsafe extern "system" fn GetExperimentalValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrvaluestring: ::std::mem::MaybeUninit<::windows_core::BSTR>, pdwvalue: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExperimentalValue(::core::mem::transmute(&bstrvaluestring)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ResetAllExperimentalFlagsAndValues<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper7_Impl, const OFFSET: isize>(this: *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.ResetAllExperimentalFlagsAndValues().into()
}
unsafe extern "system" fn GetNeedIEAutoLaunchFlag<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrurl: ::std::mem::MaybeUninit<::windows_core::BSTR>, flag: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNeedIEAutoLaunchFlag(::core::mem::transmute(&bstrurl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(flag, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNeedIEAutoLaunchFlag<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrurl: ::std::mem::MaybeUninit<::windows_core::BSTR>, flag: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNeedIEAutoLaunchFlag(::core::mem::transmute(&bstrurl), ::core::mem::transmute_copy(&flag)).into()
}
unsafe extern "system" fn HasNeedIEAutoLaunchFlag<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrurl: ::std::mem::MaybeUninit<::windows_core::BSTR>, exists: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.HasNeedIEAutoLaunchFlag(::core::mem::transmute(&bstrurl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(exists, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn LaunchIE<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrurl: ::std::mem::MaybeUninit<::windows_core::BSTR>, automated: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LaunchIE(::core::mem::transmute(&bstrurl), ::core::mem::transmute_copy(&automated)).into()
}
Self {
base__: IShellUIHelper6_Vtbl::new::<Identity, Impl, OFFSET>(),
SetExperimentalFlag: SetExperimentalFlag::<Identity, Impl, OFFSET>,
GetExperimentalFlag: GetExperimentalFlag::<Identity, Impl, OFFSET>,
SetExperimentalValue: SetExperimentalValue::<Identity, Impl, OFFSET>,
GetExperimentalValue: GetExperimentalValue::<Identity, Impl, OFFSET>,
ResetAllExperimentalFlagsAndValues: ResetAllExperimentalFlagsAndValues::<Identity, Impl, OFFSET>,
GetNeedIEAutoLaunchFlag: GetNeedIEAutoLaunchFlag::<Identity, Impl, OFFSET>,
SetNeedIEAutoLaunchFlag: SetNeedIEAutoLaunchFlag::<Identity, Impl, OFFSET>,
HasNeedIEAutoLaunchFlag: HasNeedIEAutoLaunchFlag::<Identity, Impl, OFFSET>,
LaunchIE: LaunchIE::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellUIHelper7 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper2 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper3 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper4 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper5 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper6 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellUIHelper8_Impl: Sized + IShellUIHelper7_Impl {
fn GetCVListData(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetCVListLocalData(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetEMIEListData(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetEMIEListLocalData(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn OpenFavoritesPane(&self) -> ::windows_core::Result<()>;
fn OpenFavoritesSettings(&self) -> ::windows_core::Result<()>;
fn LaunchInHVSI(&self, bstrurl: &::windows_core::BSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellUIHelper8 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellUIHelper8_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper8_Impl, const OFFSET: isize>() -> IShellUIHelper8_Vtbl {
unsafe extern "system" fn GetCVListData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrresult: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCVListData() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrresult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCVListLocalData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrresult: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCVListLocalData() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrresult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEMIEListData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrresult: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEMIEListData() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrresult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEMIEListLocalData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrresult: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEMIEListLocalData() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrresult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OpenFavoritesPane<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper8_Impl, const OFFSET: isize>(this: *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.OpenFavoritesPane().into()
}
unsafe extern "system" fn OpenFavoritesSettings<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper8_Impl, const OFFSET: isize>(this: *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.OpenFavoritesSettings().into()
}
unsafe extern "system" fn LaunchInHVSI<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrurl: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LaunchInHVSI(::core::mem::transmute(&bstrurl)).into()
}
Self {
base__: IShellUIHelper7_Vtbl::new::<Identity, Impl, OFFSET>(),
GetCVListData: GetCVListData::<Identity, Impl, OFFSET>,
GetCVListLocalData: GetCVListLocalData::<Identity, Impl, OFFSET>,
GetEMIEListData: GetEMIEListData::<Identity, Impl, OFFSET>,
GetEMIEListLocalData: GetEMIEListLocalData::<Identity, Impl, OFFSET>,
OpenFavoritesPane: OpenFavoritesPane::<Identity, Impl, OFFSET>,
OpenFavoritesSettings: OpenFavoritesSettings::<Identity, Impl, OFFSET>,
LaunchInHVSI: LaunchInHVSI::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellUIHelper8 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper2 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper3 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper4 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper5 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper6 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper7 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellUIHelper9_Impl: Sized + IShellUIHelper8_Impl {
fn GetOSSku(&self) -> ::windows_core::Result<u32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellUIHelper9 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellUIHelper9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper9_Impl, const OFFSET: isize>() -> IShellUIHelper9_Vtbl {
unsafe extern "system" fn GetOSSku<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellUIHelper9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwresult: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOSSku() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwresult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IShellUIHelper8_Vtbl::new::<Identity, Impl, OFFSET>(), GetOSSku: GetOSSku::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellUIHelper9 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper2 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper3 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper4 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper5 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper6 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper7 as ::windows_core::ComInterface>::IID || iid == &<IShellUIHelper8 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IShellView_Impl: Sized + super::super::System::Ole::IOleWindow_Impl {
fn TranslateAccelerator(&self, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::Result<()>;
fn EnableModeless(&self, fenable: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn UIActivate(&self, ustate: u32) -> ::windows_core::Result<()>;
fn Refresh(&self) -> ::windows_core::Result<()>;
fn CreateViewWindow(&self, psvprevious: ::core::option::Option<&IShellView>, pfs: *const FOLDERSETTINGS, psb: ::core::option::Option<&IShellBrowser>, prcview: *const super::super::Foundation::RECT) -> ::windows_core::Result<super::super::Foundation::HWND>;
fn DestroyViewWindow(&self) -> ::windows_core::Result<()>;
fn GetCurrentInfo(&self) -> ::windows_core::Result<FOLDERSETTINGS>;
fn AddPropertySheetPages(&self, dwreserved: u32, pfn: super::Controls::LPFNSVADDPROPSHEETPAGE, lparam: super::super::Foundation::LPARAM) -> ::windows_core::Result<()>;
fn SaveViewState(&self) -> ::windows_core::Result<()>;
fn SelectItem(&self, pidlitem: *const Common::ITEMIDLIST, uflags: u32) -> ::windows_core::Result<()>;
fn GetItemObject(&self, uitem: &_SVGIO, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IShellView {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IShellView_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>() -> IShellView_Vtbl {
unsafe extern "system" fn TranslateAccelerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmsg: *const super::WindowsAndMessaging::MSG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TranslateAccelerator(::core::mem::transmute_copy(&pmsg)).into()
}
unsafe extern "system" fn EnableModeless<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fenable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableModeless(::core::mem::transmute_copy(&fenable)).into()
}
unsafe extern "system" fn UIActivate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ustate: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UIActivate(::core::mem::transmute_copy(&ustate)).into()
}
unsafe extern "system" fn Refresh<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *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.Refresh().into()
}
unsafe extern "system" fn CreateViewWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psvprevious: *mut ::core::ffi::c_void, pfs: *const FOLDERSETTINGS, psb: *mut ::core::ffi::c_void, prcview: *const super::super::Foundation::RECT, phwnd: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateViewWindow(::windows_core::from_raw_borrowed(&psvprevious), ::core::mem::transmute_copy(&pfs), ::windows_core::from_raw_borrowed(&psb), ::core::mem::transmute_copy(&prcview)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phwnd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DestroyViewWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *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.DestroyViewWindow().into()
}
unsafe extern "system" fn GetCurrentInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfs: *mut FOLDERSETTINGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddPropertySheetPages<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwreserved: u32, pfn: super::Controls::LPFNSVADDPROPSHEETPAGE, lparam: super::super::Foundation::LPARAM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddPropertySheetPages(::core::mem::transmute_copy(&dwreserved), ::core::mem::transmute_copy(&pfn), ::core::mem::transmute_copy(&lparam)).into()
}
unsafe extern "system" fn SaveViewState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *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.SaveViewState().into()
}
unsafe extern "system" fn SelectItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlitem: *const Common::ITEMIDLIST, uflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectItem(::core::mem::transmute_copy(&pidlitem), ::core::mem::transmute_copy(&uflags)).into()
}
unsafe extern "system" fn GetItemObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uitem: u32, riid: *const ::windows_core::GUID, ppv: *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();
this.GetItemObject(::core::mem::transmute(&uitem), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self {
base__: super::super::System::Ole::IOleWindow_Vtbl::new::<Identity, Impl, OFFSET>(),
TranslateAccelerator: TranslateAccelerator::<Identity, Impl, OFFSET>,
EnableModeless: EnableModeless::<Identity, Impl, OFFSET>,
UIActivate: UIActivate::<Identity, Impl, OFFSET>,
Refresh: Refresh::<Identity, Impl, OFFSET>,
CreateViewWindow: CreateViewWindow::<Identity, Impl, OFFSET>,
DestroyViewWindow: DestroyViewWindow::<Identity, Impl, OFFSET>,
GetCurrentInfo: GetCurrentInfo::<Identity, Impl, OFFSET>,
AddPropertySheetPages: AddPropertySheetPages::<Identity, Impl, OFFSET>,
SaveViewState: SaveViewState::<Identity, Impl, OFFSET>,
SelectItem: SelectItem::<Identity, Impl, OFFSET>,
GetItemObject: GetItemObject::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellView as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IShellView2_Impl: Sized + IShellView_Impl {
fn GetView(&self, pvid: *mut ::windows_core::GUID, uview: u32) -> ::windows_core::Result<()>;
fn CreateViewWindow2(&self, lpparams: *const SV2CVW2_PARAMS) -> ::windows_core::Result<()>;
fn HandleRename(&self, pidlnew: *const Common::ITEMIDLIST) -> ::windows_core::Result<()>;
fn SelectAndPositionItem(&self, pidlitem: *const Common::ITEMIDLIST, uflags: u32, ppt: *const super::super::Foundation::POINT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IShellView2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IShellView2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView2_Impl, const OFFSET: isize>() -> IShellView2_Vtbl {
unsafe extern "system" fn GetView<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvid: *mut ::windows_core::GUID, uview: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetView(::core::mem::transmute_copy(&pvid), ::core::mem::transmute_copy(&uview)).into()
}
unsafe extern "system" fn CreateViewWindow2<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpparams: *const SV2CVW2_PARAMS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateViewWindow2(::core::mem::transmute_copy(&lpparams)).into()
}
unsafe extern "system" fn HandleRename<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlnew: *const Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HandleRename(::core::mem::transmute_copy(&pidlnew)).into()
}
unsafe extern "system" fn SelectAndPositionItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlitem: *const Common::ITEMIDLIST, uflags: u32, ppt: *const super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectAndPositionItem(::core::mem::transmute_copy(&pidlitem), ::core::mem::transmute_copy(&uflags), ::core::mem::transmute_copy(&ppt)).into()
}
Self {
base__: IShellView_Vtbl::new::<Identity, Impl, OFFSET>(),
GetView: GetView::<Identity, Impl, OFFSET>,
CreateViewWindow2: CreateViewWindow2::<Identity, Impl, OFFSET>,
HandleRename: HandleRename::<Identity, Impl, OFFSET>,
SelectAndPositionItem: SelectAndPositionItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellView2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID || iid == &<IShellView as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IShellView3_Impl: Sized + IShellView2_Impl {
fn CreateViewWindow3(&self, psbowner: ::core::option::Option<&IShellBrowser>, psvprev: ::core::option::Option<&IShellView>, dwviewflags: u32, dwmask: FOLDERFLAGS, dwflags: FOLDERFLAGS, fvmode: FOLDERVIEWMODE, pvid: *const ::windows_core::GUID, prcview: *const super::super::Foundation::RECT) -> ::windows_core::Result<super::super::Foundation::HWND>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IShellView3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole", feature = "Win32_UI_Controls", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl IShellView3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView3_Impl, const OFFSET: isize>() -> IShellView3_Vtbl {
unsafe extern "system" fn CreateViewWindow3<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellView3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psbowner: *mut ::core::ffi::c_void, psvprev: *mut ::core::ffi::c_void, dwviewflags: u32, dwmask: FOLDERFLAGS, dwflags: FOLDERFLAGS, fvmode: FOLDERVIEWMODE, pvid: *const ::windows_core::GUID, prcview: *const super::super::Foundation::RECT, phwndview: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateViewWindow3(::windows_core::from_raw_borrowed(&psbowner), ::windows_core::from_raw_borrowed(&psvprev), ::core::mem::transmute_copy(&dwviewflags), ::core::mem::transmute_copy(&dwmask), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&fvmode), ::core::mem::transmute_copy(&pvid), ::core::mem::transmute_copy(&prcview)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phwndview, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IShellView2_Vtbl::new::<Identity, Impl, OFFSET>(), CreateViewWindow3: CreateViewWindow3::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellView3 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Ole::IOleWindow as ::windows_core::ComInterface>::IID || iid == &<IShellView as ::windows_core::ComInterface>::IID || iid == &<IShellView2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IShellWindows_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> ::windows_core::Result<i32>;
fn Item(&self, index: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn _NewEnum(&self) -> ::windows_core::Result<::windows_core::IUnknown>;
fn Register(&self, pid: ::core::option::Option<&super::super::System::Com::IDispatch>, hwnd: i32, swclass: ShellWindowTypeConstants) -> ::windows_core::Result<i32>;
fn RegisterPending(&self, lthreadid: i32, pvarloc: *const super::super::System::Variant::VARIANT, pvarlocroot: *const super::super::System::Variant::VARIANT, swclass: ShellWindowTypeConstants) -> ::windows_core::Result<i32>;
fn Revoke(&self, lcookie: i32) -> ::windows_core::Result<()>;
fn OnNavigate(&self, lcookie: i32, pvarloc: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn OnActivated(&self, lcookie: i32, factive: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn FindWindowSW(&self, pvarloc: *const super::super::System::Variant::VARIANT, pvarlocroot: *const super::super::System::Variant::VARIANT, swclass: ShellWindowTypeConstants, phwnd: *mut i32, swfwoptions: ShellWindowFindWindowOptions, ppdispout: *mut ::core::option::Option<super::super::System::Com::IDispatch>) -> ::windows_core::Result<()>;
fn OnCreated(&self, lcookie: i32, punk: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn ProcessAttachDetach(&self, fattach: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IShellWindows {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IShellWindows_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>() -> IShellWindows_Vtbl {
unsafe extern "system" fn Count<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Item<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: super::super::System::Variant::VARIANT, folder: *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.Item(::core::mem::transmute(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(folder, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn _NewEnum<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *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._NewEnum() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Register<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pid: *mut ::core::ffi::c_void, hwnd: i32, swclass: ShellWindowTypeConstants, plcookie: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Register(::windows_core::from_raw_borrowed(&pid), ::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&swclass)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RegisterPending<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lthreadid: i32, pvarloc: *const super::super::System::Variant::VARIANT, pvarlocroot: *const super::super::System::Variant::VARIANT, swclass: ShellWindowTypeConstants, plcookie: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RegisterPending(::core::mem::transmute_copy(&lthreadid), ::core::mem::transmute_copy(&pvarloc), ::core::mem::transmute_copy(&pvarlocroot), ::core::mem::transmute_copy(&swclass)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Revoke<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lcookie: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Revoke(::core::mem::transmute_copy(&lcookie)).into()
}
unsafe extern "system" fn OnNavigate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lcookie: i32, pvarloc: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnNavigate(::core::mem::transmute_copy(&lcookie), ::core::mem::transmute_copy(&pvarloc)).into()
}
unsafe extern "system" fn OnActivated<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lcookie: i32, factive: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnActivated(::core::mem::transmute_copy(&lcookie), ::core::mem::transmute_copy(&factive)).into()
}
unsafe extern "system" fn FindWindowSW<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvarloc: *const super::super::System::Variant::VARIANT, pvarlocroot: *const super::super::System::Variant::VARIANT, swclass: ShellWindowTypeConstants, phwnd: *mut i32, swfwoptions: ShellWindowFindWindowOptions, ppdispout: *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();
this.FindWindowSW(::core::mem::transmute_copy(&pvarloc), ::core::mem::transmute_copy(&pvarlocroot), ::core::mem::transmute_copy(&swclass), ::core::mem::transmute_copy(&phwnd), ::core::mem::transmute_copy(&swfwoptions), ::core::mem::transmute_copy(&ppdispout)).into()
}
unsafe extern "system" fn OnCreated<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lcookie: i32, punk: *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.OnCreated(::core::mem::transmute_copy(&lcookie), ::windows_core::from_raw_borrowed(&punk)).into()
}
unsafe extern "system" fn ProcessAttachDetach<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IShellWindows_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fattach: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ProcessAttachDetach(::core::mem::transmute_copy(&fattach)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Count: Count::<Identity, Impl, OFFSET>,
Item: Item::<Identity, Impl, OFFSET>,
_NewEnum: _NewEnum::<Identity, Impl, OFFSET>,
Register: Register::<Identity, Impl, OFFSET>,
RegisterPending: RegisterPending::<Identity, Impl, OFFSET>,
Revoke: Revoke::<Identity, Impl, OFFSET>,
OnNavigate: OnNavigate::<Identity, Impl, OFFSET>,
OnActivated: OnActivated::<Identity, Impl, OFFSET>,
FindWindowSW: FindWindowSW::<Identity, Impl, OFFSET>,
OnCreated: OnCreated::<Identity, Impl, OFFSET>,
ProcessAttachDetach: ProcessAttachDetach::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IShellWindows as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
pub trait ISortColumnArray_Impl: Sized {
fn GetCount(&self) -> ::windows_core::Result<u32>;
fn GetAt(&self, index: u32, sortcolumn: *mut SORTCOLUMN) -> ::windows_core::Result<()>;
fn GetSortType(&self) -> ::windows_core::Result<SORT_ORDER_TYPE>;
}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl ::windows_core::RuntimeName for ISortColumnArray {}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl ISortColumnArray_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISortColumnArray_Impl, const OFFSET: isize>() -> ISortColumnArray_Vtbl {
unsafe extern "system" fn GetCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISortColumnArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columncount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(columncount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISortColumnArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, sortcolumn: *mut SORTCOLUMN) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAt(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&sortcolumn)).into()
}
unsafe extern "system" fn GetSortType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISortColumnArray_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut SORT_ORDER_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSortType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCount: GetCount::<Identity, Impl, OFFSET>,
GetAt: GetAt::<Identity, Impl, OFFSET>,
GetSortType: GetSortType::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISortColumnArray as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IStartMenuPinnedList_Impl: Sized {
fn RemoveFromList(&self, pitem: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IStartMenuPinnedList {}
impl IStartMenuPinnedList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStartMenuPinnedList_Impl, const OFFSET: isize>() -> IStartMenuPinnedList_Vtbl {
unsafe extern "system" fn RemoveFromList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStartMenuPinnedList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pitem: *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.RemoveFromList(::windows_core::from_raw_borrowed(&pitem)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), RemoveFromList: RemoveFromList::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IStartMenuPinnedList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IStorageProviderBanners_Impl: Sized {
fn SetBanner(&self, provideridentity: &::windows_core::PCWSTR, subscriptionid: &::windows_core::PCWSTR, contentid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn ClearBanner(&self, provideridentity: &::windows_core::PCWSTR, subscriptionid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn ClearAllBanners(&self, provideridentity: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetBanner(&self, provideridentity: &::windows_core::PCWSTR, subscriptionid: &::windows_core::PCWSTR) -> ::windows_core::Result<::windows_core::PWSTR>;
}
impl ::windows_core::RuntimeName for IStorageProviderBanners {}
impl IStorageProviderBanners_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderBanners_Impl, const OFFSET: isize>() -> IStorageProviderBanners_Vtbl {
unsafe extern "system" fn SetBanner<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderBanners_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, provideridentity: ::windows_core::PCWSTR, subscriptionid: ::windows_core::PCWSTR, contentid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBanner(::core::mem::transmute(&provideridentity), ::core::mem::transmute(&subscriptionid), ::core::mem::transmute(&contentid)).into()
}
unsafe extern "system" fn ClearBanner<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderBanners_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, provideridentity: ::windows_core::PCWSTR, subscriptionid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ClearBanner(::core::mem::transmute(&provideridentity), ::core::mem::transmute(&subscriptionid)).into()
}
unsafe extern "system" fn ClearAllBanners<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderBanners_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, provideridentity: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ClearAllBanners(::core::mem::transmute(&provideridentity)).into()
}
unsafe extern "system" fn GetBanner<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderBanners_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, provideridentity: ::windows_core::PCWSTR, subscriptionid: ::windows_core::PCWSTR, contentid: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetBanner(::core::mem::transmute(&provideridentity), ::core::mem::transmute(&subscriptionid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(contentid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetBanner: SetBanner::<Identity, Impl, OFFSET>,
ClearBanner: ClearBanner::<Identity, Impl, OFFSET>,
ClearAllBanners: ClearAllBanners::<Identity, Impl, OFFSET>,
GetBanner: GetBanner::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IStorageProviderBanners as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IStorageProviderCopyHook_Impl: Sized {
fn CopyCallback(&self, hwnd: super::super::Foundation::HWND, operation: u32, flags: u32, srcfile: &::windows_core::PCWSTR, srcattribs: u32, destfile: &::windows_core::PCWSTR, destattribs: u32) -> ::windows_core::Result<u32>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IStorageProviderCopyHook {}
#[cfg(feature = "Win32_Foundation")]
impl IStorageProviderCopyHook_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderCopyHook_Impl, const OFFSET: isize>() -> IStorageProviderCopyHook_Vtbl {
unsafe extern "system" fn CopyCallback<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderCopyHook_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, operation: u32, flags: u32, srcfile: ::windows_core::PCWSTR, srcattribs: u32, destfile: ::windows_core::PCWSTR, destattribs: u32, result: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CopyCallback(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&operation), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&srcfile), ::core::mem::transmute_copy(&srcattribs), ::core::mem::transmute(&destfile), ::core::mem::transmute_copy(&destattribs)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(result, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CopyCallback: CopyCallback::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IStorageProviderCopyHook as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IStorageProviderHandler_Impl: Sized {
fn GetPropertyHandlerFromPath(&self, path: &::windows_core::PCWSTR) -> ::windows_core::Result<IStorageProviderPropertyHandler>;
fn GetPropertyHandlerFromUri(&self, uri: &::windows_core::PCWSTR) -> ::windows_core::Result<IStorageProviderPropertyHandler>;
fn GetPropertyHandlerFromFileId(&self, fileid: &::windows_core::PCWSTR) -> ::windows_core::Result<IStorageProviderPropertyHandler>;
}
impl ::windows_core::RuntimeName for IStorageProviderHandler {}
impl IStorageProviderHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderHandler_Impl, const OFFSET: isize>() -> IStorageProviderHandler_Vtbl {
unsafe extern "system" fn GetPropertyHandlerFromPath<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, propertyhandler: *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.GetPropertyHandlerFromPath(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(propertyhandler, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPropertyHandlerFromUri<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uri: ::windows_core::PCWSTR, propertyhandler: *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.GetPropertyHandlerFromUri(::core::mem::transmute(&uri)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(propertyhandler, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPropertyHandlerFromFileId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fileid: ::windows_core::PCWSTR, propertyhandler: *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.GetPropertyHandlerFromFileId(::core::mem::transmute(&fileid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(propertyhandler, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetPropertyHandlerFromPath: GetPropertyHandlerFromPath::<Identity, Impl, OFFSET>,
GetPropertyHandlerFromUri: GetPropertyHandlerFromUri::<Identity, Impl, OFFSET>,
GetPropertyHandlerFromFileId: GetPropertyHandlerFromFileId::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IStorageProviderHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
pub trait IStorageProviderPropertyHandler_Impl: Sized {
fn RetrieveProperties(&self, propertiestoretrieve: *const PropertiesSystem::PROPERTYKEY, propertiestoretrievecount: u32) -> ::windows_core::Result<PropertiesSystem::IPropertyStore>;
fn SaveProperties(&self, propertiestosave: ::core::option::Option<&PropertiesSystem::IPropertyStore>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl ::windows_core::RuntimeName for IStorageProviderPropertyHandler {}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl IStorageProviderPropertyHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderPropertyHandler_Impl, const OFFSET: isize>() -> IStorageProviderPropertyHandler_Vtbl {
unsafe extern "system" fn RetrieveProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderPropertyHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propertiestoretrieve: *const PropertiesSystem::PROPERTYKEY, propertiestoretrievecount: u32, retrievedproperties: *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.RetrieveProperties(::core::mem::transmute_copy(&propertiestoretrieve), ::core::mem::transmute_copy(&propertiestoretrievecount)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(retrievedproperties, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SaveProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStorageProviderPropertyHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propertiestosave: *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.SaveProperties(::windows_core::from_raw_borrowed(&propertiestosave)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
RetrieveProperties: RetrieveProperties::<Identity, Impl, OFFSET>,
SaveProperties: SaveProperties::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IStorageProviderPropertyHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_IO\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_IO"))]
pub trait IStreamAsync_Impl: Sized + super::super::System::Com::IStream_Impl {
fn ReadAsync(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: *mut u32, lpoverlapped: *const super::super::System::IO::OVERLAPPED) -> ::windows_core::Result<()>;
fn WriteAsync(&self, lpbuffer: *const ::core::ffi::c_void, cb: u32, pcbwritten: *mut u32, lpoverlapped: *const super::super::System::IO::OVERLAPPED) -> ::windows_core::Result<()>;
fn OverlappedResult(&self, lpoverlapped: *const super::super::System::IO::OVERLAPPED, lpnumberofbytestransferred: *mut u32, bwait: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn CancelIo(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_IO"))]
impl ::windows_core::RuntimeName for IStreamAsync {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_IO"))]
impl IStreamAsync_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamAsync_Impl, const OFFSET: isize>() -> IStreamAsync_Vtbl {
unsafe extern "system" fn ReadAsync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamAsync_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: *mut u32, lpoverlapped: *const super::super::System::IO::OVERLAPPED) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadAsync(::core::mem::transmute_copy(&pv), ::core::mem::transmute_copy(&cb), ::core::mem::transmute_copy(&pcbread), ::core::mem::transmute_copy(&lpoverlapped)).into()
}
unsafe extern "system" fn WriteAsync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamAsync_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, cb: u32, pcbwritten: *mut u32, lpoverlapped: *const super::super::System::IO::OVERLAPPED) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteAsync(::core::mem::transmute_copy(&lpbuffer), ::core::mem::transmute_copy(&cb), ::core::mem::transmute_copy(&pcbwritten), ::core::mem::transmute_copy(&lpoverlapped)).into()
}
unsafe extern "system" fn OverlappedResult<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamAsync_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpoverlapped: *const super::super::System::IO::OVERLAPPED, lpnumberofbytestransferred: *mut u32, bwait: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OverlappedResult(::core::mem::transmute_copy(&lpoverlapped), ::core::mem::transmute_copy(&lpnumberofbytestransferred), ::core::mem::transmute_copy(&bwait)).into()
}
unsafe extern "system" fn CancelIo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamAsync_Impl, const OFFSET: isize>(this: *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.CancelIo().into()
}
Self {
base__: super::super::System::Com::IStream_Vtbl::new::<Identity, Impl, OFFSET>(),
ReadAsync: ReadAsync::<Identity, Impl, OFFSET>,
WriteAsync: WriteAsync::<Identity, Impl, OFFSET>,
OverlappedResult: OverlappedResult::<Identity, Impl, OFFSET>,
CancelIo: CancelIo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IStreamAsync as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::ISequentialStream as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IStream as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IStreamUnbufferedInfo_Impl: Sized {
fn GetSectorSize(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IStreamUnbufferedInfo {}
impl IStreamUnbufferedInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamUnbufferedInfo_Impl, const OFFSET: isize>() -> IStreamUnbufferedInfo_Vtbl {
unsafe extern "system" fn GetSectorSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamUnbufferedInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcbsectorsize: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSectorSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcbsectorsize, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetSectorSize: GetSectorSize::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IStreamUnbufferedInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISuspensionDependencyManager_Impl: Sized {
fn RegisterAsChild(&self, processhandle: super::super::Foundation::HANDLE) -> ::windows_core::Result<()>;
fn GroupChildWithParent(&self, childprocesshandle: super::super::Foundation::HANDLE) -> ::windows_core::Result<()>;
fn UngroupChildFromParent(&self, childprocesshandle: super::super::Foundation::HANDLE) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISuspensionDependencyManager {}
#[cfg(feature = "Win32_Foundation")]
impl ISuspensionDependencyManager_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISuspensionDependencyManager_Impl, const OFFSET: isize>() -> ISuspensionDependencyManager_Vtbl {
unsafe extern "system" fn RegisterAsChild<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISuspensionDependencyManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processhandle: super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterAsChild(::core::mem::transmute_copy(&processhandle)).into()
}
unsafe extern "system" fn GroupChildWithParent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISuspensionDependencyManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, childprocesshandle: super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GroupChildWithParent(::core::mem::transmute_copy(&childprocesshandle)).into()
}
unsafe extern "system" fn UngroupChildFromParent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISuspensionDependencyManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, childprocesshandle: super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UngroupChildFromParent(::core::mem::transmute_copy(&childprocesshandle)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
RegisterAsChild: RegisterAsChild::<Identity, Impl, OFFSET>,
GroupChildWithParent: GroupChildWithParent::<Identity, Impl, OFFSET>,
UngroupChildFromParent: UngroupChildFromParent::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISuspensionDependencyManager as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
pub trait ISyncMgrConflict_Impl: Sized {
fn GetProperty(&self, propkey: *const PropertiesSystem::PROPERTYKEY) -> ::windows_core::Result<super::super::System::Com::StructuredStorage::PROPVARIANT>;
fn GetConflictIdInfo(&self) -> ::windows_core::Result<SYNCMGR_CONFLICT_ID_INFO>;
fn GetItemsArray(&self) -> ::windows_core::Result<ISyncMgrConflictItems>;
fn Resolve(&self, presolveinfo: ::core::option::Option<&ISyncMgrConflictResolveInfo>) -> ::windows_core::Result<()>;
fn GetResolutionHandler(&self, riid: *const ::windows_core::GUID, ppvresolutionhandler: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ::windows_core::RuntimeName for ISyncMgrConflict {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Variant", feature = "Win32_UI_Shell_PropertiesSystem"))]
impl ISyncMgrConflict_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflict_Impl, const OFFSET: isize>() -> ISyncMgrConflict_Vtbl {
unsafe extern "system" fn GetProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflict_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propkey: *const PropertiesSystem::PROPERTYKEY, ppropvar: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProperty(::core::mem::transmute_copy(&propkey)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppropvar, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetConflictIdInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflict_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pconflictidinfo: *mut SYNCMGR_CONFLICT_ID_INFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetConflictIdInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pconflictidinfo, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItemsArray<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflict_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pparray: *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.GetItemsArray() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pparray, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Resolve<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflict_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, presolveinfo: *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.Resolve(::windows_core::from_raw_borrowed(&presolveinfo)).into()
}
unsafe extern "system" fn GetResolutionHandler<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflict_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppvresolutionhandler: *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();
this.GetResolutionHandler(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppvresolutionhandler)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetProperty: GetProperty::<Identity, Impl, OFFSET>,
GetConflictIdInfo: GetConflictIdInfo::<Identity, Impl, OFFSET>,
GetItemsArray: GetItemsArray::<Identity, Impl, OFFSET>,
Resolve: Resolve::<Identity, Impl, OFFSET>,
GetResolutionHandler: GetResolutionHandler::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrConflict as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait ISyncMgrConflictFolder_Impl: Sized {
fn GetConflictIDList(&self, pconflict: ::core::option::Option<&ISyncMgrConflict>) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for ISyncMgrConflictFolder {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ISyncMgrConflictFolder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictFolder_Impl, const OFFSET: isize>() -> ISyncMgrConflictFolder_Vtbl {
unsafe extern "system" fn GetConflictIDList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictFolder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pconflict: *mut ::core::ffi::c_void, ppidlconflict: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetConflictIDList(::windows_core::from_raw_borrowed(&pconflict)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidlconflict, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetConflictIDList: GetConflictIDList::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrConflictFolder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISyncMgrConflictItems_Impl: Sized {
fn GetCount(&self) -> ::windows_core::Result<u32>;
fn GetItem(&self, iindex: u32, piteminfo: *mut CONFIRM_CONFLICT_ITEM) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ISyncMgrConflictItems {}
impl ISyncMgrConflictItems_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictItems_Impl, const OFFSET: isize>() -> ISyncMgrConflictItems_Vtbl {
unsafe extern "system" fn GetCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iindex: u32, piteminfo: *mut CONFIRM_CONFLICT_ITEM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetItem(::core::mem::transmute_copy(&iindex), ::core::mem::transmute_copy(&piteminfo)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCount: GetCount::<Identity, Impl, OFFSET>,
GetItem: GetItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrConflictItems as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISyncMgrConflictPresenter_Impl: Sized {
fn PresentConflict(&self, pconflict: ::core::option::Option<&ISyncMgrConflict>, presolveinfo: ::core::option::Option<&ISyncMgrConflictResolveInfo>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ISyncMgrConflictPresenter {}
impl ISyncMgrConflictPresenter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictPresenter_Impl, const OFFSET: isize>() -> ISyncMgrConflictPresenter_Vtbl {
unsafe extern "system" fn PresentConflict<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictPresenter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pconflict: *mut ::core::ffi::c_void, presolveinfo: *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.PresentConflict(::windows_core::from_raw_borrowed(&pconflict), ::windows_core::from_raw_borrowed(&presolveinfo)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), PresentConflict: PresentConflict::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrConflictPresenter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISyncMgrConflictResolutionItems_Impl: Sized {
fn GetCount(&self) -> ::windows_core::Result<u32>;
fn GetItem(&self, iindex: u32) -> ::windows_core::Result<CONFIRM_CONFLICT_RESULT_INFO>;
}
impl ::windows_core::RuntimeName for ISyncMgrConflictResolutionItems {}
impl ISyncMgrConflictResolutionItems_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolutionItems_Impl, const OFFSET: isize>() -> ISyncMgrConflictResolutionItems_Vtbl {
unsafe extern "system" fn GetCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolutionItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolutionItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iindex: u32, piteminfo: *mut CONFIRM_CONFLICT_RESULT_INFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItem(::core::mem::transmute_copy(&iindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piteminfo, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCount: GetCount::<Identity, Impl, OFFSET>,
GetItem: GetItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrConflictResolutionItems as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrConflictResolveInfo_Impl: Sized {
fn GetIterationInfo(&self, pncurrentconflict: *mut u32, pcconflicts: *mut u32, pcremainingforapplytoall: *mut u32) -> ::windows_core::Result<()>;
fn GetPresenterNextStep(&self) -> ::windows_core::Result<SYNCMGR_PRESENTER_NEXT_STEP>;
fn GetPresenterChoice(&self, pnpresenterchoice: *mut SYNCMGR_PRESENTER_CHOICE, pfapplytoall: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetItemChoiceCount(&self) -> ::windows_core::Result<u32>;
fn GetItemChoice(&self, ichoice: u32) -> ::windows_core::Result<u32>;
fn SetPresenterNextStep(&self, npresenternextstep: SYNCMGR_PRESENTER_NEXT_STEP) -> ::windows_core::Result<()>;
fn SetPresenterChoice(&self, npresenterchoice: SYNCMGR_PRESENTER_CHOICE, fapplytoall: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetItemChoices(&self, prgiconflictitemindexes: *mut u32, cchoices: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrConflictResolveInfo {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrConflictResolveInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolveInfo_Impl, const OFFSET: isize>() -> ISyncMgrConflictResolveInfo_Vtbl {
unsafe extern "system" fn GetIterationInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolveInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pncurrentconflict: *mut u32, pcconflicts: *mut u32, pcremainingforapplytoall: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIterationInfo(::core::mem::transmute_copy(&pncurrentconflict), ::core::mem::transmute_copy(&pcconflicts), ::core::mem::transmute_copy(&pcremainingforapplytoall)).into()
}
unsafe extern "system" fn GetPresenterNextStep<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolveInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnpresenternextstep: *mut SYNCMGR_PRESENTER_NEXT_STEP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPresenterNextStep() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pnpresenternextstep, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPresenterChoice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolveInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnpresenterchoice: *mut SYNCMGR_PRESENTER_CHOICE, pfapplytoall: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPresenterChoice(::core::mem::transmute_copy(&pnpresenterchoice), ::core::mem::transmute_copy(&pfapplytoall)).into()
}
unsafe extern "system" fn GetItemChoiceCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolveInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcchoices: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemChoiceCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcchoices, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItemChoice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolveInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ichoice: u32, pichoiceindex: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemChoice(::core::mem::transmute_copy(&ichoice)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pichoiceindex, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPresenterNextStep<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolveInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, npresenternextstep: SYNCMGR_PRESENTER_NEXT_STEP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPresenterNextStep(::core::mem::transmute_copy(&npresenternextstep)).into()
}
unsafe extern "system" fn SetPresenterChoice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolveInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, npresenterchoice: SYNCMGR_PRESENTER_CHOICE, fapplytoall: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPresenterChoice(::core::mem::transmute_copy(&npresenterchoice), ::core::mem::transmute_copy(&fapplytoall)).into()
}
unsafe extern "system" fn SetItemChoices<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictResolveInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prgiconflictitemindexes: *mut u32, cchoices: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetItemChoices(::core::mem::transmute_copy(&prgiconflictitemindexes), ::core::mem::transmute_copy(&cchoices)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetIterationInfo: GetIterationInfo::<Identity, Impl, OFFSET>,
GetPresenterNextStep: GetPresenterNextStep::<Identity, Impl, OFFSET>,
GetPresenterChoice: GetPresenterChoice::<Identity, Impl, OFFSET>,
GetItemChoiceCount: GetItemChoiceCount::<Identity, Impl, OFFSET>,
GetItemChoice: GetItemChoice::<Identity, Impl, OFFSET>,
SetPresenterNextStep: SetPresenterNextStep::<Identity, Impl, OFFSET>,
SetPresenterChoice: SetPresenterChoice::<Identity, Impl, OFFSET>,
SetItemChoices: SetItemChoices::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrConflictResolveInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait ISyncMgrConflictStore_Impl: Sized {
fn EnumConflicts(&self, pszhandlerid: &::windows_core::PCWSTR, pszitemid: &::windows_core::PCWSTR) -> ::windows_core::Result<IEnumSyncMgrConflict>;
fn BindToConflict(&self, pconflictidinfo: *const SYNCMGR_CONFLICT_ID_INFO, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn RemoveConflicts(&self, rgconflictidinfo: *const SYNCMGR_CONFLICT_ID_INFO, cconflicts: u32) -> ::windows_core::Result<()>;
fn GetCount(&self, pszhandlerid: &::windows_core::PCWSTR, pszitemid: &::windows_core::PCWSTR) -> ::windows_core::Result<u32>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for ISyncMgrConflictStore {}
#[cfg(feature = "Win32_System_Com")]
impl ISyncMgrConflictStore_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictStore_Impl, const OFFSET: isize>() -> ISyncMgrConflictStore_Vtbl {
unsafe extern "system" fn EnumConflicts<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, pszitemid: ::windows_core::PCWSTR, ppenum: *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.EnumConflicts(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute(&pszitemid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn BindToConflict<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pconflictidinfo: *const SYNCMGR_CONFLICT_ID_INFO, riid: *const ::windows_core::GUID, ppv: *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();
this.BindToConflict(::core::mem::transmute_copy(&pconflictidinfo), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn RemoveConflicts<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rgconflictidinfo: *const SYNCMGR_CONFLICT_ID_INFO, cconflicts: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveConflicts(::core::mem::transmute_copy(&rgconflictidinfo), ::core::mem::transmute_copy(&cconflicts)).into()
}
unsafe extern "system" fn GetCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrConflictStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, pszitemid: ::windows_core::PCWSTR, pnconflicts: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCount(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute(&pszitemid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pnconflicts, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
EnumConflicts: EnumConflicts::<Identity, Impl, OFFSET>,
BindToConflict: BindToConflict::<Identity, Impl, OFFSET>,
RemoveConflicts: RemoveConflicts::<Identity, Impl, OFFSET>,
GetCount: GetCount::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrConflictStore as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrControl_Impl: Sized {
fn StartHandlerSync(&self, pszhandlerid: &::windows_core::PCWSTR, hwndowner: super::super::Foundation::HWND, punk: ::core::option::Option<&::windows_core::IUnknown>, nsynccontrolflags: SYNCMGR_SYNC_CONTROL_FLAGS, presult: ::core::option::Option<&ISyncMgrSyncResult>) -> ::windows_core::Result<()>;
fn StartItemSync(&self, pszhandlerid: &::windows_core::PCWSTR, ppszitemids: *const ::windows_core::PCWSTR, citems: u32, hwndowner: super::super::Foundation::HWND, punk: ::core::option::Option<&::windows_core::IUnknown>, nsynccontrolflags: SYNCMGR_SYNC_CONTROL_FLAGS, presult: ::core::option::Option<&ISyncMgrSyncResult>) -> ::windows_core::Result<()>;
fn StartSyncAll(&self, hwndowner: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn StopHandlerSync(&self, pszhandlerid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn StopItemSync(&self, pszhandlerid: &::windows_core::PCWSTR, ppszitemids: *const ::windows_core::PCWSTR, citems: u32) -> ::windows_core::Result<()>;
fn StopSyncAll(&self) -> ::windows_core::Result<()>;
fn UpdateHandlerCollection(&self, rclsidcollectionid: *const ::windows_core::GUID, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::Result<()>;
fn UpdateHandler(&self, pszhandlerid: &::windows_core::PCWSTR, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::Result<()>;
fn UpdateItem(&self, pszhandlerid: &::windows_core::PCWSTR, pszitemid: &::windows_core::PCWSTR, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::Result<()>;
fn UpdateEvents(&self, pszhandlerid: &::windows_core::PCWSTR, pszitemid: &::windows_core::PCWSTR, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::Result<()>;
fn UpdateConflict(&self, pszhandlerid: &::windows_core::PCWSTR, pszitemid: &::windows_core::PCWSTR, pconflict: ::core::option::Option<&ISyncMgrConflict>, nreason: SYNCMGR_UPDATE_REASON) -> ::windows_core::Result<()>;
fn UpdateConflicts(&self, pszhandlerid: &::windows_core::PCWSTR, pszitemid: &::windows_core::PCWSTR, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::Result<()>;
fn ActivateHandler(&self, factivate: super::super::Foundation::BOOL, pszhandlerid: &::windows_core::PCWSTR, hwndowner: super::super::Foundation::HWND, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::Result<()>;
fn EnableHandler(&self, fenable: super::super::Foundation::BOOL, pszhandlerid: &::windows_core::PCWSTR, hwndowner: super::super::Foundation::HWND, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::Result<()>;
fn EnableItem(&self, fenable: super::super::Foundation::BOOL, pszhandlerid: &::windows_core::PCWSTR, pszitemid: &::windows_core::PCWSTR, hwndowner: super::super::Foundation::HWND, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrControl {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>() -> ISyncMgrControl_Vtbl {
unsafe extern "system" fn StartHandlerSync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, hwndowner: super::super::Foundation::HWND, punk: *mut ::core::ffi::c_void, nsynccontrolflags: SYNCMGR_SYNC_CONTROL_FLAGS, presult: *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.StartHandlerSync(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute_copy(&hwndowner), ::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&nsynccontrolflags), ::windows_core::from_raw_borrowed(&presult)).into()
}
unsafe extern "system" fn StartItemSync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, ppszitemids: *const ::windows_core::PCWSTR, citems: u32, hwndowner: super::super::Foundation::HWND, punk: *mut ::core::ffi::c_void, nsynccontrolflags: SYNCMGR_SYNC_CONTROL_FLAGS, presult: *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.StartItemSync(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute_copy(&ppszitemids), ::core::mem::transmute_copy(&citems), ::core::mem::transmute_copy(&hwndowner), ::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&nsynccontrolflags), ::windows_core::from_raw_borrowed(&presult)).into()
}
unsafe extern "system" fn StartSyncAll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndowner: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartSyncAll(::core::mem::transmute_copy(&hwndowner)).into()
}
unsafe extern "system" fn StopHandlerSync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopHandlerSync(::core::mem::transmute(&pszhandlerid)).into()
}
unsafe extern "system" fn StopItemSync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, ppszitemids: *const ::windows_core::PCWSTR, citems: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopItemSync(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute_copy(&ppszitemids), ::core::mem::transmute_copy(&citems)).into()
}
unsafe extern "system" fn StopSyncAll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *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.StopSyncAll().into()
}
unsafe extern "system" fn UpdateHandlerCollection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rclsidcollectionid: *const ::windows_core::GUID, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateHandlerCollection(::core::mem::transmute_copy(&rclsidcollectionid), ::core::mem::transmute_copy(&ncontrolflags)).into()
}
unsafe extern "system" fn UpdateHandler<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateHandler(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute_copy(&ncontrolflags)).into()
}
unsafe extern "system" fn UpdateItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, pszitemid: ::windows_core::PCWSTR, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateItem(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute(&pszitemid), ::core::mem::transmute_copy(&ncontrolflags)).into()
}
unsafe extern "system" fn UpdateEvents<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, pszitemid: ::windows_core::PCWSTR, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateEvents(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute(&pszitemid), ::core::mem::transmute_copy(&ncontrolflags)).into()
}
unsafe extern "system" fn UpdateConflict<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, pszitemid: ::windows_core::PCWSTR, pconflict: *mut ::core::ffi::c_void, nreason: SYNCMGR_UPDATE_REASON) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateConflict(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute(&pszitemid), ::windows_core::from_raw_borrowed(&pconflict), ::core::mem::transmute_copy(&nreason)).into()
}
unsafe extern "system" fn UpdateConflicts<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, pszitemid: ::windows_core::PCWSTR, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateConflicts(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute(&pszitemid), ::core::mem::transmute_copy(&ncontrolflags)).into()
}
unsafe extern "system" fn ActivateHandler<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, factivate: super::super::Foundation::BOOL, pszhandlerid: ::windows_core::PCWSTR, hwndowner: super::super::Foundation::HWND, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ActivateHandler(::core::mem::transmute_copy(&factivate), ::core::mem::transmute(&pszhandlerid), ::core::mem::transmute_copy(&hwndowner), ::core::mem::transmute_copy(&ncontrolflags)).into()
}
unsafe extern "system" fn EnableHandler<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fenable: super::super::Foundation::BOOL, pszhandlerid: ::windows_core::PCWSTR, hwndowner: super::super::Foundation::HWND, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableHandler(::core::mem::transmute_copy(&fenable), ::core::mem::transmute(&pszhandlerid), ::core::mem::transmute_copy(&hwndowner), ::core::mem::transmute_copy(&ncontrolflags)).into()
}
unsafe extern "system" fn EnableItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fenable: super::super::Foundation::BOOL, pszhandlerid: ::windows_core::PCWSTR, pszitemid: ::windows_core::PCWSTR, hwndowner: super::super::Foundation::HWND, ncontrolflags: SYNCMGR_CONTROL_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableItem(::core::mem::transmute_copy(&fenable), ::core::mem::transmute(&pszhandlerid), ::core::mem::transmute(&pszitemid), ::core::mem::transmute_copy(&hwndowner), ::core::mem::transmute_copy(&ncontrolflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartHandlerSync: StartHandlerSync::<Identity, Impl, OFFSET>,
StartItemSync: StartItemSync::<Identity, Impl, OFFSET>,
StartSyncAll: StartSyncAll::<Identity, Impl, OFFSET>,
StopHandlerSync: StopHandlerSync::<Identity, Impl, OFFSET>,
StopItemSync: StopItemSync::<Identity, Impl, OFFSET>,
StopSyncAll: StopSyncAll::<Identity, Impl, OFFSET>,
UpdateHandlerCollection: UpdateHandlerCollection::<Identity, Impl, OFFSET>,
UpdateHandler: UpdateHandler::<Identity, Impl, OFFSET>,
UpdateItem: UpdateItem::<Identity, Impl, OFFSET>,
UpdateEvents: UpdateEvents::<Identity, Impl, OFFSET>,
UpdateConflict: UpdateConflict::<Identity, Impl, OFFSET>,
UpdateConflicts: UpdateConflicts::<Identity, Impl, OFFSET>,
ActivateHandler: ActivateHandler::<Identity, Impl, OFFSET>,
EnableHandler: EnableHandler::<Identity, Impl, OFFSET>,
EnableItem: EnableItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait ISyncMgrEnumItems_Impl: Sized {
fn Next(&self, celt: u32, rgelt: *mut SYNCMGRITEM, pceltfetched: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, celt: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<ISyncMgrEnumItems>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for ISyncMgrEnumItems {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ISyncMgrEnumItems_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEnumItems_Impl, const OFFSET: isize>() -> ISyncMgrEnumItems_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEnumItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut SYNCMGRITEM, pceltfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEnumItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&celt)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEnumItems_Impl, const OFFSET: isize>(this: *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.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEnumItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrEnumItems as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrEvent_Impl: Sized {
fn GetEventID(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn GetHandlerID(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetItemID(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetLevel(&self) -> ::windows_core::Result<SYNCMGR_EVENT_LEVEL>;
fn GetFlags(&self) -> ::windows_core::Result<SYNCMGR_EVENT_FLAGS>;
fn GetTime(&self) -> ::windows_core::Result<super::super::Foundation::FILETIME>;
fn GetName(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetDescription(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetLinkText(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetLinkReference(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetContext(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrEvent {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrEvent_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>() -> ISyncMgrEvent_Vtbl {
unsafe extern "system" fn GetEventID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguideventid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pguideventid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetHandlerID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszhandlerid: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetHandlerID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszhandlerid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItemID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszitemid: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszitemid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLevel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnlevel: *mut SYNCMGR_EVENT_LEVEL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLevel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pnlevel, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnflags: *mut SYNCMGR_EVENT_FLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pnflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfcreationtime: *mut super::super::Foundation::FILETIME) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfcreationtime, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszdescription: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDescription() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszdescription, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLinkText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszlinktext: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLinkText() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszlinktext, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLinkReference<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszlinkreference: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLinkReference() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszlinkreference, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetContext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszcontext: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetContext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszcontext, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetEventID: GetEventID::<Identity, Impl, OFFSET>,
GetHandlerID: GetHandlerID::<Identity, Impl, OFFSET>,
GetItemID: GetItemID::<Identity, Impl, OFFSET>,
GetLevel: GetLevel::<Identity, Impl, OFFSET>,
GetFlags: GetFlags::<Identity, Impl, OFFSET>,
GetTime: GetTime::<Identity, Impl, OFFSET>,
GetName: GetName::<Identity, Impl, OFFSET>,
GetDescription: GetDescription::<Identity, Impl, OFFSET>,
GetLinkText: GetLinkText::<Identity, Impl, OFFSET>,
GetLinkReference: GetLinkReference::<Identity, Impl, OFFSET>,
GetContext: GetContext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrEvent as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrEventLinkUIOperation_Impl: Sized + ISyncMgrUIOperation_Impl {
fn Init(&self, rguideventid: *const ::windows_core::GUID, pevent: ::core::option::Option<&ISyncMgrEvent>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrEventLinkUIOperation {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrEventLinkUIOperation_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEventLinkUIOperation_Impl, const OFFSET: isize>() -> ISyncMgrEventLinkUIOperation_Vtbl {
unsafe extern "system" fn Init<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEventLinkUIOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rguideventid: *const ::windows_core::GUID, pevent: *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.Init(::core::mem::transmute_copy(&rguideventid), ::windows_core::from_raw_borrowed(&pevent)).into()
}
Self { base__: ISyncMgrUIOperation_Vtbl::new::<Identity, Impl, OFFSET>(), Init: Init::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrEventLinkUIOperation as ::windows_core::ComInterface>::IID || iid == &<ISyncMgrUIOperation as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISyncMgrEventStore_Impl: Sized {
fn GetEventEnumerator(&self) -> ::windows_core::Result<IEnumSyncMgrEvents>;
fn GetEventCount(&self) -> ::windows_core::Result<u32>;
fn GetEvent(&self, rguideventid: *const ::windows_core::GUID) -> ::windows_core::Result<ISyncMgrEvent>;
fn RemoveEvent(&self, pguideventids: *const ::windows_core::GUID, cevents: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ISyncMgrEventStore {}
impl ISyncMgrEventStore_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEventStore_Impl, const OFFSET: isize>() -> ISyncMgrEventStore_Vtbl {
unsafe extern "system" fn GetEventEnumerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEventStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.GetEventEnumerator() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEventStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcevents: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcevents, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEventStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rguideventid: *const ::windows_core::GUID, ppevent: *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.GetEvent(::core::mem::transmute_copy(&rguideventid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppevent, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrEventStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguideventids: *const ::windows_core::GUID, cevents: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveEvent(::core::mem::transmute_copy(&pguideventids), ::core::mem::transmute_copy(&cevents)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetEventEnumerator: GetEventEnumerator::<Identity, Impl, OFFSET>,
GetEventCount: GetEventCount::<Identity, Impl, OFFSET>,
GetEvent: GetEvent::<Identity, Impl, OFFSET>,
RemoveEvent: RemoveEvent::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrEventStore as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrHandler_Impl: Sized {
fn GetName(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetHandlerInfo(&self) -> ::windows_core::Result<ISyncMgrHandlerInfo>;
fn GetObject(&self, rguidobjectid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetCapabilities(&self) -> ::windows_core::Result<SYNCMGR_HANDLER_CAPABILITIES>;
fn GetPolicies(&self) -> ::windows_core::Result<SYNCMGR_HANDLER_POLICIES>;
fn Activate(&self, factivate: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn Enable(&self, fenable: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn Synchronize(&self, ppszitemids: *const ::windows_core::PCWSTR, citems: u32, hwndowner: super::super::Foundation::HWND, psessioncreator: ::core::option::Option<&ISyncMgrSessionCreator>, punk: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrHandler {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandler_Impl, const OFFSET: isize>() -> ISyncMgrHandler_Vtbl {
unsafe extern "system" fn GetName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetHandlerInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pphandlerinfo: *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.GetHandlerInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pphandlerinfo, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rguidobjectid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *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();
this.GetObject(::core::mem::transmute_copy(&rguidobjectid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmcapabilities: *mut SYNCMGR_HANDLER_CAPABILITIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCapabilities() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmcapabilities, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPolicies<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmpolicies: *mut SYNCMGR_HANDLER_POLICIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPolicies() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmpolicies, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Activate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, factivate: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Activate(::core::mem::transmute_copy(&factivate)).into()
}
unsafe extern "system" fn Enable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fenable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Enable(::core::mem::transmute_copy(&fenable)).into()
}
unsafe extern "system" fn Synchronize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszitemids: *const ::windows_core::PCWSTR, citems: u32, hwndowner: super::super::Foundation::HWND, psessioncreator: *mut ::core::ffi::c_void, punk: *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.Synchronize(::core::mem::transmute_copy(&ppszitemids), ::core::mem::transmute_copy(&citems), ::core::mem::transmute_copy(&hwndowner), ::windows_core::from_raw_borrowed(&psessioncreator), ::windows_core::from_raw_borrowed(&punk)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetName: GetName::<Identity, Impl, OFFSET>,
GetHandlerInfo: GetHandlerInfo::<Identity, Impl, OFFSET>,
GetObject: GetObject::<Identity, Impl, OFFSET>,
GetCapabilities: GetCapabilities::<Identity, Impl, OFFSET>,
GetPolicies: GetPolicies::<Identity, Impl, OFFSET>,
Activate: Activate::<Identity, Impl, OFFSET>,
Enable: Enable::<Identity, Impl, OFFSET>,
Synchronize: Synchronize::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait ISyncMgrHandlerCollection_Impl: Sized {
fn GetHandlerEnumerator(&self) -> ::windows_core::Result<super::super::System::Com::IEnumString>;
fn BindToHandler(&self, pszhandlerid: &::windows_core::PCWSTR, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for ISyncMgrHandlerCollection {}
#[cfg(feature = "Win32_System_Com")]
impl ISyncMgrHandlerCollection_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerCollection_Impl, const OFFSET: isize>() -> ISyncMgrHandlerCollection_Vtbl {
unsafe extern "system" fn GetHandlerEnumerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.GetHandlerEnumerator() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn BindToHandler<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, riid: *const ::windows_core::GUID, ppv: *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();
this.BindToHandler(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetHandlerEnumerator: GetHandlerEnumerator::<Identity, Impl, OFFSET>,
BindToHandler: BindToHandler::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrHandlerCollection as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrHandlerInfo_Impl: Sized {
fn GetType(&self) -> ::windows_core::Result<SYNCMGR_HANDLER_TYPE>;
fn GetTypeLabel(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetComment(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetLastSyncTime(&self) -> ::windows_core::Result<super::super::Foundation::FILETIME>;
fn IsActive(&self) -> ::windows_core::Result<()>;
fn IsEnabled(&self) -> ::windows_core::Result<()>;
fn IsConnected(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrHandlerInfo {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrHandlerInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerInfo_Impl, const OFFSET: isize>() -> ISyncMgrHandlerInfo_Vtbl {
unsafe extern "system" fn GetType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pntype: *mut SYNCMGR_HANDLER_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pntype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeLabel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsztypelabel: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeLabel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsztypelabel, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetComment<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszcomment: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetComment() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszcomment, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLastSyncTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pftlastsync: *mut super::super::Foundation::FILETIME) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLastSyncTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pftlastsync, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsActive<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerInfo_Impl, const OFFSET: isize>(this: *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.IsActive().into()
}
unsafe extern "system" fn IsEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerInfo_Impl, const OFFSET: isize>(this: *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.IsEnabled().into()
}
unsafe extern "system" fn IsConnected<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrHandlerInfo_Impl, const OFFSET: isize>(this: *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.IsConnected().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetType: GetType::<Identity, Impl, OFFSET>,
GetTypeLabel: GetTypeLabel::<Identity, Impl, OFFSET>,
GetComment: GetComment::<Identity, Impl, OFFSET>,
GetLastSyncTime: GetLastSyncTime::<Identity, Impl, OFFSET>,
IsActive: IsActive::<Identity, Impl, OFFSET>,
IsEnabled: IsEnabled::<Identity, Impl, OFFSET>,
IsConnected: IsConnected::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrHandlerInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISyncMgrRegister_Impl: Sized {
fn RegisterSyncMgrHandler(&self, clsidhandler: *const ::windows_core::GUID, pwszdescription: &::windows_core::PCWSTR, dwsyncmgrregisterflags: u32) -> ::windows_core::Result<()>;
fn UnregisterSyncMgrHandler(&self, clsidhandler: *const ::windows_core::GUID, dwreserved: u32) -> ::windows_core::Result<()>;
fn GetHandlerRegistrationInfo(&self, clsidhandler: *const ::windows_core::GUID, pdwsyncmgrregisterflags: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ISyncMgrRegister {}
impl ISyncMgrRegister_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrRegister_Impl, const OFFSET: isize>() -> ISyncMgrRegister_Vtbl {
unsafe extern "system" fn RegisterSyncMgrHandler<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrRegister_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsidhandler: *const ::windows_core::GUID, pwszdescription: ::windows_core::PCWSTR, dwsyncmgrregisterflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterSyncMgrHandler(::core::mem::transmute_copy(&clsidhandler), ::core::mem::transmute(&pwszdescription), ::core::mem::transmute_copy(&dwsyncmgrregisterflags)).into()
}
unsafe extern "system" fn UnregisterSyncMgrHandler<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrRegister_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsidhandler: *const ::windows_core::GUID, dwreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterSyncMgrHandler(::core::mem::transmute_copy(&clsidhandler), ::core::mem::transmute_copy(&dwreserved)).into()
}
unsafe extern "system" fn GetHandlerRegistrationInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrRegister_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsidhandler: *const ::windows_core::GUID, pdwsyncmgrregisterflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetHandlerRegistrationInfo(::core::mem::transmute_copy(&clsidhandler), ::core::mem::transmute_copy(&pdwsyncmgrregisterflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
RegisterSyncMgrHandler: RegisterSyncMgrHandler::<Identity, Impl, OFFSET>,
UnregisterSyncMgrHandler: UnregisterSyncMgrHandler::<Identity, Impl, OFFSET>,
GetHandlerRegistrationInfo: GetHandlerRegistrationInfo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrRegister as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISyncMgrResolutionHandler_Impl: Sized {
fn QueryAbilities(&self) -> ::windows_core::Result<u32>;
fn KeepOther(&self, psiother: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<SYNCMGR_RESOLUTION_FEEDBACK>;
fn KeepRecent(&self) -> ::windows_core::Result<SYNCMGR_RESOLUTION_FEEDBACK>;
fn RemoveFromSyncSet(&self) -> ::windows_core::Result<SYNCMGR_RESOLUTION_FEEDBACK>;
fn KeepItems(&self, parray: ::core::option::Option<&ISyncMgrConflictResolutionItems>) -> ::windows_core::Result<SYNCMGR_RESOLUTION_FEEDBACK>;
}
impl ::windows_core::RuntimeName for ISyncMgrResolutionHandler {}
impl ISyncMgrResolutionHandler_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrResolutionHandler_Impl, const OFFSET: isize>() -> ISyncMgrResolutionHandler_Vtbl {
unsafe extern "system" fn QueryAbilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrResolutionHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwabilities: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryAbilities() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwabilities, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn KeepOther<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrResolutionHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psiother: *mut ::core::ffi::c_void, pfeedback: *mut SYNCMGR_RESOLUTION_FEEDBACK) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.KeepOther(::windows_core::from_raw_borrowed(&psiother)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfeedback, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn KeepRecent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrResolutionHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfeedback: *mut SYNCMGR_RESOLUTION_FEEDBACK) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.KeepRecent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfeedback, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveFromSyncSet<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrResolutionHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfeedback: *mut SYNCMGR_RESOLUTION_FEEDBACK) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RemoveFromSyncSet() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfeedback, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn KeepItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrResolutionHandler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, parray: *mut ::core::ffi::c_void, pfeedback: *mut SYNCMGR_RESOLUTION_FEEDBACK) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.KeepItems(::windows_core::from_raw_borrowed(&parray)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfeedback, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
QueryAbilities: QueryAbilities::<Identity, Impl, OFFSET>,
KeepOther: KeepOther::<Identity, Impl, OFFSET>,
KeepRecent: KeepRecent::<Identity, Impl, OFFSET>,
RemoveFromSyncSet: RemoveFromSyncSet::<Identity, Impl, OFFSET>,
KeepItems: KeepItems::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrResolutionHandler as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrScheduleWizardUIOperation_Impl: Sized + ISyncMgrUIOperation_Impl {
fn InitWizard(&self, pszhandlerid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrScheduleWizardUIOperation {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrScheduleWizardUIOperation_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrScheduleWizardUIOperation_Impl, const OFFSET: isize>() -> ISyncMgrScheduleWizardUIOperation_Vtbl {
unsafe extern "system" fn InitWizard<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrScheduleWizardUIOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitWizard(::core::mem::transmute(&pszhandlerid)).into()
}
Self { base__: ISyncMgrUIOperation_Vtbl::new::<Identity, Impl, OFFSET>(), InitWizard: InitWizard::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrScheduleWizardUIOperation as ::windows_core::ComInterface>::IID || iid == &<ISyncMgrUIOperation as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISyncMgrSessionCreator_Impl: Sized {
fn CreateSession(&self, pszhandlerid: &::windows_core::PCWSTR, ppszitemids: *const ::windows_core::PCWSTR, citems: u32) -> ::windows_core::Result<ISyncMgrSyncCallback>;
}
impl ::windows_core::RuntimeName for ISyncMgrSessionCreator {}
impl ISyncMgrSessionCreator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSessionCreator_Impl, const OFFSET: isize>() -> ISyncMgrSessionCreator_Vtbl {
unsafe extern "system" fn CreateSession<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSessionCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszhandlerid: ::windows_core::PCWSTR, ppszitemids: *const ::windows_core::PCWSTR, citems: u32, ppcallback: *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.CreateSession(::core::mem::transmute(&pszhandlerid), ::core::mem::transmute_copy(&ppszitemids), ::core::mem::transmute_copy(&citems)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcallback, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CreateSession: CreateSession::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrSessionCreator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait ISyncMgrSyncCallback_Impl: Sized {
fn ReportProgress(&self, pszitemid: &::windows_core::PCWSTR, pszprogresstext: &::windows_core::PCWSTR, nstatus: SYNCMGR_PROGRESS_STATUS, ucurrentstep: u32, umaxstep: u32, pncancelrequest: *mut SYNCMGR_CANCEL_REQUEST) -> ::windows_core::Result<()>;
fn SetHandlerProgressText(&self, pszprogresstext: &::windows_core::PCWSTR, pncancelrequest: *mut SYNCMGR_CANCEL_REQUEST) -> ::windows_core::Result<()>;
fn ReportEvent(&self, pszitemid: &::windows_core::PCWSTR, nlevel: SYNCMGR_EVENT_LEVEL, nflags: SYNCMGR_EVENT_FLAGS, pszname: &::windows_core::PCWSTR, pszdescription: &::windows_core::PCWSTR, pszlinktext: &::windows_core::PCWSTR, pszlinkreference: &::windows_core::PCWSTR, pszcontext: &::windows_core::PCWSTR) -> ::windows_core::Result<::windows_core::GUID>;
fn CanContinue(&self, pszitemid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn QueryForAdditionalItems(&self, ppenumitemids: *mut ::core::option::Option<super::super::System::Com::IEnumString>, ppenumpunks: *mut ::core::option::Option<super::super::System::Com::IEnumUnknown>) -> ::windows_core::Result<()>;
fn AddItemToSession(&self, pszitemid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn AddIUnknownToSession(&self, punk: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn ProposeItem(&self, pnewitem: ::core::option::Option<&ISyncMgrSyncItem>) -> ::windows_core::Result<()>;
fn CommitItem(&self, pszitemid: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn ReportManualSync(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for ISyncMgrSyncCallback {}
#[cfg(feature = "Win32_System_Com")]
impl ISyncMgrSyncCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>() -> ISyncMgrSyncCallback_Vtbl {
unsafe extern "system" fn ReportProgress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszitemid: ::windows_core::PCWSTR, pszprogresstext: ::windows_core::PCWSTR, nstatus: SYNCMGR_PROGRESS_STATUS, ucurrentstep: u32, umaxstep: u32, pncancelrequest: *mut SYNCMGR_CANCEL_REQUEST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReportProgress(::core::mem::transmute(&pszitemid), ::core::mem::transmute(&pszprogresstext), ::core::mem::transmute_copy(&nstatus), ::core::mem::transmute_copy(&ucurrentstep), ::core::mem::transmute_copy(&umaxstep), ::core::mem::transmute_copy(&pncancelrequest)).into()
}
unsafe extern "system" fn SetHandlerProgressText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszprogresstext: ::windows_core::PCWSTR, pncancelrequest: *mut SYNCMGR_CANCEL_REQUEST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHandlerProgressText(::core::mem::transmute(&pszprogresstext), ::core::mem::transmute_copy(&pncancelrequest)).into()
}
unsafe extern "system" fn ReportEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszitemid: ::windows_core::PCWSTR, nlevel: SYNCMGR_EVENT_LEVEL, nflags: SYNCMGR_EVENT_FLAGS, pszname: ::windows_core::PCWSTR, pszdescription: ::windows_core::PCWSTR, pszlinktext: ::windows_core::PCWSTR, pszlinkreference: ::windows_core::PCWSTR, pszcontext: ::windows_core::PCWSTR, pguideventid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ReportEvent(::core::mem::transmute(&pszitemid), ::core::mem::transmute_copy(&nlevel), ::core::mem::transmute_copy(&nflags), ::core::mem::transmute(&pszname), ::core::mem::transmute(&pszdescription), ::core::mem::transmute(&pszlinktext), ::core::mem::transmute(&pszlinkreference), ::core::mem::transmute(&pszcontext)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pguideventid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CanContinue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszitemid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CanContinue(::core::mem::transmute(&pszitemid)).into()
}
unsafe extern "system" fn QueryForAdditionalItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenumitemids: *mut *mut ::core::ffi::c_void, ppenumpunks: *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();
this.QueryForAdditionalItems(::core::mem::transmute_copy(&ppenumitemids), ::core::mem::transmute_copy(&ppenumpunks)).into()
}
unsafe extern "system" fn AddItemToSession<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszitemid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddItemToSession(::core::mem::transmute(&pszitemid)).into()
}
unsafe extern "system" fn AddIUnknownToSession<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *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.AddIUnknownToSession(::windows_core::from_raw_borrowed(&punk)).into()
}
unsafe extern "system" fn ProposeItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnewitem: *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.ProposeItem(::windows_core::from_raw_borrowed(&pnewitem)).into()
}
unsafe extern "system" fn CommitItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszitemid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CommitItem(::core::mem::transmute(&pszitemid)).into()
}
unsafe extern "system" fn ReportManualSync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncCallback_Impl, const OFFSET: isize>(this: *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.ReportManualSync().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ReportProgress: ReportProgress::<Identity, Impl, OFFSET>,
SetHandlerProgressText: SetHandlerProgressText::<Identity, Impl, OFFSET>,
ReportEvent: ReportEvent::<Identity, Impl, OFFSET>,
CanContinue: CanContinue::<Identity, Impl, OFFSET>,
QueryForAdditionalItems: QueryForAdditionalItems::<Identity, Impl, OFFSET>,
AddItemToSession: AddItemToSession::<Identity, Impl, OFFSET>,
AddIUnknownToSession: AddIUnknownToSession::<Identity, Impl, OFFSET>,
ProposeItem: ProposeItem::<Identity, Impl, OFFSET>,
CommitItem: CommitItem::<Identity, Impl, OFFSET>,
ReportManualSync: ReportManualSync::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrSyncCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrSyncItem_Impl: Sized {
fn GetItemID(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetName(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetItemInfo(&self) -> ::windows_core::Result<ISyncMgrSyncItemInfo>;
fn GetObject(&self, rguidobjectid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn GetCapabilities(&self) -> ::windows_core::Result<SYNCMGR_ITEM_CAPABILITIES>;
fn GetPolicies(&self) -> ::windows_core::Result<SYNCMGR_ITEM_POLICIES>;
fn Enable(&self, fenable: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn Delete(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrSyncItem {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrSyncItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItem_Impl, const OFFSET: isize>() -> ISyncMgrSyncItem_Vtbl {
unsafe extern "system" fn GetItemID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszitemid: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszitemid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItemInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppiteminfo: *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.GetItemInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppiteminfo, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rguidobjectid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *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();
this.GetObject(::core::mem::transmute_copy(&rguidobjectid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn GetCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmcapabilities: *mut SYNCMGR_ITEM_CAPABILITIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCapabilities() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmcapabilities, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPolicies<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmpolicies: *mut SYNCMGR_ITEM_POLICIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPolicies() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmpolicies, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Enable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fenable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Enable(::core::mem::transmute_copy(&fenable)).into()
}
unsafe extern "system" fn Delete<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItem_Impl, const OFFSET: isize>(this: *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.Delete().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetItemID: GetItemID::<Identity, Impl, OFFSET>,
GetName: GetName::<Identity, Impl, OFFSET>,
GetItemInfo: GetItemInfo::<Identity, Impl, OFFSET>,
GetObject: GetObject::<Identity, Impl, OFFSET>,
GetCapabilities: GetCapabilities::<Identity, Impl, OFFSET>,
GetPolicies: GetPolicies::<Identity, Impl, OFFSET>,
Enable: Enable::<Identity, Impl, OFFSET>,
Delete: Delete::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrSyncItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISyncMgrSyncItemContainer_Impl: Sized {
fn GetSyncItem(&self, pszitemid: &::windows_core::PCWSTR) -> ::windows_core::Result<ISyncMgrSyncItem>;
fn GetSyncItemEnumerator(&self) -> ::windows_core::Result<IEnumSyncMgrSyncItems>;
fn GetSyncItemCount(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for ISyncMgrSyncItemContainer {}
impl ISyncMgrSyncItemContainer_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItemContainer_Impl, const OFFSET: isize>() -> ISyncMgrSyncItemContainer_Vtbl {
unsafe extern "system" fn GetSyncItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItemContainer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszitemid: ::windows_core::PCWSTR, ppitem: *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.GetSyncItem(::core::mem::transmute(&pszitemid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSyncItemEnumerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItemContainer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *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.GetSyncItemEnumerator() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSyncItemCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItemContainer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcitems: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSyncItemCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcitems, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSyncItem: GetSyncItem::<Identity, Impl, OFFSET>,
GetSyncItemEnumerator: GetSyncItemEnumerator::<Identity, Impl, OFFSET>,
GetSyncItemCount: GetSyncItemCount::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrSyncItemContainer as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrSyncItemInfo_Impl: Sized {
fn GetTypeLabel(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetComment(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetLastSyncTime(&self) -> ::windows_core::Result<super::super::Foundation::FILETIME>;
fn IsEnabled(&self) -> ::windows_core::Result<()>;
fn IsConnected(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrSyncItemInfo {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrSyncItemInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItemInfo_Impl, const OFFSET: isize>() -> ISyncMgrSyncItemInfo_Vtbl {
unsafe extern "system" fn GetTypeLabel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItemInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsztypelabel: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeLabel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsztypelabel, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetComment<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItemInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszcomment: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetComment() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszcomment, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLastSyncTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItemInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pftlastsync: *mut super::super::Foundation::FILETIME) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLastSyncTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pftlastsync, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItemInfo_Impl, const OFFSET: isize>(this: *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.IsEnabled().into()
}
unsafe extern "system" fn IsConnected<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncItemInfo_Impl, const OFFSET: isize>(this: *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.IsConnected().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTypeLabel: GetTypeLabel::<Identity, Impl, OFFSET>,
GetComment: GetComment::<Identity, Impl, OFFSET>,
GetLastSyncTime: GetLastSyncTime::<Identity, Impl, OFFSET>,
IsEnabled: IsEnabled::<Identity, Impl, OFFSET>,
IsConnected: IsConnected::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrSyncItemInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISyncMgrSyncResult_Impl: Sized {
fn Result(&self, nstatus: SYNCMGR_PROGRESS_STATUS, cerror: u32, cconflicts: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ISyncMgrSyncResult {}
impl ISyncMgrSyncResult_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncResult_Impl, const OFFSET: isize>() -> ISyncMgrSyncResult_Vtbl {
unsafe extern "system" fn Result<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSyncResult_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nstatus: SYNCMGR_PROGRESS_STATUS, cerror: u32, cconflicts: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Result(::core::mem::transmute_copy(&nstatus), ::core::mem::transmute_copy(&cerror), ::core::mem::transmute_copy(&cconflicts)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Result: Result::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrSyncResult as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait ISyncMgrSynchronize_Impl: Sized {
fn Initialize(&self, dwreserved: u32, dwsyncmgrflags: u32, cbcookie: u32, lpcookie: *const u8) -> ::windows_core::Result<()>;
fn GetHandlerInfo(&self) -> ::windows_core::Result<*mut SYNCMGRHANDLERINFO>;
fn EnumSyncMgrItems(&self) -> ::windows_core::Result<ISyncMgrEnumItems>;
fn GetItemObject(&self, itemid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn ShowProperties(&self, hwndparent: super::super::Foundation::HWND, itemid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn SetProgressCallback(&self, lpcallback: ::core::option::Option<&ISyncMgrSynchronizeCallback>) -> ::windows_core::Result<()>;
fn PrepareForSync(&self, cbnumitems: u32, pitemids: *const ::windows_core::GUID, hwndparent: super::super::Foundation::HWND, dwreserved: u32) -> ::windows_core::Result<()>;
fn Synchronize(&self, hwndparent: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn SetItemStatus(&self, pitemid: *const ::windows_core::GUID, dwsyncmgrstatus: u32) -> ::windows_core::Result<()>;
fn ShowError(&self, hwndparent: super::super::Foundation::HWND, errorid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for ISyncMgrSynchronize {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ISyncMgrSynchronize_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>() -> ISyncMgrSynchronize_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwreserved: u32, dwsyncmgrflags: u32, cbcookie: u32, lpcookie: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&dwreserved), ::core::mem::transmute_copy(&dwsyncmgrflags), ::core::mem::transmute_copy(&cbcookie), ::core::mem::transmute_copy(&lpcookie)).into()
}
unsafe extern "system" fn GetHandlerInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsyncmgrhandlerinfo: *mut *mut SYNCMGRHANDLERINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetHandlerInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsyncmgrhandlerinfo, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumSyncMgrItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsyncmgrenumitems: *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.EnumSyncMgrItems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsyncmgrenumitems, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItemObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itemid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *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();
this.GetItemObject(::core::mem::transmute_copy(&itemid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn ShowProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndparent: super::super::Foundation::HWND, itemid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowProperties(::core::mem::transmute_copy(&hwndparent), ::core::mem::transmute_copy(&itemid)).into()
}
unsafe extern "system" fn SetProgressCallback<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpcallback: *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.SetProgressCallback(::windows_core::from_raw_borrowed(&lpcallback)).into()
}
unsafe extern "system" fn PrepareForSync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbnumitems: u32, pitemids: *const ::windows_core::GUID, hwndparent: super::super::Foundation::HWND, dwreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PrepareForSync(::core::mem::transmute_copy(&cbnumitems), ::core::mem::transmute_copy(&pitemids), ::core::mem::transmute_copy(&hwndparent), ::core::mem::transmute_copy(&dwreserved)).into()
}
unsafe extern "system" fn Synchronize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndparent: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Synchronize(::core::mem::transmute_copy(&hwndparent)).into()
}
unsafe extern "system" fn SetItemStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pitemid: *const ::windows_core::GUID, dwsyncmgrstatus: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetItemStatus(::core::mem::transmute_copy(&pitemid), ::core::mem::transmute_copy(&dwsyncmgrstatus)).into()
}
unsafe extern "system" fn ShowError<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronize_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndparent: super::super::Foundation::HWND, errorid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowError(::core::mem::transmute_copy(&hwndparent), ::core::mem::transmute_copy(&errorid)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
GetHandlerInfo: GetHandlerInfo::<Identity, Impl, OFFSET>,
EnumSyncMgrItems: EnumSyncMgrItems::<Identity, Impl, OFFSET>,
GetItemObject: GetItemObject::<Identity, Impl, OFFSET>,
ShowProperties: ShowProperties::<Identity, Impl, OFFSET>,
SetProgressCallback: SetProgressCallback::<Identity, Impl, OFFSET>,
PrepareForSync: PrepareForSync::<Identity, Impl, OFFSET>,
Synchronize: Synchronize::<Identity, Impl, OFFSET>,
SetItemStatus: SetItemStatus::<Identity, Impl, OFFSET>,
ShowError: ShowError::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrSynchronize as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrSynchronizeCallback_Impl: Sized {
fn ShowPropertiesCompleted(&self, hr: ::windows_core::HRESULT) -> ::windows_core::Result<()>;
fn PrepareForSyncCompleted(&self, hr: ::windows_core::HRESULT) -> ::windows_core::Result<()>;
fn SynchronizeCompleted(&self, hr: ::windows_core::HRESULT) -> ::windows_core::Result<()>;
fn ShowErrorCompleted(&self, hr: ::windows_core::HRESULT, citems: u32, pitemids: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn EnableModeless(&self, fenable: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn Progress(&self, itemid: *const ::windows_core::GUID, psyncprogressitem: *const SYNCMGRPROGRESSITEM) -> ::windows_core::Result<()>;
fn LogError(&self, dwerrorlevel: u32, pszerrortext: &::windows_core::PCWSTR, psynclogerror: *const SYNCMGRLOGERRORINFO) -> ::windows_core::Result<()>;
fn DeleteLogError(&self, errorid: *const ::windows_core::GUID, dwreserved: u32) -> ::windows_core::Result<()>;
fn EstablishConnection(&self, pwszconnection: &::windows_core::PCWSTR, dwreserved: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrSynchronizeCallback {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrSynchronizeCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeCallback_Impl, const OFFSET: isize>() -> ISyncMgrSynchronizeCallback_Vtbl {
unsafe extern "system" fn ShowPropertiesCompleted<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hr: ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowPropertiesCompleted(::core::mem::transmute_copy(&hr)).into()
}
unsafe extern "system" fn PrepareForSyncCompleted<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hr: ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PrepareForSyncCompleted(::core::mem::transmute_copy(&hr)).into()
}
unsafe extern "system" fn SynchronizeCompleted<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hr: ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SynchronizeCompleted(::core::mem::transmute_copy(&hr)).into()
}
unsafe extern "system" fn ShowErrorCompleted<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hr: ::windows_core::HRESULT, citems: u32, pitemids: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowErrorCompleted(::core::mem::transmute_copy(&hr), ::core::mem::transmute_copy(&citems), ::core::mem::transmute_copy(&pitemids)).into()
}
unsafe extern "system" fn EnableModeless<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fenable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableModeless(::core::mem::transmute_copy(&fenable)).into()
}
unsafe extern "system" fn Progress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, itemid: *const ::windows_core::GUID, psyncprogressitem: *const SYNCMGRPROGRESSITEM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Progress(::core::mem::transmute_copy(&itemid), ::core::mem::transmute_copy(&psyncprogressitem)).into()
}
unsafe extern "system" fn LogError<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwerrorlevel: u32, pszerrortext: ::windows_core::PCWSTR, psynclogerror: *const SYNCMGRLOGERRORINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LogError(::core::mem::transmute_copy(&dwerrorlevel), ::core::mem::transmute(&pszerrortext), ::core::mem::transmute_copy(&psynclogerror)).into()
}
unsafe extern "system" fn DeleteLogError<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, errorid: *const ::windows_core::GUID, dwreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteLogError(::core::mem::transmute_copy(&errorid), ::core::mem::transmute_copy(&dwreserved)).into()
}
unsafe extern "system" fn EstablishConnection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwszconnection: ::windows_core::PCWSTR, dwreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EstablishConnection(::core::mem::transmute(&pwszconnection), ::core::mem::transmute_copy(&dwreserved)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ShowPropertiesCompleted: ShowPropertiesCompleted::<Identity, Impl, OFFSET>,
PrepareForSyncCompleted: PrepareForSyncCompleted::<Identity, Impl, OFFSET>,
SynchronizeCompleted: SynchronizeCompleted::<Identity, Impl, OFFSET>,
ShowErrorCompleted: ShowErrorCompleted::<Identity, Impl, OFFSET>,
EnableModeless: EnableModeless::<Identity, Impl, OFFSET>,
Progress: Progress::<Identity, Impl, OFFSET>,
LogError: LogError::<Identity, Impl, OFFSET>,
DeleteLogError: DeleteLogError::<Identity, Impl, OFFSET>,
EstablishConnection: EstablishConnection::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrSynchronizeCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ISyncMgrSynchronizeInvoke_Impl: Sized {
fn UpdateItems(&self, dwinvokeflags: u32, clsid: *const ::windows_core::GUID, cbcookie: u32, pcookie: *const u8) -> ::windows_core::Result<()>;
fn UpdateAll(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ISyncMgrSynchronizeInvoke {}
impl ISyncMgrSynchronizeInvoke_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeInvoke_Impl, const OFFSET: isize>() -> ISyncMgrSynchronizeInvoke_Vtbl {
unsafe extern "system" fn UpdateItems<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeInvoke_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwinvokeflags: u32, clsid: *const ::windows_core::GUID, cbcookie: u32, pcookie: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateItems(::core::mem::transmute_copy(&dwinvokeflags), ::core::mem::transmute_copy(&clsid), ::core::mem::transmute_copy(&cbcookie), ::core::mem::transmute_copy(&pcookie)).into()
}
unsafe extern "system" fn UpdateAll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrSynchronizeInvoke_Impl, const OFFSET: isize>(this: *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.UpdateAll().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
UpdateItems: UpdateItems::<Identity, Impl, OFFSET>,
UpdateAll: UpdateAll::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrSynchronizeInvoke as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISyncMgrUIOperation_Impl: Sized {
fn Run(&self, hwndowner: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISyncMgrUIOperation {}
#[cfg(feature = "Win32_Foundation")]
impl ISyncMgrUIOperation_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrUIOperation_Impl, const OFFSET: isize>() -> ISyncMgrUIOperation_Vtbl {
unsafe extern "system" fn Run<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISyncMgrUIOperation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndowner: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Run(::core::mem::transmute_copy(&hwndowner)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Run: Run::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISyncMgrUIOperation as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ITaskbarList_Impl: Sized {
fn HrInit(&self) -> ::windows_core::Result<()>;
fn AddTab(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn DeleteTab(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn ActivateTab(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn SetActiveAlt(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ITaskbarList {}
#[cfg(feature = "Win32_Foundation")]
impl ITaskbarList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList_Impl, const OFFSET: isize>() -> ITaskbarList_Vtbl {
unsafe extern "system" fn HrInit<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList_Impl, const OFFSET: isize>(this: *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.HrInit().into()
}
unsafe extern "system" fn AddTab<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddTab(::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn DeleteTab<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteTab(::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn ActivateTab<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ActivateTab(::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn SetActiveAlt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetActiveAlt(::core::mem::transmute_copy(&hwnd)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
HrInit: HrInit::<Identity, Impl, OFFSET>,
AddTab: AddTab::<Identity, Impl, OFFSET>,
DeleteTab: DeleteTab::<Identity, Impl, OFFSET>,
ActivateTab: ActivateTab::<Identity, Impl, OFFSET>,
SetActiveAlt: SetActiveAlt::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITaskbarList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ITaskbarList2_Impl: Sized + ITaskbarList_Impl {
fn MarkFullscreenWindow(&self, hwnd: super::super::Foundation::HWND, ffullscreen: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ITaskbarList2 {}
#[cfg(feature = "Win32_Foundation")]
impl ITaskbarList2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList2_Impl, const OFFSET: isize>() -> ITaskbarList2_Vtbl {
unsafe extern "system" fn MarkFullscreenWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, ffullscreen: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MarkFullscreenWindow(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&ffullscreen)).into()
}
Self { base__: ITaskbarList_Vtbl::new::<Identity, Impl, OFFSET>(), MarkFullscreenWindow: MarkFullscreenWindow::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITaskbarList2 as ::windows_core::ComInterface>::IID || iid == &<ITaskbarList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait ITaskbarList3_Impl: Sized + ITaskbarList2_Impl {
fn SetProgressValue(&self, hwnd: super::super::Foundation::HWND, ullcompleted: u64, ulltotal: u64) -> ::windows_core::Result<()>;
fn SetProgressState(&self, hwnd: super::super::Foundation::HWND, tbpflags: TBPFLAG) -> ::windows_core::Result<()>;
fn RegisterTab(&self, hwndtab: super::super::Foundation::HWND, hwndmdi: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn UnregisterTab(&self, hwndtab: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn SetTabOrder(&self, hwndtab: super::super::Foundation::HWND, hwndinsertbefore: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn SetTabActive(&self, hwndtab: super::super::Foundation::HWND, hwndmdi: super::super::Foundation::HWND, dwreserved: u32) -> ::windows_core::Result<()>;
fn ThumbBarAddButtons(&self, hwnd: super::super::Foundation::HWND, cbuttons: u32, pbutton: *const THUMBBUTTON) -> ::windows_core::Result<()>;
fn ThumbBarUpdateButtons(&self, hwnd: super::super::Foundation::HWND, cbuttons: u32, pbutton: *const THUMBBUTTON) -> ::windows_core::Result<()>;
fn ThumbBarSetImageList(&self, hwnd: super::super::Foundation::HWND, himl: super::Controls::HIMAGELIST) -> ::windows_core::Result<()>;
fn SetOverlayIcon(&self, hwnd: super::super::Foundation::HWND, hicon: super::WindowsAndMessaging::HICON, pszdescription: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetThumbnailTooltip(&self, hwnd: super::super::Foundation::HWND, psztip: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetThumbnailClip(&self, hwnd: super::super::Foundation::HWND, prcclip: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for ITaskbarList3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))]
impl ITaskbarList3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>() -> ITaskbarList3_Vtbl {
unsafe extern "system" fn SetProgressValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, ullcompleted: u64, ulltotal: u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProgressValue(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&ullcompleted), ::core::mem::transmute_copy(&ulltotal)).into()
}
unsafe extern "system" fn SetProgressState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, tbpflags: TBPFLAG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProgressState(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&tbpflags)).into()
}
unsafe extern "system" fn RegisterTab<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndtab: super::super::Foundation::HWND, hwndmdi: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterTab(::core::mem::transmute_copy(&hwndtab), ::core::mem::transmute_copy(&hwndmdi)).into()
}
unsafe extern "system" fn UnregisterTab<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndtab: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterTab(::core::mem::transmute_copy(&hwndtab)).into()
}
unsafe extern "system" fn SetTabOrder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndtab: super::super::Foundation::HWND, hwndinsertbefore: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTabOrder(::core::mem::transmute_copy(&hwndtab), ::core::mem::transmute_copy(&hwndinsertbefore)).into()
}
unsafe extern "system" fn SetTabActive<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndtab: super::super::Foundation::HWND, hwndmdi: super::super::Foundation::HWND, dwreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTabActive(::core::mem::transmute_copy(&hwndtab), ::core::mem::transmute_copy(&hwndmdi), ::core::mem::transmute_copy(&dwreserved)).into()
}
unsafe extern "system" fn ThumbBarAddButtons<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, cbuttons: u32, pbutton: *const THUMBBUTTON) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ThumbBarAddButtons(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&cbuttons), ::core::mem::transmute_copy(&pbutton)).into()
}
unsafe extern "system" fn ThumbBarUpdateButtons<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, cbuttons: u32, pbutton: *const THUMBBUTTON) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ThumbBarUpdateButtons(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&cbuttons), ::core::mem::transmute_copy(&pbutton)).into()
}
unsafe extern "system" fn ThumbBarSetImageList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, himl: super::Controls::HIMAGELIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ThumbBarSetImageList(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&himl)).into()
}
unsafe extern "system" fn SetOverlayIcon<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, hicon: super::WindowsAndMessaging::HICON, pszdescription: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOverlayIcon(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&hicon), ::core::mem::transmute(&pszdescription)).into()
}
unsafe extern "system" fn SetThumbnailTooltip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, psztip: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetThumbnailTooltip(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute(&psztip)).into()
}
unsafe extern "system" fn SetThumbnailClip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, prcclip: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetThumbnailClip(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&prcclip)).into()
}
Self {
base__: ITaskbarList2_Vtbl::new::<Identity, Impl, OFFSET>(),
SetProgressValue: SetProgressValue::<Identity, Impl, OFFSET>,
SetProgressState: SetProgressState::<Identity, Impl, OFFSET>,
RegisterTab: RegisterTab::<Identity, Impl, OFFSET>,
UnregisterTab: UnregisterTab::<Identity, Impl, OFFSET>,
SetTabOrder: SetTabOrder::<Identity, Impl, OFFSET>,
SetTabActive: SetTabActive::<Identity, Impl, OFFSET>,
ThumbBarAddButtons: ThumbBarAddButtons::<Identity, Impl, OFFSET>,
ThumbBarUpdateButtons: ThumbBarUpdateButtons::<Identity, Impl, OFFSET>,
ThumbBarSetImageList: ThumbBarSetImageList::<Identity, Impl, OFFSET>,
SetOverlayIcon: SetOverlayIcon::<Identity, Impl, OFFSET>,
SetThumbnailTooltip: SetThumbnailTooltip::<Identity, Impl, OFFSET>,
SetThumbnailClip: SetThumbnailClip::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITaskbarList3 as ::windows_core::ComInterface>::IID || iid == &<ITaskbarList as ::windows_core::ComInterface>::IID || iid == &<ITaskbarList2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait ITaskbarList4_Impl: Sized + ITaskbarList3_Impl {
fn SetTabProperties(&self, hwndtab: super::super::Foundation::HWND, stpflags: STPFLAG) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for ITaskbarList4 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))]
impl ITaskbarList4_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList4_Impl, const OFFSET: isize>() -> ITaskbarList4_Vtbl {
unsafe extern "system" fn SetTabProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITaskbarList4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndtab: super::super::Foundation::HWND, stpflags: STPFLAG) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTabProperties(::core::mem::transmute_copy(&hwndtab), ::core::mem::transmute_copy(&stpflags)).into()
}
Self { base__: ITaskbarList3_Vtbl::new::<Identity, Impl, OFFSET>(), SetTabProperties: SetTabProperties::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITaskbarList4 as ::windows_core::ComInterface>::IID || iid == &<ITaskbarList as ::windows_core::ComInterface>::IID || iid == &<ITaskbarList2 as ::windows_core::ComInterface>::IID || iid == &<ITaskbarList3 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IThumbnailCache_Impl: Sized {
fn GetThumbnail(&self, pshellitem: ::core::option::Option<&IShellItem>, cxyrequestedthumbsize: u32, flags: WTS_FLAGS, ppvthumb: *mut ::core::option::Option<ISharedBitmap>, poutflags: *mut WTS_CACHEFLAGS, pthumbnailid: *mut WTS_THUMBNAILID) -> ::windows_core::Result<()>;
fn GetThumbnailByID(&self, thumbnailid: &WTS_THUMBNAILID, cxyrequestedthumbsize: u32, ppvthumb: *mut ::core::option::Option<ISharedBitmap>, poutflags: *mut WTS_CACHEFLAGS) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IThumbnailCache {}
impl IThumbnailCache_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailCache_Impl, const OFFSET: isize>() -> IThumbnailCache_Vtbl {
unsafe extern "system" fn GetThumbnail<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailCache_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pshellitem: *mut ::core::ffi::c_void, cxyrequestedthumbsize: u32, flags: WTS_FLAGS, ppvthumb: *mut *mut ::core::ffi::c_void, poutflags: *mut WTS_CACHEFLAGS, pthumbnailid: *mut WTS_THUMBNAILID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetThumbnail(::windows_core::from_raw_borrowed(&pshellitem), ::core::mem::transmute_copy(&cxyrequestedthumbsize), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&ppvthumb), ::core::mem::transmute_copy(&poutflags), ::core::mem::transmute_copy(&pthumbnailid)).into()
}
unsafe extern "system" fn GetThumbnailByID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailCache_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, thumbnailid: WTS_THUMBNAILID, cxyrequestedthumbsize: u32, ppvthumb: *mut *mut ::core::ffi::c_void, poutflags: *mut WTS_CACHEFLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetThumbnailByID(::core::mem::transmute(&thumbnailid), ::core::mem::transmute_copy(&cxyrequestedthumbsize), ::core::mem::transmute_copy(&ppvthumb), ::core::mem::transmute_copy(&poutflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetThumbnail: GetThumbnail::<Identity, Impl, OFFSET>,
GetThumbnailByID: GetThumbnailByID::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IThumbnailCache as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IThumbnailCachePrimer_Impl: Sized {
fn PageInThumbnail(&self, psi: ::core::option::Option<&IShellItem>, wtsflags: WTS_FLAGS, cxyrequestedthumbsize: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IThumbnailCachePrimer {}
impl IThumbnailCachePrimer_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailCachePrimer_Impl, const OFFSET: isize>() -> IThumbnailCachePrimer_Vtbl {
unsafe extern "system" fn PageInThumbnail<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailCachePrimer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, wtsflags: WTS_FLAGS, cxyrequestedthumbsize: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PageInThumbnail(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&wtsflags), ::core::mem::transmute_copy(&cxyrequestedthumbsize)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), PageInThumbnail: PageInThumbnail::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IThumbnailCachePrimer as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IThumbnailCapture_Impl: Sized {
fn CaptureThumbnail(&self, pmaxsize: *const super::super::Foundation::SIZE, phtmldoc2: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<super::super::Graphics::Gdi::HBITMAP>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IThumbnailCapture {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IThumbnailCapture_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailCapture_Impl, const OFFSET: isize>() -> IThumbnailCapture_Vtbl {
unsafe extern "system" fn CaptureThumbnail<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailCapture_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmaxsize: *const super::super::Foundation::SIZE, phtmldoc2: *mut ::core::ffi::c_void, phbmthumbnail: *mut super::super::Graphics::Gdi::HBITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CaptureThumbnail(::core::mem::transmute_copy(&pmaxsize), ::windows_core::from_raw_borrowed(&phtmldoc2)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phbmthumbnail, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CaptureThumbnail: CaptureThumbnail::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IThumbnailCapture as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
pub trait IThumbnailHandlerFactory_Impl: Sized {
fn GetThumbnailHandler(&self, pidlchild: *const Common::ITEMIDLIST, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IThumbnailHandlerFactory {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl IThumbnailHandlerFactory_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailHandlerFactory_Impl, const OFFSET: isize>() -> IThumbnailHandlerFactory_Vtbl {
unsafe extern "system" fn GetThumbnailHandler<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailHandlerFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidlchild: *const Common::ITEMIDLIST, pbc: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppv: *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();
this.GetThumbnailHandler(::core::mem::transmute_copy(&pidlchild), ::windows_core::from_raw_borrowed(&pbc), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetThumbnailHandler: GetThumbnailHandler::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IThumbnailHandlerFactory as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_Gdi")]
pub trait IThumbnailProvider_Impl: Sized {
fn GetThumbnail(&self, cx: u32, phbmp: *mut super::super::Graphics::Gdi::HBITMAP, pdwalpha: *mut WTS_ALPHATYPE) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl ::windows_core::RuntimeName for IThumbnailProvider {}
#[cfg(feature = "Win32_Graphics_Gdi")]
impl IThumbnailProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailProvider_Impl, const OFFSET: isize>() -> IThumbnailProvider_Vtbl {
unsafe extern "system" fn GetThumbnail<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cx: u32, phbmp: *mut super::super::Graphics::Gdi::HBITMAP, pdwalpha: *mut WTS_ALPHATYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetThumbnail(::core::mem::transmute_copy(&cx), ::core::mem::transmute_copy(&phbmp), ::core::mem::transmute_copy(&pdwalpha)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetThumbnail: GetThumbnail::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IThumbnailProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IThumbnailSettings_Impl: Sized {
fn SetContext(&self, dwcontext: WTS_CONTEXTFLAGS) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IThumbnailSettings {}
impl IThumbnailSettings_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailSettings_Impl, const OFFSET: isize>() -> IThumbnailSettings_Vtbl {
unsafe extern "system" fn SetContext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailSettings_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcontext: WTS_CONTEXTFLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetContext(::core::mem::transmute_copy(&dwcontext)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetContext: SetContext::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IThumbnailSettings as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IThumbnailStreamCache_Impl: Sized {
fn GetThumbnailStream(&self, path: &::windows_core::PCWSTR, cacheid: u64, options: ThumbnailStreamCacheOptions, requestedthumbnailsize: u32, thumbnailsize: *mut super::super::Foundation::SIZE, thumbnailstream: *mut ::core::option::Option<super::super::System::Com::IStream>) -> ::windows_core::Result<()>;
fn SetThumbnailStream(&self, path: &::windows_core::PCWSTR, cacheid: u64, thumbnailsize: &super::super::Foundation::SIZE, thumbnailstream: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IThumbnailStreamCache {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IThumbnailStreamCache_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailStreamCache_Impl, const OFFSET: isize>() -> IThumbnailStreamCache_Vtbl {
unsafe extern "system" fn GetThumbnailStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailStreamCache_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, cacheid: u64, options: ThumbnailStreamCacheOptions, requestedthumbnailsize: u32, thumbnailsize: *mut super::super::Foundation::SIZE, thumbnailstream: *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();
this.GetThumbnailStream(::core::mem::transmute(&path), ::core::mem::transmute_copy(&cacheid), ::core::mem::transmute_copy(&options), ::core::mem::transmute_copy(&requestedthumbnailsize), ::core::mem::transmute_copy(&thumbnailsize), ::core::mem::transmute_copy(&thumbnailstream)).into()
}
unsafe extern "system" fn SetThumbnailStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IThumbnailStreamCache_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, cacheid: u64, thumbnailsize: super::super::Foundation::SIZE, thumbnailstream: *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.SetThumbnailStream(::core::mem::transmute(&path), ::core::mem::transmute_copy(&cacheid), ::core::mem::transmute(&thumbnailsize), ::windows_core::from_raw_borrowed(&thumbnailstream)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetThumbnailStream: GetThumbnailStream::<Identity, Impl, OFFSET>,
SetThumbnailStream: SetThumbnailStream::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IThumbnailStreamCache as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait ITrackShellMenu_Impl: Sized + IShellMenu_Impl {
fn SetObscured(&self, hwndtb: super::super::Foundation::HWND, punkband: ::core::option::Option<&::windows_core::IUnknown>, dwsmsetflags: u32) -> ::windows_core::Result<()>;
fn Popup(&self, hwnd: super::super::Foundation::HWND, ppt: *mut super::super::Foundation::POINTL, prcexclude: *mut super::super::Foundation::RECTL, dwflags: i32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for ITrackShellMenu {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ITrackShellMenu_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITrackShellMenu_Impl, const OFFSET: isize>() -> ITrackShellMenu_Vtbl {
unsafe extern "system" fn SetObscured<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITrackShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwndtb: super::super::Foundation::HWND, punkband: *mut ::core::ffi::c_void, dwsmsetflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetObscured(::core::mem::transmute_copy(&hwndtb), ::windows_core::from_raw_borrowed(&punkband), ::core::mem::transmute_copy(&dwsmsetflags)).into()
}
unsafe extern "system" fn Popup<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITrackShellMenu_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, ppt: *mut super::super::Foundation::POINTL, prcexclude: *mut super::super::Foundation::RECTL, dwflags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Popup(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&ppt), ::core::mem::transmute_copy(&prcexclude), ::core::mem::transmute_copy(&dwflags)).into()
}
Self {
base__: IShellMenu_Vtbl::new::<Identity, Impl, OFFSET>(),
SetObscured: SetObscured::<Identity, Impl, OFFSET>,
Popup: Popup::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITrackShellMenu as ::windows_core::ComInterface>::IID || iid == &<IShellMenu as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait ITranscodeImage_Impl: Sized {
fn TranscodeImage(&self, pshellitem: ::core::option::Option<&IShellItem>, uimaxwidth: u32, uimaxheight: u32, flags: u32, pvimage: ::core::option::Option<&super::super::System::Com::IStream>, puiwidth: *mut u32, puiheight: *mut u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for ITranscodeImage {}
#[cfg(feature = "Win32_System_Com")]
impl ITranscodeImage_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITranscodeImage_Impl, const OFFSET: isize>() -> ITranscodeImage_Vtbl {
unsafe extern "system" fn TranscodeImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITranscodeImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pshellitem: *mut ::core::ffi::c_void, uimaxwidth: u32, uimaxheight: u32, flags: u32, pvimage: *mut ::core::ffi::c_void, puiwidth: *mut u32, puiheight: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TranscodeImage(::windows_core::from_raw_borrowed(&pshellitem), ::core::mem::transmute_copy(&uimaxwidth), ::core::mem::transmute_copy(&uimaxheight), ::core::mem::transmute_copy(&flags), ::windows_core::from_raw_borrowed(&pvimage), ::core::mem::transmute_copy(&puiwidth), ::core::mem::transmute_copy(&puiheight)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), TranscodeImage: TranscodeImage::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITranscodeImage as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
pub trait ITransferAdviseSink_Impl: Sized {
fn UpdateProgress(&self, ullsizecurrent: u64, ullsizetotal: u64, nfilescurrent: i32, nfilestotal: i32, nfolderscurrent: i32, nfolderstotal: i32) -> ::windows_core::Result<()>;
fn UpdateTransferState(&self, ts: u32) -> ::windows_core::Result<()>;
fn ConfirmOverwrite(&self, psisource: ::core::option::Option<&IShellItem>, psidestparent: ::core::option::Option<&IShellItem>, pszname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn ConfirmEncryptionLoss(&self, psisource: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn FileFailure(&self, psi: ::core::option::Option<&IShellItem>, pszitem: &::windows_core::PCWSTR, hrerror: ::windows_core::HRESULT, pszrename: &::windows_core::PWSTR, cchrename: u32) -> ::windows_core::Result<()>;
fn SubStreamFailure(&self, psi: ::core::option::Option<&IShellItem>, pszstreamname: &::windows_core::PCWSTR, hrerror: ::windows_core::HRESULT) -> ::windows_core::Result<()>;
fn PropertyFailure(&self, psi: ::core::option::Option<&IShellItem>, pkey: *const PropertiesSystem::PROPERTYKEY, hrerror: ::windows_core::HRESULT) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl ::windows_core::RuntimeName for ITransferAdviseSink {}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl ITransferAdviseSink_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferAdviseSink_Impl, const OFFSET: isize>() -> ITransferAdviseSink_Vtbl {
unsafe extern "system" fn UpdateProgress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferAdviseSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ullsizecurrent: u64, ullsizetotal: u64, nfilescurrent: i32, nfilestotal: i32, nfolderscurrent: i32, nfolderstotal: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateProgress(::core::mem::transmute_copy(&ullsizecurrent), ::core::mem::transmute_copy(&ullsizetotal), ::core::mem::transmute_copy(&nfilescurrent), ::core::mem::transmute_copy(&nfilestotal), ::core::mem::transmute_copy(&nfolderscurrent), ::core::mem::transmute_copy(&nfolderstotal)).into()
}
unsafe extern "system" fn UpdateTransferState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferAdviseSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ts: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateTransferState(::core::mem::transmute_copy(&ts)).into()
}
unsafe extern "system" fn ConfirmOverwrite<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferAdviseSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psisource: *mut ::core::ffi::c_void, psidestparent: *mut ::core::ffi::c_void, pszname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConfirmOverwrite(::windows_core::from_raw_borrowed(&psisource), ::windows_core::from_raw_borrowed(&psidestparent), ::core::mem::transmute(&pszname)).into()
}
unsafe extern "system" fn ConfirmEncryptionLoss<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferAdviseSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psisource: *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.ConfirmEncryptionLoss(::windows_core::from_raw_borrowed(&psisource)).into()
}
unsafe extern "system" fn FileFailure<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferAdviseSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, pszitem: ::windows_core::PCWSTR, hrerror: ::windows_core::HRESULT, pszrename: ::windows_core::PWSTR, cchrename: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FileFailure(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute(&pszitem), ::core::mem::transmute_copy(&hrerror), ::core::mem::transmute(&pszrename), ::core::mem::transmute_copy(&cchrename)).into()
}
unsafe extern "system" fn SubStreamFailure<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferAdviseSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, pszstreamname: ::windows_core::PCWSTR, hrerror: ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SubStreamFailure(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute(&pszstreamname), ::core::mem::transmute_copy(&hrerror)).into()
}
unsafe extern "system" fn PropertyFailure<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferAdviseSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, pkey: *const PropertiesSystem::PROPERTYKEY, hrerror: ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PropertyFailure(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&pkey), ::core::mem::transmute_copy(&hrerror)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
UpdateProgress: UpdateProgress::<Identity, Impl, OFFSET>,
UpdateTransferState: UpdateTransferState::<Identity, Impl, OFFSET>,
ConfirmOverwrite: ConfirmOverwrite::<Identity, Impl, OFFSET>,
ConfirmEncryptionLoss: ConfirmEncryptionLoss::<Identity, Impl, OFFSET>,
FileFailure: FileFailure::<Identity, Impl, OFFSET>,
SubStreamFailure: SubStreamFailure::<Identity, Impl, OFFSET>,
PropertyFailure: PropertyFailure::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITransferAdviseSink as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ITransferDestination_Impl: Sized {
fn Advise(&self, psink: ::core::option::Option<&ITransferAdviseSink>) -> ::windows_core::Result<u32>;
fn Unadvise(&self, dwcookie: u32) -> ::windows_core::Result<()>;
fn CreateItem(&self, pszname: &::windows_core::PCWSTR, dwattributes: u32, ullsize: u64, flags: u32, riiditem: *const ::windows_core::GUID, ppvitem: *mut *mut ::core::ffi::c_void, riidresources: *const ::windows_core::GUID, ppvresources: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ITransferDestination {}
impl ITransferDestination_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferDestination_Impl, const OFFSET: isize>() -> ITransferDestination_Vtbl {
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferDestination_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psink: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Advise(::windows_core::from_raw_borrowed(&psink)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Unadvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferDestination_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Unadvise(::core::mem::transmute_copy(&dwcookie)).into()
}
unsafe extern "system" fn CreateItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferDestination_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszname: ::windows_core::PCWSTR, dwattributes: u32, ullsize: u64, flags: u32, riiditem: *const ::windows_core::GUID, ppvitem: *mut *mut ::core::ffi::c_void, riidresources: *const ::windows_core::GUID, ppvresources: *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();
this.CreateItem(::core::mem::transmute(&pszname), ::core::mem::transmute_copy(&dwattributes), ::core::mem::transmute_copy(&ullsize), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&riiditem), ::core::mem::transmute_copy(&ppvitem), ::core::mem::transmute_copy(&riidresources), ::core::mem::transmute_copy(&ppvresources)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Advise: Advise::<Identity, Impl, OFFSET>,
Unadvise: Unadvise::<Identity, Impl, OFFSET>,
CreateItem: CreateItem::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITransferDestination as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait ITransferMediumItem_Impl: Sized + IRelatedItem_Impl {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for ITransferMediumItem {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ITransferMediumItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferMediumItem_Impl, const OFFSET: isize>() -> ITransferMediumItem_Vtbl {
Self { base__: IRelatedItem_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITransferMediumItem as ::windows_core::ComInterface>::IID || iid == &<IRelatedItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_PropertiesSystem\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
pub trait ITransferSource_Impl: Sized {
fn Advise(&self, psink: ::core::option::Option<&ITransferAdviseSink>) -> ::windows_core::Result<u32>;
fn Unadvise(&self, dwcookie: u32) -> ::windows_core::Result<()>;
fn SetProperties(&self, pproparray: ::core::option::Option<&PropertiesSystem::IPropertyChangeArray>) -> ::windows_core::Result<()>;
fn OpenItem(&self, psi: ::core::option::Option<&IShellItem>, flags: u32, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn MoveItem(&self, psi: ::core::option::Option<&IShellItem>, psiparentdst: ::core::option::Option<&IShellItem>, psznamedst: &::windows_core::PCWSTR, flags: u32) -> ::windows_core::Result<IShellItem>;
fn RecycleItem(&self, psisource: ::core::option::Option<&IShellItem>, psiparentdest: ::core::option::Option<&IShellItem>, flags: u32) -> ::windows_core::Result<IShellItem>;
fn RemoveItem(&self, psisource: ::core::option::Option<&IShellItem>, flags: u32) -> ::windows_core::Result<()>;
fn RenameItem(&self, psisource: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR, flags: u32) -> ::windows_core::Result<IShellItem>;
fn LinkItem(&self, psisource: ::core::option::Option<&IShellItem>, psiparentdest: ::core::option::Option<&IShellItem>, psznewname: &::windows_core::PCWSTR, flags: u32) -> ::windows_core::Result<IShellItem>;
fn ApplyPropertiesToItem(&self, psisource: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<IShellItem>;
fn GetDefaultDestinationName(&self, psisource: ::core::option::Option<&IShellItem>, psiparentdest: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<::windows_core::PWSTR>;
fn EnterFolder(&self, psichildfolderdest: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
fn LeaveFolder(&self, psichildfolderdest: ::core::option::Option<&IShellItem>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl ::windows_core::RuntimeName for ITransferSource {}
#[cfg(feature = "Win32_UI_Shell_PropertiesSystem")]
impl ITransferSource_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>() -> ITransferSource_Vtbl {
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psink: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Advise(::windows_core::from_raw_borrowed(&psink)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwcookie, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Unadvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Unadvise(::core::mem::transmute_copy(&dwcookie)).into()
}
unsafe extern "system" fn SetProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pproparray: *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.SetProperties(::windows_core::from_raw_borrowed(&pproparray)).into()
}
unsafe extern "system" fn OpenItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, flags: u32, riid: *const ::windows_core::GUID, ppv: *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();
this.OpenItem(::windows_core::from_raw_borrowed(&psi), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppv)).into()
}
unsafe extern "system" fn MoveItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut ::core::ffi::c_void, psiparentdst: *mut ::core::ffi::c_void, psznamedst: ::windows_core::PCWSTR, flags: u32, ppsinew: *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.MoveItem(::windows_core::from_raw_borrowed(&psi), ::windows_core::from_raw_borrowed(&psiparentdst), ::core::mem::transmute(&psznamedst), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsinew, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RecycleItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psisource: *mut ::core::ffi::c_void, psiparentdest: *mut ::core::ffi::c_void, flags: u32, ppsinewdest: *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.RecycleItem(::windows_core::from_raw_borrowed(&psisource), ::windows_core::from_raw_borrowed(&psiparentdest), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsinewdest, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psisource: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveItem(::windows_core::from_raw_borrowed(&psisource), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn RenameItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psisource: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR, flags: u32, ppsinewdest: *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.RenameItem(::windows_core::from_raw_borrowed(&psisource), ::core::mem::transmute(&psznewname), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsinewdest, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn LinkItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psisource: *mut ::core::ffi::c_void, psiparentdest: *mut ::core::ffi::c_void, psznewname: ::windows_core::PCWSTR, flags: u32, ppsinewdest: *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.LinkItem(::windows_core::from_raw_borrowed(&psisource), ::windows_core::from_raw_borrowed(&psiparentdest), ::core::mem::transmute(&psznewname), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsinewdest, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ApplyPropertiesToItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psisource: *mut ::core::ffi::c_void, ppsinew: *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.ApplyPropertiesToItem(::windows_core::from_raw_borrowed(&psisource)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsinew, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDefaultDestinationName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psisource: *mut ::core::ffi::c_void, psiparentdest: *mut ::core::ffi::c_void, ppszdestinationname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDefaultDestinationName(::windows_core::from_raw_borrowed(&psisource), ::windows_core::from_raw_borrowed(&psiparentdest)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszdestinationname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnterFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psichildfolderdest: *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.EnterFolder(::windows_core::from_raw_borrowed(&psichildfolderdest)).into()
}
unsafe extern "system" fn LeaveFolder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITransferSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psichildfolderdest: *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.LeaveFolder(::windows_core::from_raw_borrowed(&psichildfolderdest)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Advise: Advise::<Identity, Impl, OFFSET>,
Unadvise: Unadvise::<Identity, Impl, OFFSET>,
SetProperties: SetProperties::<Identity, Impl, OFFSET>,
OpenItem: OpenItem::<Identity, Impl, OFFSET>,
MoveItem: MoveItem::<Identity, Impl, OFFSET>,
RecycleItem: RecycleItem::<Identity, Impl, OFFSET>,
RemoveItem: RemoveItem::<Identity, Impl, OFFSET>,
RenameItem: RenameItem::<Identity, Impl, OFFSET>,
LinkItem: LinkItem::<Identity, Impl, OFFSET>,
ApplyPropertiesToItem: ApplyPropertiesToItem::<Identity, Impl, OFFSET>,
GetDefaultDestinationName: GetDefaultDestinationName::<Identity, Impl, OFFSET>,
EnterFolder: EnterFolder::<Identity, Impl, OFFSET>,
LeaveFolder: LeaveFolder::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITransferSource as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
pub trait ITravelEntry_Impl: Sized {
fn Invoke(&self, punk: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn Update(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, fislocalanchor: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetPidl(&self) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for ITravelEntry {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))]
impl ITravelEntry_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelEntry_Impl, const OFFSET: isize>() -> ITravelEntry_Vtbl {
unsafe extern "system" fn Invoke<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelEntry_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *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.Invoke(::windows_core::from_raw_borrowed(&punk)).into()
}
unsafe extern "system" fn Update<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelEntry_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, fislocalanchor: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Update(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&fislocalanchor)).into()
}
unsafe extern "system" fn GetPidl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelEntry_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidl: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPidl() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Invoke: Invoke::<Identity, Impl, OFFSET>,
Update: Update::<Identity, Impl, OFFSET>,
GetPidl: GetPidl::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITravelEntry as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait ITravelLog_Impl: Sized {
fn AddEntry(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, fislocalanchor: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn UpdateEntry(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, fislocalanchor: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn UpdateExternal(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, punkhlbrowsecontext: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn Travel(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, ioffset: i32) -> ::windows_core::Result<()>;
fn GetTravelEntry(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, ioffset: i32, ppte: *mut ::core::option::Option<ITravelEntry>) -> ::windows_core::Result<()>;
fn FindTravelEntry(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, pidl: *const Common::ITEMIDLIST) -> ::windows_core::Result<ITravelEntry>;
fn GetToolTipText(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, ioffset: i32, idstemplate: i32, pwztext: ::windows_core::PWSTR, cchtext: u32) -> ::windows_core::Result<()>;
fn InsertMenuEntries(&self, punk: ::core::option::Option<&::windows_core::IUnknown>, hmenu: super::WindowsAndMessaging::HMENU, npos: i32, idfirst: i32, idlast: i32, dwflags: u32) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<ITravelLog>;
fn CountEntries(&self, punk: ::core::option::Option<&::windows_core::IUnknown>) -> u32;
fn Revert(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for ITravelLog {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_WindowsAndMessaging"))]
impl ITravelLog_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>() -> ITravelLog_Vtbl {
unsafe extern "system" fn AddEntry<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, fislocalanchor: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddEntry(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&fislocalanchor)).into()
}
unsafe extern "system" fn UpdateEntry<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, fislocalanchor: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateEntry(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&fislocalanchor)).into()
}
unsafe extern "system" fn UpdateExternal<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, punkhlbrowsecontext: *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.UpdateExternal(::windows_core::from_raw_borrowed(&punk), ::windows_core::from_raw_borrowed(&punkhlbrowsecontext)).into()
}
unsafe extern "system" fn Travel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, ioffset: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Travel(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&ioffset)).into()
}
unsafe extern "system" fn GetTravelEntry<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, ioffset: i32, ppte: *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();
this.GetTravelEntry(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&ioffset), ::core::mem::transmute_copy(&ppte)).into()
}
unsafe extern "system" fn FindTravelEntry<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, ppte: *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.FindTravelEntry(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&pidl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppte, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetToolTipText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, ioffset: i32, idstemplate: i32, pwztext: ::windows_core::PWSTR, cchtext: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetToolTipText(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&ioffset), ::core::mem::transmute_copy(&idstemplate), ::core::mem::transmute_copy(&pwztext), ::core::mem::transmute_copy(&cchtext)).into()
}
unsafe extern "system" fn InsertMenuEntries<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void, hmenu: super::WindowsAndMessaging::HMENU, npos: i32, idfirst: i32, idlast: i32, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InsertMenuEntries(::windows_core::from_raw_borrowed(&punk), ::core::mem::transmute_copy(&hmenu), ::core::mem::transmute_copy(&npos), ::core::mem::transmute_copy(&idfirst), ::core::mem::transmute_copy(&idlast), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pptl: *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.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pptl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CountEntries<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punk: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CountEntries(::windows_core::from_raw_borrowed(&punk))
}
unsafe extern "system" fn Revert<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLog_Impl, const OFFSET: isize>(this: *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.Revert().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AddEntry: AddEntry::<Identity, Impl, OFFSET>,
UpdateEntry: UpdateEntry::<Identity, Impl, OFFSET>,
UpdateExternal: UpdateExternal::<Identity, Impl, OFFSET>,
Travel: Travel::<Identity, Impl, OFFSET>,
GetTravelEntry: GetTravelEntry::<Identity, Impl, OFFSET>,
FindTravelEntry: FindTravelEntry::<Identity, Impl, OFFSET>,
GetToolTipText: GetToolTipText::<Identity, Impl, OFFSET>,
InsertMenuEntries: InsertMenuEntries::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
CountEntries: CountEntries::<Identity, Impl, OFFSET>,
Revert: Revert::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITravelLog as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
pub trait ITravelLogClient_Impl: Sized {
fn FindWindowByIndex(&self, dwid: u32) -> ::windows_core::Result<::windows_core::IUnknown>;
fn GetWindowData(&self, pstream: ::core::option::Option<&super::super::System::Com::IStream>, pwindata: *mut WINDOWDATA) -> ::windows_core::Result<()>;
fn LoadHistoryPosition(&self, pszurllocation: &::windows_core::PCWSTR, dwposition: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for ITravelLogClient {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl ITravelLogClient_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogClient_Impl, const OFFSET: isize>() -> ITravelLogClient_Vtbl {
unsafe extern "system" fn FindWindowByIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwid: u32, ppunk: *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.FindWindowByIndex(::core::mem::transmute_copy(&dwid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetWindowData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstream: *mut ::core::ffi::c_void, pwindata: *mut WINDOWDATA) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindowData(::windows_core::from_raw_borrowed(&pstream), ::core::mem::transmute_copy(&pwindata)).into()
}
unsafe extern "system" fn LoadHistoryPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszurllocation: ::windows_core::PCWSTR, dwposition: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LoadHistoryPosition(::core::mem::transmute(&pszurllocation), ::core::mem::transmute_copy(&dwposition)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FindWindowByIndex: FindWindowByIndex::<Identity, Impl, OFFSET>,
GetWindowData: GetWindowData::<Identity, Impl, OFFSET>,
LoadHistoryPosition: LoadHistoryPosition::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITravelLogClient as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ITravelLogEntry_Impl: Sized {
fn GetTitle(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn GetURL(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
impl ::windows_core::RuntimeName for ITravelLogEntry {}
impl ITravelLogEntry_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogEntry_Impl, const OFFSET: isize>() -> ITravelLogEntry_Vtbl {
unsafe extern "system" fn GetTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogEntry_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsztitle: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTitle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsztitle, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogEntry_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszurl: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetURL() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszurl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTitle: GetTitle::<Identity, Impl, OFFSET>,
GetURL: GetURL::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITravelLogEntry as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ITravelLogStg_Impl: Sized {
fn CreateEntry(&self, pszurl: &::windows_core::PCWSTR, psztitle: &::windows_core::PCWSTR, ptlerelativeto: ::core::option::Option<&ITravelLogEntry>, fprepend: super::super::Foundation::BOOL) -> ::windows_core::Result<ITravelLogEntry>;
fn TravelTo(&self, ptle: ::core::option::Option<&ITravelLogEntry>) -> ::windows_core::Result<()>;
fn EnumEntries(&self, flags: TLENUMF) -> ::windows_core::Result<IEnumTravelLogEntry>;
fn FindEntries(&self, flags: TLENUMF, pszurl: &::windows_core::PCWSTR) -> ::windows_core::Result<IEnumTravelLogEntry>;
fn GetCount(&self, flags: TLENUMF) -> ::windows_core::Result<u32>;
fn RemoveEntry(&self, ptle: ::core::option::Option<&ITravelLogEntry>) -> ::windows_core::Result<()>;
fn GetRelativeEntry(&self, ioffset: i32) -> ::windows_core::Result<ITravelLogEntry>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ITravelLogStg {}
#[cfg(feature = "Win32_Foundation")]
impl ITravelLogStg_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogStg_Impl, const OFFSET: isize>() -> ITravelLogStg_Vtbl {
unsafe extern "system" fn CreateEntry<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogStg_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszurl: ::windows_core::PCWSTR, psztitle: ::windows_core::PCWSTR, ptlerelativeto: *mut ::core::ffi::c_void, fprepend: super::super::Foundation::BOOL, pptle: *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.CreateEntry(::core::mem::transmute(&pszurl), ::core::mem::transmute(&psztitle), ::windows_core::from_raw_borrowed(&ptlerelativeto), ::core::mem::transmute_copy(&fprepend)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pptle, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TravelTo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogStg_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptle: *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.TravelTo(::windows_core::from_raw_borrowed(&ptle)).into()
}
unsafe extern "system" fn EnumEntries<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogStg_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: TLENUMF, ppenum: *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.EnumEntries(::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindEntries<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogStg_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: TLENUMF, pszurl: ::windows_core::PCWSTR, ppenum: *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.FindEntries(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&pszurl)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogStg_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: TLENUMF, pcentries: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCount(::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcentries, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveEntry<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogStg_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptle: *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.RemoveEntry(::windows_core::from_raw_borrowed(&ptle)).into()
}
unsafe extern "system" fn GetRelativeEntry<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITravelLogStg_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ioffset: i32, ptle: *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.GetRelativeEntry(::core::mem::transmute_copy(&ioffset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ptle, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CreateEntry: CreateEntry::<Identity, Impl, OFFSET>,
TravelTo: TravelTo::<Identity, Impl, OFFSET>,
EnumEntries: EnumEntries::<Identity, Impl, OFFSET>,
FindEntries: FindEntries::<Identity, Impl, OFFSET>,
GetCount: GetCount::<Identity, Impl, OFFSET>,
RemoveEntry: RemoveEntry::<Identity, Impl, OFFSET>,
GetRelativeEntry: GetRelativeEntry::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITravelLogStg as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait ITrayDeskBand_Impl: Sized {
fn ShowDeskBand(&self, clsid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn HideDeskBand(&self, clsid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn IsDeskBandShown(&self, clsid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn DeskBandRegistrationChanged(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ITrayDeskBand {}
impl ITrayDeskBand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITrayDeskBand_Impl, const OFFSET: isize>() -> ITrayDeskBand_Vtbl {
unsafe extern "system" fn ShowDeskBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITrayDeskBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowDeskBand(::core::mem::transmute_copy(&clsid)).into()
}
unsafe extern "system" fn HideDeskBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITrayDeskBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HideDeskBand(::core::mem::transmute_copy(&clsid)).into()
}
unsafe extern "system" fn IsDeskBandShown<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITrayDeskBand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsDeskBandShown(::core::mem::transmute_copy(&clsid)).into()
}
unsafe extern "system" fn DeskBandRegistrationChanged<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ITrayDeskBand_Impl, const OFFSET: isize>(this: *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.DeskBandRegistrationChanged().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ShowDeskBand: ShowDeskBand::<Identity, Impl, OFFSET>,
HideDeskBand: HideDeskBand::<Identity, Impl, OFFSET>,
IsDeskBandShown: IsDeskBandShown::<Identity, Impl, OFFSET>,
DeskBandRegistrationChanged: DeskBandRegistrationChanged::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ITrayDeskBand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IURLSearchHook_Impl: Sized {
fn Translate(&self, pwszsearchurl: ::windows_core::PWSTR, cchbuffersize: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IURLSearchHook {}
impl IURLSearchHook_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IURLSearchHook_Impl, const OFFSET: isize>() -> IURLSearchHook_Vtbl {
unsafe extern "system" fn Translate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IURLSearchHook_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwszsearchurl: ::windows_core::PWSTR, cchbuffersize: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Translate(::core::mem::transmute_copy(&pwszsearchurl), ::core::mem::transmute_copy(&cchbuffersize)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Translate: Translate::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IURLSearchHook as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IURLSearchHook2_Impl: Sized + IURLSearchHook_Impl {
fn TranslateWithSearchContext(&self, pwszsearchurl: ::windows_core::PWSTR, cchbuffersize: u32, psearchcontext: ::core::option::Option<&ISearchContext>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IURLSearchHook2 {}
impl IURLSearchHook2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IURLSearchHook2_Impl, const OFFSET: isize>() -> IURLSearchHook2_Vtbl {
unsafe extern "system" fn TranslateWithSearchContext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IURLSearchHook2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwszsearchurl: ::windows_core::PWSTR, cchbuffersize: u32, psearchcontext: *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.TranslateWithSearchContext(::core::mem::transmute_copy(&pwszsearchurl), ::core::mem::transmute_copy(&cchbuffersize), ::windows_core::from_raw_borrowed(&psearchcontext)).into()
}
Self { base__: IURLSearchHook_Vtbl::new::<Identity, Impl, OFFSET>(), TranslateWithSearchContext: TranslateWithSearchContext::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IURLSearchHook2 as ::windows_core::ComInterface>::IID || iid == &<IURLSearchHook as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IUniformResourceLocatorA_Impl: Sized {
fn SetURL(&self, pcszurl: &::windows_core::PCSTR, dwinflags: u32) -> ::windows_core::Result<()>;
fn GetURL(&self) -> ::windows_core::Result<::windows_core::PSTR>;
fn InvokeCommand(&self, purlici: *mut URLINVOKECOMMANDINFOA) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IUniformResourceLocatorA {}
#[cfg(feature = "Win32_Foundation")]
impl IUniformResourceLocatorA_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUniformResourceLocatorA_Impl, const OFFSET: isize>() -> IUniformResourceLocatorA_Vtbl {
unsafe extern "system" fn SetURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUniformResourceLocatorA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcszurl: ::windows_core::PCSTR, dwinflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetURL(::core::mem::transmute(&pcszurl), ::core::mem::transmute_copy(&dwinflags)).into()
}
unsafe extern "system" fn GetURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUniformResourceLocatorA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszurl: *mut ::windows_core::PSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetURL() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszurl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn InvokeCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUniformResourceLocatorA_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, purlici: *mut URLINVOKECOMMANDINFOA) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeCommand(::core::mem::transmute_copy(&purlici)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetURL: SetURL::<Identity, Impl, OFFSET>,
GetURL: GetURL::<Identity, Impl, OFFSET>,
InvokeCommand: InvokeCommand::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IUniformResourceLocatorA as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IUniformResourceLocatorW_Impl: Sized {
fn SetURL(&self, pcszurl: &::windows_core::PCWSTR, dwinflags: u32) -> ::windows_core::Result<()>;
fn GetURL(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn InvokeCommand(&self, purlici: *mut URLINVOKECOMMANDINFOW) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IUniformResourceLocatorW {}
#[cfg(feature = "Win32_Foundation")]
impl IUniformResourceLocatorW_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUniformResourceLocatorW_Impl, const OFFSET: isize>() -> IUniformResourceLocatorW_Vtbl {
unsafe extern "system" fn SetURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUniformResourceLocatorW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcszurl: ::windows_core::PCWSTR, dwinflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetURL(::core::mem::transmute(&pcszurl), ::core::mem::transmute_copy(&dwinflags)).into()
}
unsafe extern "system" fn GetURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUniformResourceLocatorW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszurl: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetURL() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszurl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn InvokeCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUniformResourceLocatorW_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, purlici: *mut URLINVOKECOMMANDINFOW) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeCommand(::core::mem::transmute_copy(&purlici)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetURL: SetURL::<Identity, Impl, OFFSET>,
GetURL: GetURL::<Identity, Impl, OFFSET>,
InvokeCommand: InvokeCommand::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IUniformResourceLocatorW as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
pub trait IUpdateIDList_Impl: Sized {
fn Update(&self, pbc: ::core::option::Option<&super::super::System::Com::IBindCtx>, pidlin: *const Common::ITEMIDLIST) -> ::windows_core::Result<*mut Common::ITEMIDLIST>;
}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl ::windows_core::RuntimeName for IUpdateIDList {}
#[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))]
impl IUpdateIDList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUpdateIDList_Impl, const OFFSET: isize>() -> IUpdateIDList_Vtbl {
unsafe extern "system" fn Update<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUpdateIDList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbc: *mut ::core::ffi::c_void, pidlin: *const Common::ITEMIDLIST, ppidlout: *mut *mut Common::ITEMIDLIST) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Update(::windows_core::from_raw_borrowed(&pbc), ::core::mem::transmute_copy(&pidlin)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppidlout, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Update: Update::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IUpdateIDList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IUseToBrowseItem_Impl: Sized + IRelatedItem_Impl {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IUseToBrowseItem {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IUseToBrowseItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUseToBrowseItem_Impl, const OFFSET: isize>() -> IUseToBrowseItem_Vtbl {
Self { base__: IRelatedItem_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IUseToBrowseItem as ::windows_core::ComInterface>::IID || iid == &<IRelatedItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"implement\"`*"]
pub trait IUserAccountChangeCallback_Impl: Sized {
fn OnPictureChange(&self, pszusername: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IUserAccountChangeCallback {}
impl IUserAccountChangeCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserAccountChangeCallback_Impl, const OFFSET: isize>() -> IUserAccountChangeCallback_Vtbl {
unsafe extern "system" fn OnPictureChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserAccountChangeCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszusername: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnPictureChange(::core::mem::transmute(&pszusername)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), OnPictureChange: OnPictureChange::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IUserAccountChangeCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
pub trait IUserNotification_Impl: Sized {
fn SetBalloonInfo(&self, psztitle: &::windows_core::PCWSTR, psztext: &::windows_core::PCWSTR, dwinfoflags: u32) -> ::windows_core::Result<()>;
fn SetBalloonRetry(&self, dwshowtime: u32, dwinterval: u32, cretrycount: u32) -> ::windows_core::Result<()>;
fn SetIconInfo(&self, hicon: super::WindowsAndMessaging::HICON, psztooltip: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn Show(&self, pqc: ::core::option::Option<&IQueryContinue>, dwcontinuepollinterval: u32) -> ::windows_core::Result<()>;
fn PlaySound(&self, pszsoundname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
impl ::windows_core::RuntimeName for IUserNotification {}
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
impl IUserNotification_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification_Impl, const OFFSET: isize>() -> IUserNotification_Vtbl {
unsafe extern "system" fn SetBalloonInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psztitle: ::windows_core::PCWSTR, psztext: ::windows_core::PCWSTR, dwinfoflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBalloonInfo(::core::mem::transmute(&psztitle), ::core::mem::transmute(&psztext), ::core::mem::transmute_copy(&dwinfoflags)).into()
}
unsafe extern "system" fn SetBalloonRetry<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwshowtime: u32, dwinterval: u32, cretrycount: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBalloonRetry(::core::mem::transmute_copy(&dwshowtime), ::core::mem::transmute_copy(&dwinterval), ::core::mem::transmute_copy(&cretrycount)).into()
}
unsafe extern "system" fn SetIconInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hicon: super::WindowsAndMessaging::HICON, psztooltip: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIconInfo(::core::mem::transmute_copy(&hicon), ::core::mem::transmute(&psztooltip)).into()
}
unsafe extern "system" fn Show<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pqc: *mut ::core::ffi::c_void, dwcontinuepollinterval: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Show(::windows_core::from_raw_borrowed(&pqc), ::core::mem::transmute_copy(&dwcontinuepollinterval)).into()
}
unsafe extern "system" fn PlaySound<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszsoundname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PlaySound(::core::mem::transmute(&pszsoundname)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetBalloonInfo: SetBalloonInfo::<Identity, Impl, OFFSET>,
SetBalloonRetry: SetBalloonRetry::<Identity, Impl, OFFSET>,
SetIconInfo: SetIconInfo::<Identity, Impl, OFFSET>,
Show: Show::<Identity, Impl, OFFSET>,
PlaySound: PlaySound::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IUserNotification as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
pub trait IUserNotification2_Impl: Sized {
fn SetBalloonInfo(&self, psztitle: &::windows_core::PCWSTR, psztext: &::windows_core::PCWSTR, dwinfoflags: u32) -> ::windows_core::Result<()>;
fn SetBalloonRetry(&self, dwshowtime: u32, dwinterval: u32, cretrycount: u32) -> ::windows_core::Result<()>;
fn SetIconInfo(&self, hicon: super::WindowsAndMessaging::HICON, psztooltip: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn Show(&self, pqc: ::core::option::Option<&IQueryContinue>, dwcontinuepollinterval: u32, psink: ::core::option::Option<&IUserNotificationCallback>) -> ::windows_core::Result<()>;
fn PlaySound(&self, pszsoundname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
impl ::windows_core::RuntimeName for IUserNotification2 {}
#[cfg(feature = "Win32_UI_WindowsAndMessaging")]
impl IUserNotification2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification2_Impl, const OFFSET: isize>() -> IUserNotification2_Vtbl {
unsafe extern "system" fn SetBalloonInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psztitle: ::windows_core::PCWSTR, psztext: ::windows_core::PCWSTR, dwinfoflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBalloonInfo(::core::mem::transmute(&psztitle), ::core::mem::transmute(&psztext), ::core::mem::transmute_copy(&dwinfoflags)).into()
}
unsafe extern "system" fn SetBalloonRetry<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwshowtime: u32, dwinterval: u32, cretrycount: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBalloonRetry(::core::mem::transmute_copy(&dwshowtime), ::core::mem::transmute_copy(&dwinterval), ::core::mem::transmute_copy(&cretrycount)).into()
}
unsafe extern "system" fn SetIconInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hicon: super::WindowsAndMessaging::HICON, psztooltip: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIconInfo(::core::mem::transmute_copy(&hicon), ::core::mem::transmute(&psztooltip)).into()
}
unsafe extern "system" fn Show<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pqc: *mut ::core::ffi::c_void, dwcontinuepollinterval: u32, psink: *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.Show(::windows_core::from_raw_borrowed(&pqc), ::core::mem::transmute_copy(&dwcontinuepollinterval), ::windows_core::from_raw_borrowed(&psink)).into()
}
unsafe extern "system" fn PlaySound<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotification2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszsoundname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PlaySound(::core::mem::transmute(&pszsoundname)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetBalloonInfo: SetBalloonInfo::<Identity, Impl, OFFSET>,
SetBalloonRetry: SetBalloonRetry::<Identity, Impl, OFFSET>,
SetIconInfo: SetIconInfo::<Identity, Impl, OFFSET>,
Show: Show::<Identity, Impl, OFFSET>,
PlaySound: PlaySound::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IUserNotification2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IUserNotificationCallback_Impl: Sized {
fn OnBalloonUserClick(&self, pt: *const super::super::Foundation::POINT) -> ::windows_core::Result<()>;
fn OnLeftClick(&self, pt: *const super::super::Foundation::POINT) -> ::windows_core::Result<()>;
fn OnContextMenu(&self, pt: *const super::super::Foundation::POINT) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IUserNotificationCallback {}
#[cfg(feature = "Win32_Foundation")]
impl IUserNotificationCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotificationCallback_Impl, const OFFSET: isize>() -> IUserNotificationCallback_Vtbl {
unsafe extern "system" fn OnBalloonUserClick<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotificationCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pt: *const super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnBalloonUserClick(::core::mem::transmute_copy(&pt)).into()
}
unsafe extern "system" fn OnLeftClick<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotificationCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pt: *const super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnLeftClick(::core::mem::transmute_copy(&pt)).into()
}
unsafe extern "system" fn OnContextMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IUserNotificationCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pt: *const super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnContextMenu(::core::mem::transmute_copy(&pt)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnBalloonUserClick: OnBalloonUserClick::<Identity, Impl, OFFSET>,
OnLeftClick: OnLeftClick::<Identity, Impl, OFFSET>,
OnContextMenu: OnContextMenu::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IUserNotificationCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Shell_Common")]
pub trait IViewStateIdentityItem_Impl: Sized + IRelatedItem_Impl {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl ::windows_core::RuntimeName for IViewStateIdentityItem {}
#[cfg(feature = "Win32_UI_Shell_Common")]
impl IViewStateIdentityItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IViewStateIdentityItem_Impl, const OFFSET: isize>() -> IViewStateIdentityItem_Vtbl {
Self { base__: IRelatedItem_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IViewStateIdentityItem as ::windows_core::ComInterface>::IID || iid == &<IRelatedItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IVirtualDesktopManager_Impl: Sized {
fn IsWindowOnCurrentVirtualDesktop(&self, toplevelwindow: super::super::Foundation::HWND) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn GetWindowDesktopId(&self, toplevelwindow: super::super::Foundation::HWND) -> ::windows_core::Result<::windows_core::GUID>;
fn MoveWindowToDesktop(&self, toplevelwindow: super::super::Foundation::HWND, desktopid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IVirtualDesktopManager {}
#[cfg(feature = "Win32_Foundation")]
impl IVirtualDesktopManager_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVirtualDesktopManager_Impl, const OFFSET: isize>() -> IVirtualDesktopManager_Vtbl {
unsafe extern "system" fn IsWindowOnCurrentVirtualDesktop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVirtualDesktopManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, toplevelwindow: super::super::Foundation::HWND, oncurrentdesktop: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsWindowOnCurrentVirtualDesktop(::core::mem::transmute_copy(&toplevelwindow)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(oncurrentdesktop, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetWindowDesktopId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVirtualDesktopManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, toplevelwindow: super::super::Foundation::HWND, desktopid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetWindowDesktopId(::core::mem::transmute_copy(&toplevelwindow)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(desktopid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn MoveWindowToDesktop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVirtualDesktopManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, toplevelwindow: super::super::Foundation::HWND, desktopid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MoveWindowToDesktop(::core::mem::transmute_copy(&toplevelwindow), ::core::mem::transmute_copy(&desktopid)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsWindowOnCurrentVirtualDesktop: IsWindowOnCurrentVirtualDesktop::<Identity, Impl, OFFSET>,
GetWindowDesktopId: GetWindowDesktopId::<Identity, Impl, OFFSET>,
MoveWindowToDesktop: MoveWindowToDesktop::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVirtualDesktopManager as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IVisualProperties_Impl: Sized {
fn SetWatermark(&self, hbmp: super::super::Graphics::Gdi::HBITMAP, vpwf: VPWATERMARKFLAGS) -> ::windows_core::Result<()>;
fn SetColor(&self, vpcf: VPCOLORFLAGS, cr: super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
fn GetColor(&self, vpcf: VPCOLORFLAGS) -> ::windows_core::Result<super::super::Foundation::COLORREF>;
fn SetItemHeight(&self, cyiteminpixels: i32) -> ::windows_core::Result<()>;
fn GetItemHeight(&self) -> ::windows_core::Result<i32>;
fn SetFont(&self, plf: *const super::super::Graphics::Gdi::LOGFONTW, bredraw: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetFont(&self, plf: *mut super::super::Graphics::Gdi::LOGFONTW) -> ::windows_core::Result<()>;
fn SetTheme(&self, pszsubappname: &::windows_core::PCWSTR, pszsubidlist: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IVisualProperties {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IVisualProperties_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVisualProperties_Impl, const OFFSET: isize>() -> IVisualProperties_Vtbl {
unsafe extern "system" fn SetWatermark<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVisualProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hbmp: super::super::Graphics::Gdi::HBITMAP, vpwf: VPWATERMARKFLAGS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWatermark(::core::mem::transmute_copy(&hbmp), ::core::mem::transmute_copy(&vpwf)).into()
}
unsafe extern "system" fn SetColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVisualProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vpcf: VPCOLORFLAGS, cr: super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetColor(::core::mem::transmute_copy(&vpcf), ::core::mem::transmute_copy(&cr)).into()
}
unsafe extern "system" fn GetColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVisualProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vpcf: VPCOLORFLAGS, pcr: *mut super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetColor(::core::mem::transmute_copy(&vpcf)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetItemHeight<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVisualProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cyiteminpixels: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetItemHeight(::core::mem::transmute_copy(&cyiteminpixels)).into()
}
unsafe extern "system" fn GetItemHeight<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVisualProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cyiteminpixels: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemHeight() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(cyiteminpixels, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFont<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVisualProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plf: *const super::super::Graphics::Gdi::LOGFONTW, bredraw: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFont(::core::mem::transmute_copy(&plf), ::core::mem::transmute_copy(&bredraw)).into()
}
unsafe extern "system" fn GetFont<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVisualProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plf: *mut super::super::Graphics::Gdi::LOGFONTW) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFont(::core::mem::transmute_copy(&plf)).into()
}
unsafe extern "system" fn SetTheme<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVisualProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszsubappname: ::windows_core::PCWSTR, pszsubidlist: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTheme(::core::mem::transmute(&pszsubappname), ::core::mem::transmute(&pszsubidlist)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetWatermark: SetWatermark::<Identity, Impl, OFFSET>,
SetColor: SetColor::<Identity, Impl, OFFSET>,
GetColor: GetColor::<Identity, Impl, OFFSET>,
SetItemHeight: SetItemHeight::<Identity, Impl, OFFSET>,
GetItemHeight: GetItemHeight::<Identity, Impl, OFFSET>,
SetFont: SetFont::<Identity, Impl, OFFSET>,
GetFont: GetFont::<Identity, Impl, OFFSET>,
SetTheme: SetTheme::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVisualProperties as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IWebBrowser_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn GoBack(&self) -> ::windows_core::Result<()>;
fn GoForward(&self) -> ::windows_core::Result<()>;
fn GoHome(&self) -> ::windows_core::Result<()>;
fn GoSearch(&self) -> ::windows_core::Result<()>;
fn Navigate(&self, url: &::windows_core::BSTR, flags: *const super::super::System::Variant::VARIANT, targetframename: *const super::super::System::Variant::VARIANT, postdata: *const super::super::System::Variant::VARIANT, headers: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn Refresh(&self) -> ::windows_core::Result<()>;
fn Refresh2(&self, level: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn Stop(&self) -> ::windows_core::Result<()>;
fn Application(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Parent(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Container(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Document(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn TopLevelContainer(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn Type(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Left(&self) -> ::windows_core::Result<i32>;
fn SetLeft(&self, left: i32) -> ::windows_core::Result<()>;
fn Top(&self) -> ::windows_core::Result<i32>;
fn SetTop(&self, top: i32) -> ::windows_core::Result<()>;
fn Width(&self) -> ::windows_core::Result<i32>;
fn SetWidth(&self, width: i32) -> ::windows_core::Result<()>;
fn Height(&self) -> ::windows_core::Result<i32>;
fn SetHeight(&self, height: i32) -> ::windows_core::Result<()>;
fn LocationName(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn LocationURL(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Busy(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IWebBrowser {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IWebBrowser_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>() -> IWebBrowser_Vtbl {
unsafe extern "system" fn GoBack<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *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.GoBack().into()
}
unsafe extern "system" fn GoForward<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *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.GoForward().into()
}
unsafe extern "system" fn GoHome<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *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.GoHome().into()
}
unsafe extern "system" fn GoSearch<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *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.GoSearch().into()
}
unsafe extern "system" fn Navigate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::std::mem::MaybeUninit<::windows_core::BSTR>, flags: *const super::super::System::Variant::VARIANT, targetframename: *const super::super::System::Variant::VARIANT, postdata: *const super::super::System::Variant::VARIANT, headers: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Navigate(::core::mem::transmute(&url), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&targetframename), ::core::mem::transmute_copy(&postdata), ::core::mem::transmute_copy(&headers)).into()
}
unsafe extern "system" fn Refresh<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *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.Refresh().into()
}
unsafe extern "system" fn Refresh2<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Refresh2(::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn Stop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *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.Stop().into()
}
unsafe extern "system" fn Application<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdisp: *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.Application() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppdisp, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Parent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdisp: *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.Parent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppdisp, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Container<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdisp: *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.Container() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppdisp, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Document<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdisp: *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.Document() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppdisp, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TopLevelContainer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbool: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.TopLevelContainer() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbool, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Type<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Type() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Left<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pl: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Left() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLeft<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, left: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLeft(::core::mem::transmute_copy(&left)).into()
}
unsafe extern "system" fn Top<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pl: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Top() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, top: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTop(::core::mem::transmute_copy(&top)).into()
}
unsafe extern "system" fn Width<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pl: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Width() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetWidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, width: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWidth(::core::mem::transmute_copy(&width)).into()
}
unsafe extern "system" fn Height<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pl: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Height() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetHeight<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, height: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHeight(::core::mem::transmute_copy(&height)).into()
}
unsafe extern "system" fn LocationName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, locationname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.LocationName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(locationname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn LocationURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, locationurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.LocationURL() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(locationurl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Busy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbool: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Busy() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbool, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
GoBack: GoBack::<Identity, Impl, OFFSET>,
GoForward: GoForward::<Identity, Impl, OFFSET>,
GoHome: GoHome::<Identity, Impl, OFFSET>,
GoSearch: GoSearch::<Identity, Impl, OFFSET>,
Navigate: Navigate::<Identity, Impl, OFFSET>,
Refresh: Refresh::<Identity, Impl, OFFSET>,
Refresh2: Refresh2::<Identity, Impl, OFFSET>,
Stop: Stop::<Identity, Impl, OFFSET>,
Application: Application::<Identity, Impl, OFFSET>,
Parent: Parent::<Identity, Impl, OFFSET>,
Container: Container::<Identity, Impl, OFFSET>,
Document: Document::<Identity, Impl, OFFSET>,
TopLevelContainer: TopLevelContainer::<Identity, Impl, OFFSET>,
Type: Type::<Identity, Impl, OFFSET>,
Left: Left::<Identity, Impl, OFFSET>,
SetLeft: SetLeft::<Identity, Impl, OFFSET>,
Top: Top::<Identity, Impl, OFFSET>,
SetTop: SetTop::<Identity, Impl, OFFSET>,
Width: Width::<Identity, Impl, OFFSET>,
SetWidth: SetWidth::<Identity, Impl, OFFSET>,
Height: Height::<Identity, Impl, OFFSET>,
SetHeight: SetHeight::<Identity, Impl, OFFSET>,
LocationName: LocationName::<Identity, Impl, OFFSET>,
LocationURL: LocationURL::<Identity, Impl, OFFSET>,
Busy: Busy::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IWebBrowser as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IWebBrowser2_Impl: Sized + IWebBrowserApp_Impl {
fn Navigate2(&self, url: *const super::super::System::Variant::VARIANT, flags: *const super::super::System::Variant::VARIANT, targetframename: *const super::super::System::Variant::VARIANT, postdata: *const super::super::System::Variant::VARIANT, headers: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn QueryStatusWB(&self, cmdid: super::super::System::Ole::OLECMDID) -> ::windows_core::Result<super::super::System::Ole::OLECMDF>;
fn ExecWB(&self, cmdid: super::super::System::Ole::OLECMDID, cmdexecopt: super::super::System::Ole::OLECMDEXECOPT, pvain: *const super::super::System::Variant::VARIANT, pvaout: *mut super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn ShowBrowserBar(&self, pvaclsid: *const super::super::System::Variant::VARIANT, pvarshow: *const super::super::System::Variant::VARIANT, pvarsize: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn ReadyState(&self) -> ::windows_core::Result<super::super::System::Ole::READYSTATE>;
fn Offline(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetOffline(&self, boffline: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn Silent(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetSilent(&self, bsilent: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn RegisterAsBrowser(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetRegisterAsBrowser(&self, bregister: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn RegisterAsDropTarget(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetRegisterAsDropTarget(&self, bregister: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn TheaterMode(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetTheaterMode(&self, bregister: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn AddressBar(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetAddressBar(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn Resizable(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetResizable(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IWebBrowser2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IWebBrowser2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>() -> IWebBrowser2_Vtbl {
unsafe extern "system" fn Navigate2<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: *const super::super::System::Variant::VARIANT, flags: *const super::super::System::Variant::VARIANT, targetframename: *const super::super::System::Variant::VARIANT, postdata: *const super::super::System::Variant::VARIANT, headers: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Navigate2(::core::mem::transmute_copy(&url), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&targetframename), ::core::mem::transmute_copy(&postdata), ::core::mem::transmute_copy(&headers)).into()
}
unsafe extern "system" fn QueryStatusWB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cmdid: super::super::System::Ole::OLECMDID, pcmdf: *mut super::super::System::Ole::OLECMDF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryStatusWB(::core::mem::transmute_copy(&cmdid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcmdf, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ExecWB<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cmdid: super::super::System::Ole::OLECMDID, cmdexecopt: super::super::System::Ole::OLECMDEXECOPT, pvain: *const super::super::System::Variant::VARIANT, pvaout: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecWB(::core::mem::transmute_copy(&cmdid), ::core::mem::transmute_copy(&cmdexecopt), ::core::mem::transmute_copy(&pvain), ::core::mem::transmute_copy(&pvaout)).into()
}
unsafe extern "system" fn ShowBrowserBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvaclsid: *const super::super::System::Variant::VARIANT, pvarshow: *const super::super::System::Variant::VARIANT, pvarsize: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowBrowserBar(::core::mem::transmute_copy(&pvaclsid), ::core::mem::transmute_copy(&pvarshow), ::core::mem::transmute_copy(&pvarsize)).into()
}
unsafe extern "system" fn ReadyState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plreadystate: *mut super::super::System::Ole::READYSTATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ReadyState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plreadystate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Offline<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pboffline: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Offline() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pboffline, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOffline<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, boffline: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOffline(::core::mem::transmute_copy(&boffline)).into()
}
unsafe extern "system" fn Silent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbsilent: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Silent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbsilent, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSilent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bsilent: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSilent(::core::mem::transmute_copy(&bsilent)).into()
}
unsafe extern "system" fn RegisterAsBrowser<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbregister: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RegisterAsBrowser() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbregister, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRegisterAsBrowser<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bregister: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRegisterAsBrowser(::core::mem::transmute_copy(&bregister)).into()
}
unsafe extern "system" fn RegisterAsDropTarget<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbregister: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RegisterAsDropTarget() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbregister, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRegisterAsDropTarget<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bregister: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRegisterAsDropTarget(::core::mem::transmute_copy(&bregister)).into()
}
unsafe extern "system" fn TheaterMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbregister: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.TheaterMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbregister, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTheaterMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bregister: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTheaterMode(::core::mem::transmute_copy(&bregister)).into()
}
unsafe extern "system" fn AddressBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddressBar() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAddressBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAddressBar(::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn Resizable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Resizable() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetResizable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowser2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetResizable(::core::mem::transmute_copy(&value)).into()
}
Self {
base__: IWebBrowserApp_Vtbl::new::<Identity, Impl, OFFSET>(),
Navigate2: Navigate2::<Identity, Impl, OFFSET>,
QueryStatusWB: QueryStatusWB::<Identity, Impl, OFFSET>,
ExecWB: ExecWB::<Identity, Impl, OFFSET>,
ShowBrowserBar: ShowBrowserBar::<Identity, Impl, OFFSET>,
ReadyState: ReadyState::<Identity, Impl, OFFSET>,
Offline: Offline::<Identity, Impl, OFFSET>,
SetOffline: SetOffline::<Identity, Impl, OFFSET>,
Silent: Silent::<Identity, Impl, OFFSET>,
SetSilent: SetSilent::<Identity, Impl, OFFSET>,
RegisterAsBrowser: RegisterAsBrowser::<Identity, Impl, OFFSET>,
SetRegisterAsBrowser: SetRegisterAsBrowser::<Identity, Impl, OFFSET>,
RegisterAsDropTarget: RegisterAsDropTarget::<Identity, Impl, OFFSET>,
SetRegisterAsDropTarget: SetRegisterAsDropTarget::<Identity, Impl, OFFSET>,
TheaterMode: TheaterMode::<Identity, Impl, OFFSET>,
SetTheaterMode: SetTheaterMode::<Identity, Impl, OFFSET>,
AddressBar: AddressBar::<Identity, Impl, OFFSET>,
SetAddressBar: SetAddressBar::<Identity, Impl, OFFSET>,
Resizable: Resizable::<Identity, Impl, OFFSET>,
SetResizable: SetResizable::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IWebBrowser2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IWebBrowser as ::windows_core::ComInterface>::IID || iid == &<IWebBrowserApp as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IWebBrowserApp_Impl: Sized + IWebBrowser_Impl {
fn Quit(&self) -> ::windows_core::Result<()>;
fn ClientToWindow(&self, pcx: *mut i32, pcy: *mut i32) -> ::windows_core::Result<()>;
fn PutProperty(&self, property: &::windows_core::BSTR, vtvalue: &super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn GetProperty(&self, property: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn Name(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn HWND(&self) -> ::windows_core::Result<super::super::Foundation::SHANDLE_PTR>;
fn FullName(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Path(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Visible(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetVisible(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn StatusBar(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetStatusBar(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn StatusText(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetStatusText(&self, statustext: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn ToolBar(&self) -> ::windows_core::Result<i32>;
fn SetToolBar(&self, value: i32) -> ::windows_core::Result<()>;
fn MenuBar(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetMenuBar(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn FullScreen(&self) -> ::windows_core::Result<super::super::Foundation::VARIANT_BOOL>;
fn SetFullScreen(&self, bfullscreen: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IWebBrowserApp {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IWebBrowserApp_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>() -> IWebBrowserApp_Vtbl {
unsafe extern "system" fn Quit<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *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.Quit().into()
}
unsafe extern "system" fn ClientToWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcx: *mut i32, pcy: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ClientToWindow(::core::mem::transmute_copy(&pcx), ::core::mem::transmute_copy(&pcy)).into()
}
unsafe extern "system" fn PutProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, property: ::std::mem::MaybeUninit<::windows_core::BSTR>, vtvalue: super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutProperty(::core::mem::transmute(&property), ::core::mem::transmute(&vtvalue)).into()
}
unsafe extern "system" fn GetProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, property: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvtvalue: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProperty(::core::mem::transmute(&property)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvtvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Name<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Name() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(name, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn HWND<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phwnd: *mut super::super::Foundation::SHANDLE_PTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.HWND() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phwnd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FullName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fullname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FullName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(fullname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Path<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Path() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(path, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Visible<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbool: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Visible() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbool, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetVisible<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVisible(::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn StatusBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbool: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StatusBar() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbool, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetStatusBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStatusBar(::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn StatusText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, statustext: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StatusText() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(statustext, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetStatusText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, statustext: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStatusText(::core::mem::transmute(&statustext)).into()
}
unsafe extern "system" fn ToolBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ToolBar() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetToolBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetToolBar(::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn MenuBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.MenuBar() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMenuBar<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMenuBar(::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn FullScreen<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbfullscreen: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FullScreen() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbfullscreen, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFullScreen<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebBrowserApp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bfullscreen: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFullScreen(::core::mem::transmute_copy(&bfullscreen)).into()
}
Self {
base__: IWebBrowser_Vtbl::new::<Identity, Impl, OFFSET>(),
Quit: Quit::<Identity, Impl, OFFSET>,
ClientToWindow: ClientToWindow::<Identity, Impl, OFFSET>,
PutProperty: PutProperty::<Identity, Impl, OFFSET>,
GetProperty: GetProperty::<Identity, Impl, OFFSET>,
Name: Name::<Identity, Impl, OFFSET>,
HWND: HWND::<Identity, Impl, OFFSET>,
FullName: FullName::<Identity, Impl, OFFSET>,
Path: Path::<Identity, Impl, OFFSET>,
Visible: Visible::<Identity, Impl, OFFSET>,
SetVisible: SetVisible::<Identity, Impl, OFFSET>,
StatusBar: StatusBar::<Identity, Impl, OFFSET>,
SetStatusBar: SetStatusBar::<Identity, Impl, OFFSET>,
StatusText: StatusText::<Identity, Impl, OFFSET>,
SetStatusText: SetStatusText::<Identity, Impl, OFFSET>,
ToolBar: ToolBar::<Identity, Impl, OFFSET>,
SetToolBar: SetToolBar::<Identity, Impl, OFFSET>,
MenuBar: MenuBar::<Identity, Impl, OFFSET>,
SetMenuBar: SetMenuBar::<Identity, Impl, OFFSET>,
FullScreen: FullScreen::<Identity, Impl, OFFSET>,
SetFullScreen: SetFullScreen::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IWebBrowserApp as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IWebBrowser as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Controls\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Controls")]
pub trait IWebWizardExtension_Impl: Sized + IWizardExtension_Impl {
fn SetInitialURL(&self, pszurl: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn SetErrorURL(&self, pszerrorurl: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_UI_Controls")]
impl ::windows_core::RuntimeName for IWebWizardExtension {}
#[cfg(feature = "Win32_UI_Controls")]
impl IWebWizardExtension_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardExtension_Impl, const OFFSET: isize>() -> IWebWizardExtension_Vtbl {
unsafe extern "system" fn SetInitialURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardExtension_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszurl: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInitialURL(::core::mem::transmute(&pszurl)).into()
}
unsafe extern "system" fn SetErrorURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardExtension_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszerrorurl: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetErrorURL(::core::mem::transmute(&pszerrorurl)).into()
}
Self {
base__: IWizardExtension_Vtbl::new::<Identity, Impl, OFFSET>(),
SetInitialURL: SetInitialURL::<Identity, Impl, OFFSET>,
SetErrorURL: SetErrorURL::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IWebWizardExtension as ::windows_core::ComInterface>::IID || iid == &<IWizardExtension as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IWebWizardHost_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn FinalBack(&self) -> ::windows_core::Result<()>;
fn FinalNext(&self) -> ::windows_core::Result<()>;
fn Cancel(&self) -> ::windows_core::Result<()>;
fn SetCaption(&self, bstrcaption: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Caption(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn put_Property(&self, bstrpropertyname: &::windows_core::BSTR, pvproperty: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn get_Property(&self, bstrpropertyname: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn SetWizardButtons(&self, vfenableback: super::super::Foundation::VARIANT_BOOL, vfenablenext: super::super::Foundation::VARIANT_BOOL, vflastpage: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn SetHeaderText(&self, bstrheadertitle: &::windows_core::BSTR, bstrheadersubtitle: &::windows_core::BSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IWebWizardHost {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IWebWizardHost_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost_Impl, const OFFSET: isize>() -> IWebWizardHost_Vtbl {
unsafe extern "system" fn FinalBack<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost_Impl, const OFFSET: isize>(this: *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.FinalBack().into()
}
unsafe extern "system" fn FinalNext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost_Impl, const OFFSET: isize>(this: *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.FinalNext().into()
}
unsafe extern "system" fn Cancel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost_Impl, const OFFSET: isize>(this: *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.Cancel().into()
}
unsafe extern "system" fn SetCaption<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrcaption: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCaption(::core::mem::transmute(&bstrcaption)).into()
}
unsafe extern "system" fn Caption<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrcaption: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Caption() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrcaption, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn put_Property<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrpropertyname: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvproperty: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Property(::core::mem::transmute(&bstrpropertyname), ::core::mem::transmute_copy(&pvproperty)).into()
}
unsafe extern "system" fn get_Property<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrpropertyname: ::std::mem::MaybeUninit<::windows_core::BSTR>, pvproperty: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.get_Property(::core::mem::transmute(&bstrpropertyname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvproperty, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetWizardButtons<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vfenableback: super::super::Foundation::VARIANT_BOOL, vfenablenext: super::super::Foundation::VARIANT_BOOL, vflastpage: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWizardButtons(::core::mem::transmute_copy(&vfenableback), ::core::mem::transmute_copy(&vfenablenext), ::core::mem::transmute_copy(&vflastpage)).into()
}
unsafe extern "system" fn SetHeaderText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrheadertitle: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstrheadersubtitle: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHeaderText(::core::mem::transmute(&bstrheadertitle), ::core::mem::transmute(&bstrheadersubtitle)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
FinalBack: FinalBack::<Identity, Impl, OFFSET>,
FinalNext: FinalNext::<Identity, Impl, OFFSET>,
Cancel: Cancel::<Identity, Impl, OFFSET>,
SetCaption: SetCaption::<Identity, Impl, OFFSET>,
Caption: Caption::<Identity, Impl, OFFSET>,
put_Property: put_Property::<Identity, Impl, OFFSET>,
get_Property: get_Property::<Identity, Impl, OFFSET>,
SetWizardButtons: SetWizardButtons::<Identity, Impl, OFFSET>,
SetHeaderText: SetHeaderText::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IWebWizardHost as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IWebWizardHost2_Impl: Sized + IWebWizardHost_Impl {
fn SignString(&self, value: &::windows_core::BSTR) -> ::windows_core::Result<::windows_core::BSTR>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IWebWizardHost2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IWebWizardHost2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost2_Impl, const OFFSET: isize>() -> IWebWizardHost2_Vtbl {
unsafe extern "system" fn SignString<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWebWizardHost2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: ::std::mem::MaybeUninit<::windows_core::BSTR>, signedvalue: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SignString(::core::mem::transmute(&value)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(signedvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IWebWizardHost_Vtbl::new::<Identity, Impl, OFFSET>(), SignString: SignString::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IWebWizardHost2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IWebWizardHost as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Controls\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Controls")]
pub trait IWizardExtension_Impl: Sized {
fn AddPages(&self, apages: *mut super::Controls::HPROPSHEETPAGE, cpages: u32, pnpagesadded: *mut u32) -> ::windows_core::Result<()>;
fn GetFirstPage(&self) -> ::windows_core::Result<super::Controls::HPROPSHEETPAGE>;
fn GetLastPage(&self) -> ::windows_core::Result<super::Controls::HPROPSHEETPAGE>;
}
#[cfg(feature = "Win32_UI_Controls")]
impl ::windows_core::RuntimeName for IWizardExtension {}
#[cfg(feature = "Win32_UI_Controls")]
impl IWizardExtension_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWizardExtension_Impl, const OFFSET: isize>() -> IWizardExtension_Vtbl {
unsafe extern "system" fn AddPages<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWizardExtension_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, apages: *mut super::Controls::HPROPSHEETPAGE, cpages: u32, pnpagesadded: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddPages(::core::mem::transmute_copy(&apages), ::core::mem::transmute_copy(&cpages), ::core::mem::transmute_copy(&pnpagesadded)).into()
}
unsafe extern "system" fn GetFirstPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWizardExtension_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phpage: *mut super::Controls::HPROPSHEETPAGE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFirstPage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phpage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLastPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWizardExtension_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phpage: *mut super::Controls::HPROPSHEETPAGE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLastPage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phpage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AddPages: AddPages::<Identity, Impl, OFFSET>,
GetFirstPage: GetFirstPage::<Identity, Impl, OFFSET>,
GetLastPage: GetLastPage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IWizardExtension as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Controls\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_UI_Controls")]
pub trait IWizardSite_Impl: Sized {
fn GetPreviousPage(&self) -> ::windows_core::Result<super::Controls::HPROPSHEETPAGE>;
fn GetNextPage(&self) -> ::windows_core::Result<super::Controls::HPROPSHEETPAGE>;
fn GetCancelledPage(&self) -> ::windows_core::Result<super::Controls::HPROPSHEETPAGE>;
}
#[cfg(feature = "Win32_UI_Controls")]
impl ::windows_core::RuntimeName for IWizardSite {}
#[cfg(feature = "Win32_UI_Controls")]
impl IWizardSite_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWizardSite_Impl, const OFFSET: isize>() -> IWizardSite_Vtbl {
unsafe extern "system" fn GetPreviousPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWizardSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phpage: *mut super::Controls::HPROPSHEETPAGE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPreviousPage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phpage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWizardSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phpage: *mut super::Controls::HPROPSHEETPAGE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNextPage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phpage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCancelledPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWizardSite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phpage: *mut super::Controls::HPROPSHEETPAGE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCancelledPage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phpage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetPreviousPage: GetPreviousPage::<Identity, Impl, OFFSET>,
GetNextPage: GetNextPage::<Identity, Impl, OFFSET>,
GetCancelledPage: GetCancelledPage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IWizardSite as ::windows_core::ComInterface>::IID
}
}