blob: cedea1fa8cb6f27700809c98189a276d5e1fa174 [file] [log] [blame]
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_System_WinRT_Metadata\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_WinRT_Metadata")]
pub trait ICorProfilerAssemblyReferenceProvider_Impl: Sized {
fn AddAssemblyReference(&self, passemblyrefinfo: *const COR_PRF_ASSEMBLY_REFERENCE_INFO) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_System_WinRT_Metadata")]
impl ::windows::core::RuntimeName for ICorProfilerAssemblyReferenceProvider {}
#[cfg(feature = "Win32_System_WinRT_Metadata")]
impl ICorProfilerAssemblyReferenceProvider_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerAssemblyReferenceProvider_Impl, const OFFSET: isize>() -> ICorProfilerAssemblyReferenceProvider_Vtbl {
unsafe extern "system" fn AddAssemblyReference<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerAssemblyReferenceProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, passemblyrefinfo: *const COR_PRF_ASSEMBLY_REFERENCE_INFO) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddAssemblyReference(::core::mem::transmute_copy(&passemblyrefinfo)).into()
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), AddAssemblyReference: AddAssemblyReference::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerAssemblyReferenceProvider as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICorProfilerCallback_Impl: Sized {
fn Initialize(&self, picorprofilerinfounk: ::core::option::Option<&::windows::core::IUnknown>) -> ::windows::core::Result<()>;
fn Shutdown(&self) -> ::windows::core::Result<()>;
fn AppDomainCreationStarted(&self, appdomainid: usize) -> ::windows::core::Result<()>;
fn AppDomainCreationFinished(&self, appdomainid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
fn AppDomainShutdownStarted(&self, appdomainid: usize) -> ::windows::core::Result<()>;
fn AppDomainShutdownFinished(&self, appdomainid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
fn AssemblyLoadStarted(&self, assemblyid: usize) -> ::windows::core::Result<()>;
fn AssemblyLoadFinished(&self, assemblyid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
fn AssemblyUnloadStarted(&self, assemblyid: usize) -> ::windows::core::Result<()>;
fn AssemblyUnloadFinished(&self, assemblyid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
fn ModuleLoadStarted(&self, moduleid: usize) -> ::windows::core::Result<()>;
fn ModuleLoadFinished(&self, moduleid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
fn ModuleUnloadStarted(&self, moduleid: usize) -> ::windows::core::Result<()>;
fn ModuleUnloadFinished(&self, moduleid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
fn ModuleAttachedToAssembly(&self, moduleid: usize, assemblyid: usize) -> ::windows::core::Result<()>;
fn ClassLoadStarted(&self, classid: usize) -> ::windows::core::Result<()>;
fn ClassLoadFinished(&self, classid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
fn ClassUnloadStarted(&self, classid: usize) -> ::windows::core::Result<()>;
fn ClassUnloadFinished(&self, classid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
fn FunctionUnloadStarted(&self, functionid: usize) -> ::windows::core::Result<()>;
fn JITCompilationStarted(&self, functionid: usize, fissafetoblock: super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn JITCompilationFinished(&self, functionid: usize, hrstatus: ::windows::core::HRESULT, fissafetoblock: super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn JITCachedFunctionSearchStarted(&self, functionid: usize, pbusecachedfunction: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn JITCachedFunctionSearchFinished(&self, functionid: usize, result: COR_PRF_JIT_CACHE) -> ::windows::core::Result<()>;
fn JITFunctionPitched(&self, functionid: usize) -> ::windows::core::Result<()>;
fn JITInlining(&self, callerid: usize, calleeid: usize, pfshouldinline: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn ThreadCreated(&self, threadid: usize) -> ::windows::core::Result<()>;
fn ThreadDestroyed(&self, threadid: usize) -> ::windows::core::Result<()>;
fn ThreadAssignedToOSThread(&self, managedthreadid: usize, osthreadid: u32) -> ::windows::core::Result<()>;
fn RemotingClientInvocationStarted(&self) -> ::windows::core::Result<()>;
fn RemotingClientSendingMessage(&self, pcookie: *mut ::windows::core::GUID, fisasync: super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn RemotingClientReceivingReply(&self, pcookie: *mut ::windows::core::GUID, fisasync: super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn RemotingClientInvocationFinished(&self) -> ::windows::core::Result<()>;
fn RemotingServerReceivingMessage(&self, pcookie: *mut ::windows::core::GUID, fisasync: super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn RemotingServerInvocationStarted(&self) -> ::windows::core::Result<()>;
fn RemotingServerInvocationReturned(&self) -> ::windows::core::Result<()>;
fn RemotingServerSendingReply(&self, pcookie: *mut ::windows::core::GUID, fisasync: super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn UnmanagedToManagedTransition(&self, functionid: usize, reason: COR_PRF_TRANSITION_REASON) -> ::windows::core::Result<()>;
fn ManagedToUnmanagedTransition(&self, functionid: usize, reason: COR_PRF_TRANSITION_REASON) -> ::windows::core::Result<()>;
fn RuntimeSuspendStarted(&self, suspendreason: COR_PRF_SUSPEND_REASON) -> ::windows::core::Result<()>;
fn RuntimeSuspendFinished(&self) -> ::windows::core::Result<()>;
fn RuntimeSuspendAborted(&self) -> ::windows::core::Result<()>;
fn RuntimeResumeStarted(&self) -> ::windows::core::Result<()>;
fn RuntimeResumeFinished(&self) -> ::windows::core::Result<()>;
fn RuntimeThreadSuspended(&self, threadid: usize) -> ::windows::core::Result<()>;
fn RuntimeThreadResumed(&self, threadid: usize) -> ::windows::core::Result<()>;
fn MovedReferences(&self, cmovedobjectidranges: u32, oldobjectidrangestart: *mut usize, newobjectidrangestart: *mut usize, cobjectidrangelength: *mut u32) -> ::windows::core::Result<()>;
fn ObjectAllocated(&self, objectid: usize, classid: usize) -> ::windows::core::Result<()>;
fn ObjectsAllocatedByClass(&self, cclasscount: u32, classids: *mut usize, cobjects: *mut u32) -> ::windows::core::Result<()>;
fn ObjectReferences(&self, objectid: usize, classid: usize, cobjectrefs: u32, objectrefids: *mut usize) -> ::windows::core::Result<()>;
fn RootReferences(&self, crootrefs: u32, rootrefids: *mut usize) -> ::windows::core::Result<()>;
fn ExceptionThrown(&self, thrownobjectid: usize) -> ::windows::core::Result<()>;
fn ExceptionSearchFunctionEnter(&self, functionid: usize) -> ::windows::core::Result<()>;
fn ExceptionSearchFunctionLeave(&self) -> ::windows::core::Result<()>;
fn ExceptionSearchFilterEnter(&self, functionid: usize) -> ::windows::core::Result<()>;
fn ExceptionSearchFilterLeave(&self) -> ::windows::core::Result<()>;
fn ExceptionSearchCatcherFound(&self, functionid: usize) -> ::windows::core::Result<()>;
fn ExceptionOSHandlerEnter(&self, __unused: usize) -> ::windows::core::Result<()>;
fn ExceptionOSHandlerLeave(&self, __unused: usize) -> ::windows::core::Result<()>;
fn ExceptionUnwindFunctionEnter(&self, functionid: usize) -> ::windows::core::Result<()>;
fn ExceptionUnwindFunctionLeave(&self) -> ::windows::core::Result<()>;
fn ExceptionUnwindFinallyEnter(&self, functionid: usize) -> ::windows::core::Result<()>;
fn ExceptionUnwindFinallyLeave(&self) -> ::windows::core::Result<()>;
fn ExceptionCatcherEnter(&self, functionid: usize, objectid: usize) -> ::windows::core::Result<()>;
fn ExceptionCatcherLeave(&self) -> ::windows::core::Result<()>;
fn COMClassicVTableCreated(&self, wrappedclassid: usize, implementediid: *const ::windows::core::GUID, pvtable: *mut ::core::ffi::c_void, cslots: u32) -> ::windows::core::Result<()>;
fn COMClassicVTableDestroyed(&self, wrappedclassid: usize, implementediid: *const ::windows::core::GUID, pvtable: *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ExceptionCLRCatcherFound(&self) -> ::windows::core::Result<()>;
fn ExceptionCLRCatcherExecute(&self) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for ICorProfilerCallback {}
#[cfg(feature = "Win32_Foundation")]
impl ICorProfilerCallback_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>() -> ICorProfilerCallback_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, picorprofilerinfounk: *mut ::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(&picorprofilerinfounk)).into()
}
unsafe extern "system" fn Shutdown<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.Shutdown().into()
}
unsafe extern "system" fn AppDomainCreationStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appdomainid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppDomainCreationStarted(::core::mem::transmute_copy(&appdomainid)).into()
}
unsafe extern "system" fn AppDomainCreationFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appdomainid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppDomainCreationFinished(::core::mem::transmute_copy(&appdomainid), ::core::mem::transmute_copy(&hrstatus)).into()
}
unsafe extern "system" fn AppDomainShutdownStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appdomainid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppDomainShutdownStarted(::core::mem::transmute_copy(&appdomainid)).into()
}
unsafe extern "system" fn AppDomainShutdownFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appdomainid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppDomainShutdownFinished(::core::mem::transmute_copy(&appdomainid), ::core::mem::transmute_copy(&hrstatus)).into()
}
unsafe extern "system" fn AssemblyLoadStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, assemblyid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AssemblyLoadStarted(::core::mem::transmute_copy(&assemblyid)).into()
}
unsafe extern "system" fn AssemblyLoadFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, assemblyid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AssemblyLoadFinished(::core::mem::transmute_copy(&assemblyid), ::core::mem::transmute_copy(&hrstatus)).into()
}
unsafe extern "system" fn AssemblyUnloadStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, assemblyid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AssemblyUnloadStarted(::core::mem::transmute_copy(&assemblyid)).into()
}
unsafe extern "system" fn AssemblyUnloadFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, assemblyid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AssemblyUnloadFinished(::core::mem::transmute_copy(&assemblyid), ::core::mem::transmute_copy(&hrstatus)).into()
}
unsafe extern "system" fn ModuleLoadStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ModuleLoadStarted(::core::mem::transmute_copy(&moduleid)).into()
}
unsafe extern "system" fn ModuleLoadFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ModuleLoadFinished(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&hrstatus)).into()
}
unsafe extern "system" fn ModuleUnloadStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ModuleUnloadStarted(::core::mem::transmute_copy(&moduleid)).into()
}
unsafe extern "system" fn ModuleUnloadFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ModuleUnloadFinished(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&hrstatus)).into()
}
unsafe extern "system" fn ModuleAttachedToAssembly<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, assemblyid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ModuleAttachedToAssembly(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&assemblyid)).into()
}
unsafe extern "system" fn ClassLoadStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ClassLoadStarted(::core::mem::transmute_copy(&classid)).into()
}
unsafe extern "system" fn ClassLoadFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ClassLoadFinished(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&hrstatus)).into()
}
unsafe extern "system" fn ClassUnloadStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ClassUnloadStarted(::core::mem::transmute_copy(&classid)).into()
}
unsafe extern "system" fn ClassUnloadFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ClassUnloadFinished(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&hrstatus)).into()
}
unsafe extern "system" fn FunctionUnloadStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FunctionUnloadStarted(::core::mem::transmute_copy(&functionid)).into()
}
unsafe extern "system" fn JITCompilationStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, fissafetoblock: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.JITCompilationStarted(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&fissafetoblock)).into()
}
unsafe extern "system" fn JITCompilationFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, hrstatus: ::windows::core::HRESULT, fissafetoblock: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.JITCompilationFinished(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&hrstatus), ::core::mem::transmute_copy(&fissafetoblock)).into()
}
unsafe extern "system" fn JITCachedFunctionSearchStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, pbusecachedfunction: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.JITCachedFunctionSearchStarted(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&pbusecachedfunction)).into()
}
unsafe extern "system" fn JITCachedFunctionSearchFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, result: COR_PRF_JIT_CACHE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.JITCachedFunctionSearchFinished(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&result)).into()
}
unsafe extern "system" fn JITFunctionPitched<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.JITFunctionPitched(::core::mem::transmute_copy(&functionid)).into()
}
unsafe extern "system" fn JITInlining<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callerid: usize, calleeid: usize, pfshouldinline: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.JITInlining(::core::mem::transmute_copy(&callerid), ::core::mem::transmute_copy(&calleeid), ::core::mem::transmute_copy(&pfshouldinline)).into()
}
unsafe extern "system" fn ThreadCreated<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, threadid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ThreadCreated(::core::mem::transmute_copy(&threadid)).into()
}
unsafe extern "system" fn ThreadDestroyed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, threadid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ThreadDestroyed(::core::mem::transmute_copy(&threadid)).into()
}
unsafe extern "system" fn ThreadAssignedToOSThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, managedthreadid: usize, osthreadid: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ThreadAssignedToOSThread(::core::mem::transmute_copy(&managedthreadid), ::core::mem::transmute_copy(&osthreadid)).into()
}
unsafe extern "system" fn RemotingClientInvocationStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.RemotingClientInvocationStarted().into()
}
unsafe extern "system" fn RemotingClientSendingMessage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcookie: *mut ::windows::core::GUID, fisasync: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemotingClientSendingMessage(::core::mem::transmute_copy(&pcookie), ::core::mem::transmute_copy(&fisasync)).into()
}
unsafe extern "system" fn RemotingClientReceivingReply<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcookie: *mut ::windows::core::GUID, fisasync: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemotingClientReceivingReply(::core::mem::transmute_copy(&pcookie), ::core::mem::transmute_copy(&fisasync)).into()
}
unsafe extern "system" fn RemotingClientInvocationFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.RemotingClientInvocationFinished().into()
}
unsafe extern "system" fn RemotingServerReceivingMessage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcookie: *mut ::windows::core::GUID, fisasync: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemotingServerReceivingMessage(::core::mem::transmute_copy(&pcookie), ::core::mem::transmute_copy(&fisasync)).into()
}
unsafe extern "system" fn RemotingServerInvocationStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.RemotingServerInvocationStarted().into()
}
unsafe extern "system" fn RemotingServerInvocationReturned<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.RemotingServerInvocationReturned().into()
}
unsafe extern "system" fn RemotingServerSendingReply<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcookie: *mut ::windows::core::GUID, fisasync: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemotingServerSendingReply(::core::mem::transmute_copy(&pcookie), ::core::mem::transmute_copy(&fisasync)).into()
}
unsafe extern "system" fn UnmanagedToManagedTransition<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, reason: COR_PRF_TRANSITION_REASON) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnmanagedToManagedTransition(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&reason)).into()
}
unsafe extern "system" fn ManagedToUnmanagedTransition<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, reason: COR_PRF_TRANSITION_REASON) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ManagedToUnmanagedTransition(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&reason)).into()
}
unsafe extern "system" fn RuntimeSuspendStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, suspendreason: COR_PRF_SUSPEND_REASON) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RuntimeSuspendStarted(::core::mem::transmute_copy(&suspendreason)).into()
}
unsafe extern "system" fn RuntimeSuspendFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.RuntimeSuspendFinished().into()
}
unsafe extern "system" fn RuntimeSuspendAborted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.RuntimeSuspendAborted().into()
}
unsafe extern "system" fn RuntimeResumeStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.RuntimeResumeStarted().into()
}
unsafe extern "system" fn RuntimeResumeFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.RuntimeResumeFinished().into()
}
unsafe extern "system" fn RuntimeThreadSuspended<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, threadid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RuntimeThreadSuspended(::core::mem::transmute_copy(&threadid)).into()
}
unsafe extern "system" fn RuntimeThreadResumed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, threadid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RuntimeThreadResumed(::core::mem::transmute_copy(&threadid)).into()
}
unsafe extern "system" fn MovedReferences<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cmovedobjectidranges: u32, oldobjectidrangestart: *mut usize, newobjectidrangestart: *mut usize, cobjectidrangelength: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MovedReferences(::core::mem::transmute_copy(&cmovedobjectidranges), ::core::mem::transmute_copy(&oldobjectidrangestart), ::core::mem::transmute_copy(&newobjectidrangestart), ::core::mem::transmute_copy(&cobjectidrangelength)).into()
}
unsafe extern "system" fn ObjectAllocated<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, objectid: usize, classid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ObjectAllocated(::core::mem::transmute_copy(&objectid), ::core::mem::transmute_copy(&classid)).into()
}
unsafe extern "system" fn ObjectsAllocatedByClass<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cclasscount: u32, classids: *mut usize, cobjects: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ObjectsAllocatedByClass(::core::mem::transmute_copy(&cclasscount), ::core::mem::transmute_copy(&classids), ::core::mem::transmute_copy(&cobjects)).into()
}
unsafe extern "system" fn ObjectReferences<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, objectid: usize, classid: usize, cobjectrefs: u32, objectrefids: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ObjectReferences(::core::mem::transmute_copy(&objectid), ::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&cobjectrefs), ::core::mem::transmute_copy(&objectrefids)).into()
}
unsafe extern "system" fn RootReferences<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, crootrefs: u32, rootrefids: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RootReferences(::core::mem::transmute_copy(&crootrefs), ::core::mem::transmute_copy(&rootrefids)).into()
}
unsafe extern "system" fn ExceptionThrown<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, thrownobjectid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExceptionThrown(::core::mem::transmute_copy(&thrownobjectid)).into()
}
unsafe extern "system" fn ExceptionSearchFunctionEnter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExceptionSearchFunctionEnter(::core::mem::transmute_copy(&functionid)).into()
}
unsafe extern "system" fn ExceptionSearchFunctionLeave<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.ExceptionSearchFunctionLeave().into()
}
unsafe extern "system" fn ExceptionSearchFilterEnter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExceptionSearchFilterEnter(::core::mem::transmute_copy(&functionid)).into()
}
unsafe extern "system" fn ExceptionSearchFilterLeave<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.ExceptionSearchFilterLeave().into()
}
unsafe extern "system" fn ExceptionSearchCatcherFound<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExceptionSearchCatcherFound(::core::mem::transmute_copy(&functionid)).into()
}
unsafe extern "system" fn ExceptionOSHandlerEnter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, __unused: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExceptionOSHandlerEnter(::core::mem::transmute_copy(&__unused)).into()
}
unsafe extern "system" fn ExceptionOSHandlerLeave<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, __unused: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExceptionOSHandlerLeave(::core::mem::transmute_copy(&__unused)).into()
}
unsafe extern "system" fn ExceptionUnwindFunctionEnter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExceptionUnwindFunctionEnter(::core::mem::transmute_copy(&functionid)).into()
}
unsafe extern "system" fn ExceptionUnwindFunctionLeave<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.ExceptionUnwindFunctionLeave().into()
}
unsafe extern "system" fn ExceptionUnwindFinallyEnter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExceptionUnwindFinallyEnter(::core::mem::transmute_copy(&functionid)).into()
}
unsafe extern "system" fn ExceptionUnwindFinallyLeave<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.ExceptionUnwindFinallyLeave().into()
}
unsafe extern "system" fn ExceptionCatcherEnter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, objectid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExceptionCatcherEnter(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&objectid)).into()
}
unsafe extern "system" fn ExceptionCatcherLeave<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.ExceptionCatcherLeave().into()
}
unsafe extern "system" fn COMClassicVTableCreated<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wrappedclassid: usize, implementediid: *const ::windows::core::GUID, pvtable: *mut ::core::ffi::c_void, cslots: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.COMClassicVTableCreated(::core::mem::transmute_copy(&wrappedclassid), ::core::mem::transmute_copy(&implementediid), ::core::mem::transmute_copy(&pvtable), ::core::mem::transmute_copy(&cslots)).into()
}
unsafe extern "system" fn COMClassicVTableDestroyed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wrappedclassid: usize, implementediid: *const ::windows::core::GUID, pvtable: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.COMClassicVTableDestroyed(::core::mem::transmute_copy(&wrappedclassid), ::core::mem::transmute_copy(&implementediid), ::core::mem::transmute_copy(&pvtable)).into()
}
unsafe extern "system" fn ExceptionCLRCatcherFound<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.ExceptionCLRCatcherFound().into()
}
unsafe extern "system" fn ExceptionCLRCatcherExecute<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback_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.ExceptionCLRCatcherExecute().into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
Shutdown: Shutdown::<Identity, Impl, OFFSET>,
AppDomainCreationStarted: AppDomainCreationStarted::<Identity, Impl, OFFSET>,
AppDomainCreationFinished: AppDomainCreationFinished::<Identity, Impl, OFFSET>,
AppDomainShutdownStarted: AppDomainShutdownStarted::<Identity, Impl, OFFSET>,
AppDomainShutdownFinished: AppDomainShutdownFinished::<Identity, Impl, OFFSET>,
AssemblyLoadStarted: AssemblyLoadStarted::<Identity, Impl, OFFSET>,
AssemblyLoadFinished: AssemblyLoadFinished::<Identity, Impl, OFFSET>,
AssemblyUnloadStarted: AssemblyUnloadStarted::<Identity, Impl, OFFSET>,
AssemblyUnloadFinished: AssemblyUnloadFinished::<Identity, Impl, OFFSET>,
ModuleLoadStarted: ModuleLoadStarted::<Identity, Impl, OFFSET>,
ModuleLoadFinished: ModuleLoadFinished::<Identity, Impl, OFFSET>,
ModuleUnloadStarted: ModuleUnloadStarted::<Identity, Impl, OFFSET>,
ModuleUnloadFinished: ModuleUnloadFinished::<Identity, Impl, OFFSET>,
ModuleAttachedToAssembly: ModuleAttachedToAssembly::<Identity, Impl, OFFSET>,
ClassLoadStarted: ClassLoadStarted::<Identity, Impl, OFFSET>,
ClassLoadFinished: ClassLoadFinished::<Identity, Impl, OFFSET>,
ClassUnloadStarted: ClassUnloadStarted::<Identity, Impl, OFFSET>,
ClassUnloadFinished: ClassUnloadFinished::<Identity, Impl, OFFSET>,
FunctionUnloadStarted: FunctionUnloadStarted::<Identity, Impl, OFFSET>,
JITCompilationStarted: JITCompilationStarted::<Identity, Impl, OFFSET>,
JITCompilationFinished: JITCompilationFinished::<Identity, Impl, OFFSET>,
JITCachedFunctionSearchStarted: JITCachedFunctionSearchStarted::<Identity, Impl, OFFSET>,
JITCachedFunctionSearchFinished: JITCachedFunctionSearchFinished::<Identity, Impl, OFFSET>,
JITFunctionPitched: JITFunctionPitched::<Identity, Impl, OFFSET>,
JITInlining: JITInlining::<Identity, Impl, OFFSET>,
ThreadCreated: ThreadCreated::<Identity, Impl, OFFSET>,
ThreadDestroyed: ThreadDestroyed::<Identity, Impl, OFFSET>,
ThreadAssignedToOSThread: ThreadAssignedToOSThread::<Identity, Impl, OFFSET>,
RemotingClientInvocationStarted: RemotingClientInvocationStarted::<Identity, Impl, OFFSET>,
RemotingClientSendingMessage: RemotingClientSendingMessage::<Identity, Impl, OFFSET>,
RemotingClientReceivingReply: RemotingClientReceivingReply::<Identity, Impl, OFFSET>,
RemotingClientInvocationFinished: RemotingClientInvocationFinished::<Identity, Impl, OFFSET>,
RemotingServerReceivingMessage: RemotingServerReceivingMessage::<Identity, Impl, OFFSET>,
RemotingServerInvocationStarted: RemotingServerInvocationStarted::<Identity, Impl, OFFSET>,
RemotingServerInvocationReturned: RemotingServerInvocationReturned::<Identity, Impl, OFFSET>,
RemotingServerSendingReply: RemotingServerSendingReply::<Identity, Impl, OFFSET>,
UnmanagedToManagedTransition: UnmanagedToManagedTransition::<Identity, Impl, OFFSET>,
ManagedToUnmanagedTransition: ManagedToUnmanagedTransition::<Identity, Impl, OFFSET>,
RuntimeSuspendStarted: RuntimeSuspendStarted::<Identity, Impl, OFFSET>,
RuntimeSuspendFinished: RuntimeSuspendFinished::<Identity, Impl, OFFSET>,
RuntimeSuspendAborted: RuntimeSuspendAborted::<Identity, Impl, OFFSET>,
RuntimeResumeStarted: RuntimeResumeStarted::<Identity, Impl, OFFSET>,
RuntimeResumeFinished: RuntimeResumeFinished::<Identity, Impl, OFFSET>,
RuntimeThreadSuspended: RuntimeThreadSuspended::<Identity, Impl, OFFSET>,
RuntimeThreadResumed: RuntimeThreadResumed::<Identity, Impl, OFFSET>,
MovedReferences: MovedReferences::<Identity, Impl, OFFSET>,
ObjectAllocated: ObjectAllocated::<Identity, Impl, OFFSET>,
ObjectsAllocatedByClass: ObjectsAllocatedByClass::<Identity, Impl, OFFSET>,
ObjectReferences: ObjectReferences::<Identity, Impl, OFFSET>,
RootReferences: RootReferences::<Identity, Impl, OFFSET>,
ExceptionThrown: ExceptionThrown::<Identity, Impl, OFFSET>,
ExceptionSearchFunctionEnter: ExceptionSearchFunctionEnter::<Identity, Impl, OFFSET>,
ExceptionSearchFunctionLeave: ExceptionSearchFunctionLeave::<Identity, Impl, OFFSET>,
ExceptionSearchFilterEnter: ExceptionSearchFilterEnter::<Identity, Impl, OFFSET>,
ExceptionSearchFilterLeave: ExceptionSearchFilterLeave::<Identity, Impl, OFFSET>,
ExceptionSearchCatcherFound: ExceptionSearchCatcherFound::<Identity, Impl, OFFSET>,
ExceptionOSHandlerEnter: ExceptionOSHandlerEnter::<Identity, Impl, OFFSET>,
ExceptionOSHandlerLeave: ExceptionOSHandlerLeave::<Identity, Impl, OFFSET>,
ExceptionUnwindFunctionEnter: ExceptionUnwindFunctionEnter::<Identity, Impl, OFFSET>,
ExceptionUnwindFunctionLeave: ExceptionUnwindFunctionLeave::<Identity, Impl, OFFSET>,
ExceptionUnwindFinallyEnter: ExceptionUnwindFinallyEnter::<Identity, Impl, OFFSET>,
ExceptionUnwindFinallyLeave: ExceptionUnwindFinallyLeave::<Identity, Impl, OFFSET>,
ExceptionCatcherEnter: ExceptionCatcherEnter::<Identity, Impl, OFFSET>,
ExceptionCatcherLeave: ExceptionCatcherLeave::<Identity, Impl, OFFSET>,
COMClassicVTableCreated: COMClassicVTableCreated::<Identity, Impl, OFFSET>,
COMClassicVTableDestroyed: COMClassicVTableDestroyed::<Identity, Impl, OFFSET>,
ExceptionCLRCatcherFound: ExceptionCLRCatcherFound::<Identity, Impl, OFFSET>,
ExceptionCLRCatcherExecute: ExceptionCLRCatcherExecute::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerCallback as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICorProfilerCallback2_Impl: Sized + ICorProfilerCallback_Impl {
fn ThreadNameChanged(&self, threadid: usize, cchname: u32, name: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GarbageCollectionStarted(&self, cgenerations: i32, generationcollected: *mut super::super::super::Foundation::BOOL, reason: COR_PRF_GC_REASON) -> ::windows::core::Result<()>;
fn SurvivingReferences(&self, csurvivingobjectidranges: u32, objectidrangestart: *mut usize, cobjectidrangelength: *mut u32) -> ::windows::core::Result<()>;
fn GarbageCollectionFinished(&self) -> ::windows::core::Result<()>;
fn FinalizeableObjectQueued(&self, finalizerflags: u32, objectid: usize) -> ::windows::core::Result<()>;
fn RootReferences2(&self, crootrefs: u32, rootrefids: *mut usize, rootkinds: *mut COR_PRF_GC_ROOT_KIND, rootflags: *mut COR_PRF_GC_ROOT_FLAGS, rootids: *mut usize) -> ::windows::core::Result<()>;
fn HandleCreated(&self, handleid: usize, initialobjectid: usize) -> ::windows::core::Result<()>;
fn HandleDestroyed(&self, handleid: usize) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for ICorProfilerCallback2 {}
#[cfg(feature = "Win32_Foundation")]
impl ICorProfilerCallback2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback2_Impl, const OFFSET: isize>() -> ICorProfilerCallback2_Vtbl {
unsafe extern "system" fn ThreadNameChanged<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, threadid: usize, cchname: u32, name: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ThreadNameChanged(::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&cchname), ::core::mem::transmute(&name)).into()
}
unsafe extern "system" fn GarbageCollectionStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cgenerations: i32, generationcollected: *mut super::super::super::Foundation::BOOL, reason: COR_PRF_GC_REASON) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GarbageCollectionStarted(::core::mem::transmute_copy(&cgenerations), ::core::mem::transmute_copy(&generationcollected), ::core::mem::transmute_copy(&reason)).into()
}
unsafe extern "system" fn SurvivingReferences<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, csurvivingobjectidranges: u32, objectidrangestart: *mut usize, cobjectidrangelength: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SurvivingReferences(::core::mem::transmute_copy(&csurvivingobjectidranges), ::core::mem::transmute_copy(&objectidrangestart), ::core::mem::transmute_copy(&cobjectidrangelength)).into()
}
unsafe extern "system" fn GarbageCollectionFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback2_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.GarbageCollectionFinished().into()
}
unsafe extern "system" fn FinalizeableObjectQueued<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, finalizerflags: u32, objectid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FinalizeableObjectQueued(::core::mem::transmute_copy(&finalizerflags), ::core::mem::transmute_copy(&objectid)).into()
}
unsafe extern "system" fn RootReferences2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, crootrefs: u32, rootrefids: *mut usize, rootkinds: *mut COR_PRF_GC_ROOT_KIND, rootflags: *mut COR_PRF_GC_ROOT_FLAGS, rootids: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RootReferences2(::core::mem::transmute_copy(&crootrefs), ::core::mem::transmute_copy(&rootrefids), ::core::mem::transmute_copy(&rootkinds), ::core::mem::transmute_copy(&rootflags), ::core::mem::transmute_copy(&rootids)).into()
}
unsafe extern "system" fn HandleCreated<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handleid: usize, initialobjectid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HandleCreated(::core::mem::transmute_copy(&handleid), ::core::mem::transmute_copy(&initialobjectid)).into()
}
unsafe extern "system" fn HandleDestroyed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handleid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HandleDestroyed(::core::mem::transmute_copy(&handleid)).into()
}
Self {
base__: ICorProfilerCallback_Vtbl::new::<Identity, Impl, OFFSET>(),
ThreadNameChanged: ThreadNameChanged::<Identity, Impl, OFFSET>,
GarbageCollectionStarted: GarbageCollectionStarted::<Identity, Impl, OFFSET>,
SurvivingReferences: SurvivingReferences::<Identity, Impl, OFFSET>,
GarbageCollectionFinished: GarbageCollectionFinished::<Identity, Impl, OFFSET>,
FinalizeableObjectQueued: FinalizeableObjectQueued::<Identity, Impl, OFFSET>,
RootReferences2: RootReferences2::<Identity, Impl, OFFSET>,
HandleCreated: HandleCreated::<Identity, Impl, OFFSET>,
HandleDestroyed: HandleDestroyed::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerCallback2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICorProfilerCallback3_Impl: Sized + ICorProfilerCallback2_Impl {
fn InitializeForAttach(&self, pcorprofilerinfounk: ::core::option::Option<&::windows::core::IUnknown>, pvclientdata: *mut ::core::ffi::c_void, cbclientdata: u32) -> ::windows::core::Result<()>;
fn ProfilerAttachComplete(&self) -> ::windows::core::Result<()>;
fn ProfilerDetachSucceeded(&self) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for ICorProfilerCallback3 {}
#[cfg(feature = "Win32_Foundation")]
impl ICorProfilerCallback3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback3_Impl, const OFFSET: isize>() -> ICorProfilerCallback3_Vtbl {
unsafe extern "system" fn InitializeForAttach<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcorprofilerinfounk: *mut ::core::ffi::c_void, pvclientdata: *mut ::core::ffi::c_void, cbclientdata: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitializeForAttach(::windows::core::from_raw_borrowed(&pcorprofilerinfounk), ::core::mem::transmute_copy(&pvclientdata), ::core::mem::transmute_copy(&cbclientdata)).into()
}
unsafe extern "system" fn ProfilerAttachComplete<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback3_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.ProfilerAttachComplete().into()
}
unsafe extern "system" fn ProfilerDetachSucceeded<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback3_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.ProfilerDetachSucceeded().into()
}
Self {
base__: ICorProfilerCallback2_Vtbl::new::<Identity, Impl, OFFSET>(),
InitializeForAttach: InitializeForAttach::<Identity, Impl, OFFSET>,
ProfilerAttachComplete: ProfilerAttachComplete::<Identity, Impl, OFFSET>,
ProfilerDetachSucceeded: ProfilerDetachSucceeded::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerCallback3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICorProfilerCallback4_Impl: Sized + ICorProfilerCallback3_Impl {
fn ReJITCompilationStarted(&self, functionid: usize, rejitid: usize, fissafetoblock: super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn GetReJITParameters(&self, moduleid: usize, methodid: u32, pfunctioncontrol: ::core::option::Option<&ICorProfilerFunctionControl>) -> ::windows::core::Result<()>;
fn ReJITCompilationFinished(&self, functionid: usize, rejitid: usize, hrstatus: ::windows::core::HRESULT, fissafetoblock: super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn ReJITError(&self, moduleid: usize, methodid: u32, functionid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
fn MovedReferences2(&self, cmovedobjectidranges: u32, oldobjectidrangestart: *mut usize, newobjectidrangestart: *mut usize, cobjectidrangelength: *mut usize) -> ::windows::core::Result<()>;
fn SurvivingReferences2(&self, csurvivingobjectidranges: u32, objectidrangestart: *mut usize, cobjectidrangelength: *mut usize) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for ICorProfilerCallback4 {}
#[cfg(feature = "Win32_Foundation")]
impl ICorProfilerCallback4_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback4_Impl, const OFFSET: isize>() -> ICorProfilerCallback4_Vtbl {
unsafe extern "system" fn ReJITCompilationStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, rejitid: usize, fissafetoblock: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReJITCompilationStarted(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&rejitid), ::core::mem::transmute_copy(&fissafetoblock)).into()
}
unsafe extern "system" fn GetReJITParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, methodid: u32, pfunctioncontrol: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetReJITParameters(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&methodid), ::windows::core::from_raw_borrowed(&pfunctioncontrol)).into()
}
unsafe extern "system" fn ReJITCompilationFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, rejitid: usize, hrstatus: ::windows::core::HRESULT, fissafetoblock: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReJITCompilationFinished(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&rejitid), ::core::mem::transmute_copy(&hrstatus), ::core::mem::transmute_copy(&fissafetoblock)).into()
}
unsafe extern "system" fn ReJITError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, methodid: u32, functionid: usize, hrstatus: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReJITError(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&methodid), ::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&hrstatus)).into()
}
unsafe extern "system" fn MovedReferences2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cmovedobjectidranges: u32, oldobjectidrangestart: *mut usize, newobjectidrangestart: *mut usize, cobjectidrangelength: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MovedReferences2(::core::mem::transmute_copy(&cmovedobjectidranges), ::core::mem::transmute_copy(&oldobjectidrangestart), ::core::mem::transmute_copy(&newobjectidrangestart), ::core::mem::transmute_copy(&cobjectidrangelength)).into()
}
unsafe extern "system" fn SurvivingReferences2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, csurvivingobjectidranges: u32, objectidrangestart: *mut usize, cobjectidrangelength: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SurvivingReferences2(::core::mem::transmute_copy(&csurvivingobjectidranges), ::core::mem::transmute_copy(&objectidrangestart), ::core::mem::transmute_copy(&cobjectidrangelength)).into()
}
Self {
base__: ICorProfilerCallback3_Vtbl::new::<Identity, Impl, OFFSET>(),
ReJITCompilationStarted: ReJITCompilationStarted::<Identity, Impl, OFFSET>,
GetReJITParameters: GetReJITParameters::<Identity, Impl, OFFSET>,
ReJITCompilationFinished: ReJITCompilationFinished::<Identity, Impl, OFFSET>,
ReJITError: ReJITError::<Identity, Impl, OFFSET>,
MovedReferences2: MovedReferences2::<Identity, Impl, OFFSET>,
SurvivingReferences2: SurvivingReferences2::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerCallback4 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICorProfilerCallback5_Impl: Sized + ICorProfilerCallback4_Impl {
fn ConditionalWeakTableElementReferences(&self, crootrefs: u32, keyrefids: *mut usize, valuerefids: *mut usize, rootids: *mut usize) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for ICorProfilerCallback5 {}
#[cfg(feature = "Win32_Foundation")]
impl ICorProfilerCallback5_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback5_Impl, const OFFSET: isize>() -> ICorProfilerCallback5_Vtbl {
unsafe extern "system" fn ConditionalWeakTableElementReferences<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, crootrefs: u32, keyrefids: *mut usize, valuerefids: *mut usize, rootids: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConditionalWeakTableElementReferences(::core::mem::transmute_copy(&crootrefs), ::core::mem::transmute_copy(&keyrefids), ::core::mem::transmute_copy(&valuerefids), ::core::mem::transmute_copy(&rootids)).into()
}
Self {
base__: ICorProfilerCallback4_Vtbl::new::<Identity, Impl, OFFSET>(),
ConditionalWeakTableElementReferences: ConditionalWeakTableElementReferences::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerCallback5 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback4 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICorProfilerCallback6_Impl: Sized + ICorProfilerCallback5_Impl {
fn GetAssemblyReferences(&self, wszassemblypath: &::windows::core::PCWSTR, pasmrefprovider: ::core::option::Option<&ICorProfilerAssemblyReferenceProvider>) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for ICorProfilerCallback6 {}
#[cfg(feature = "Win32_Foundation")]
impl ICorProfilerCallback6_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback6_Impl, const OFFSET: isize>() -> ICorProfilerCallback6_Vtbl {
unsafe extern "system" fn GetAssemblyReferences<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wszassemblypath: ::windows::core::PCWSTR, pasmrefprovider: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAssemblyReferences(::core::mem::transmute(&wszassemblypath), ::windows::core::from_raw_borrowed(&pasmrefprovider)).into()
}
Self { base__: ICorProfilerCallback5_Vtbl::new::<Identity, Impl, OFFSET>(), GetAssemblyReferences: GetAssemblyReferences::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerCallback6 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback4 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback5 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICorProfilerCallback7_Impl: Sized + ICorProfilerCallback6_Impl {
fn ModuleInMemorySymbolsUpdated(&self, moduleid: usize) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for ICorProfilerCallback7 {}
#[cfg(feature = "Win32_Foundation")]
impl ICorProfilerCallback7_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback7_Impl, const OFFSET: isize>() -> ICorProfilerCallback7_Vtbl {
unsafe extern "system" fn ModuleInMemorySymbolsUpdated<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ModuleInMemorySymbolsUpdated(::core::mem::transmute_copy(&moduleid)).into()
}
Self {
base__: ICorProfilerCallback6_Vtbl::new::<Identity, Impl, OFFSET>(),
ModuleInMemorySymbolsUpdated: ModuleInMemorySymbolsUpdated::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerCallback7 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback4 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback5 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback6 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICorProfilerCallback8_Impl: Sized + ICorProfilerCallback7_Impl {
fn DynamicMethodJITCompilationStarted(&self, functionid: usize, fissafetoblock: super::super::super::Foundation::BOOL, pilheader: *mut u8, cbilheader: u32) -> ::windows::core::Result<()>;
fn DynamicMethodJITCompilationFinished(&self, functionid: usize, hrstatus: ::windows::core::HRESULT, fissafetoblock: super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for ICorProfilerCallback8 {}
#[cfg(feature = "Win32_Foundation")]
impl ICorProfilerCallback8_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback8_Impl, const OFFSET: isize>() -> ICorProfilerCallback8_Vtbl {
unsafe extern "system" fn DynamicMethodJITCompilationStarted<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, fissafetoblock: super::super::super::Foundation::BOOL, pilheader: *mut u8, cbilheader: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DynamicMethodJITCompilationStarted(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&fissafetoblock), ::core::mem::transmute_copy(&pilheader), ::core::mem::transmute_copy(&cbilheader)).into()
}
unsafe extern "system" fn DynamicMethodJITCompilationFinished<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, hrstatus: ::windows::core::HRESULT, fissafetoblock: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DynamicMethodJITCompilationFinished(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&hrstatus), ::core::mem::transmute_copy(&fissafetoblock)).into()
}
Self {
base__: ICorProfilerCallback7_Vtbl::new::<Identity, Impl, OFFSET>(),
DynamicMethodJITCompilationStarted: DynamicMethodJITCompilationStarted::<Identity, Impl, OFFSET>,
DynamicMethodJITCompilationFinished: DynamicMethodJITCompilationFinished::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerCallback8 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback4 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback5 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback6 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback7 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICorProfilerCallback9_Impl: Sized + ICorProfilerCallback8_Impl {
fn DynamicMethodUnloaded(&self, functionid: usize) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for ICorProfilerCallback9 {}
#[cfg(feature = "Win32_Foundation")]
impl ICorProfilerCallback9_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback9_Impl, const OFFSET: isize>() -> ICorProfilerCallback9_Vtbl {
unsafe extern "system" fn DynamicMethodUnloaded<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerCallback9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DynamicMethodUnloaded(::core::mem::transmute_copy(&functionid)).into()
}
Self { base__: ICorProfilerCallback8_Vtbl::new::<Identity, Impl, OFFSET>(), DynamicMethodUnloaded: DynamicMethodUnloaded::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerCallback9 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback4 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback5 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback6 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback7 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerCallback8 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ICorProfilerFunctionControl_Impl: Sized {
fn SetCodegenFlags(&self, flags: u32) -> ::windows::core::Result<()>;
fn SetILFunctionBody(&self, cbnewilmethodheader: u32, pbnewilmethodheader: *mut u8) -> ::windows::core::Result<()>;
fn SetILInstrumentedCodeMap(&self, cilmapentries: u32, rgilmapentries: *mut COR_IL_MAP) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for ICorProfilerFunctionControl {}
#[cfg(feature = "Win32_Foundation")]
impl ICorProfilerFunctionControl_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerFunctionControl_Impl, const OFFSET: isize>() -> ICorProfilerFunctionControl_Vtbl {
unsafe extern "system" fn SetCodegenFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerFunctionControl_Impl, const OFFSET: isize>(this: *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.SetCodegenFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetILFunctionBody<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerFunctionControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbnewilmethodheader: u32, pbnewilmethodheader: *mut u8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetILFunctionBody(::core::mem::transmute_copy(&cbnewilmethodheader), ::core::mem::transmute_copy(&pbnewilmethodheader)).into()
}
unsafe extern "system" fn SetILInstrumentedCodeMap<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerFunctionControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cilmapentries: u32, rgilmapentries: *mut COR_IL_MAP) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetILInstrumentedCodeMap(::core::mem::transmute_copy(&cilmapentries), ::core::mem::transmute_copy(&rgilmapentries)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetCodegenFlags: SetCodegenFlags::<Identity, Impl, OFFSET>,
SetILFunctionBody: SetILFunctionBody::<Identity, Impl, OFFSET>,
SetILInstrumentedCodeMap: SetILInstrumentedCodeMap::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerFunctionControl as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"implement\"`*"]
pub trait ICorProfilerFunctionEnum_Impl: Sized {
fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
fn Reset(&self) -> ::windows::core::Result<()>;
fn Clone(&self) -> ::windows::core::Result<ICorProfilerFunctionEnum>;
fn GetCount(&self, pcelt: *mut u32) -> ::windows::core::Result<()>;
fn Next(&self, celt: u32, ids: *mut COR_PRF_FUNCTION, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for ICorProfilerFunctionEnum {}
impl ICorProfilerFunctionEnum_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerFunctionEnum_Impl, const OFFSET: isize>() -> ICorProfilerFunctionEnum_Vtbl {
unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerFunctionEnum_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: ICorProfilerFunctionEnum_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: ICorProfilerFunctionEnum_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(),
}
}
unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerFunctionEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcelt: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCount(::core::mem::transmute_copy(&pcelt)).into()
}
unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerFunctionEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, ids: *mut COR_PRF_FUNCTION, 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(&ids), ::core::mem::transmute_copy(&pceltfetched)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
GetCount: GetCount::<Identity, Impl, OFFSET>,
Next: Next::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerFunctionEnum as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"Win32_System_WinRT_Metadata\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
pub trait ICorProfilerInfo_Impl: Sized {
fn GetClassFromObject(&self, objectid: usize, pclassid: *mut usize) -> ::windows::core::Result<()>;
fn GetClassFromToken(&self, moduleid: usize, typedef: u32, pclassid: *mut usize) -> ::windows::core::Result<()>;
fn GetCodeInfo(&self, functionid: usize, pstart: *mut *mut u8, pcsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventMask(&self, pdwevents: *mut u32) -> ::windows::core::Result<()>;
fn GetFunctionFromIP(&self, ip: *mut u8, pfunctionid: *mut usize) -> ::windows::core::Result<()>;
fn GetFunctionFromToken(&self, moduleid: usize, token: u32, pfunctionid: *mut usize) -> ::windows::core::Result<()>;
fn GetHandleFromThread(&self, threadid: usize, phthread: *mut super::super::super::Foundation::HANDLE) -> ::windows::core::Result<()>;
fn GetObjectSize(&self, objectid: usize, pcsize: *mut u32) -> ::windows::core::Result<()>;
fn IsArrayClass(&self, classid: usize, pbaseelemtype: *mut super::super::WinRT::Metadata::CorElementType, pbaseclassid: *mut usize, pcrank: *mut u32) -> ::windows::core::Result<()>;
fn GetThreadInfo(&self, threadid: usize, pdwwin32threadid: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentThreadID(&self, pthreadid: *mut usize) -> ::windows::core::Result<()>;
fn GetClassIDInfo(&self, classid: usize, pmoduleid: *mut usize, ptypedeftoken: *mut u32) -> ::windows::core::Result<()>;
fn GetFunctionInfo(&self, functionid: usize, pclassid: *mut usize, pmoduleid: *mut usize, ptoken: *mut u32) -> ::windows::core::Result<()>;
fn SetEventMask(&self, dwevents: u32) -> ::windows::core::Result<()>;
fn SetEnterLeaveFunctionHooks(&self, pfuncenter: *mut FunctionEnter, pfuncleave: *mut FunctionLeave, pfunctailcall: *mut FunctionTailcall) -> ::windows::core::Result<()>;
fn SetFunctionIDMapper(&self, pfunc: *mut FunctionIDMapper) -> ::windows::core::Result<()>;
fn GetTokenAndMetaDataFromFunction(&self, functionid: usize, riid: *const ::windows::core::GUID, ppimport: *mut ::core::option::Option<::windows::core::IUnknown>, ptoken: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleInfo(&self, moduleid: usize, ppbaseloadaddress: *mut *mut u8, cchname: u32, pcchname: *mut u32, szname: ::windows::core::PWSTR, passemblyid: *mut usize) -> ::windows::core::Result<()>;
fn GetModuleMetaData(&self, moduleid: usize, dwopenflags: u32, riid: *const ::windows::core::GUID) -> ::windows::core::Result<::windows::core::IUnknown>;
fn GetILFunctionBody(&self, moduleid: usize, methodid: u32, ppmethodheader: *mut *mut u8, pcbmethodsize: *mut u32) -> ::windows::core::Result<()>;
fn GetILFunctionBodyAllocator(&self, moduleid: usize) -> ::windows::core::Result<IMethodMalloc>;
fn SetILFunctionBody(&self, moduleid: usize, methodid: u32, pbnewilmethodheader: *mut u8) -> ::windows::core::Result<()>;
fn GetAppDomainInfo(&self, appdomainid: usize, cchname: u32, pcchname: *mut u32, szname: ::windows::core::PWSTR, pprocessid: *mut usize) -> ::windows::core::Result<()>;
fn GetAssemblyInfo(&self, assemblyid: usize, cchname: u32, pcchname: *mut u32, szname: ::windows::core::PWSTR, pappdomainid: *mut usize, pmoduleid: *mut usize) -> ::windows::core::Result<()>;
fn SetFunctionReJIT(&self, functionid: usize) -> ::windows::core::Result<()>;
fn ForceGC(&self) -> ::windows::core::Result<()>;
fn SetILInstrumentedCodeMap(&self, functionid: usize, fstartjit: super::super::super::Foundation::BOOL, cilmapentries: u32, rgilmapentries: *mut COR_IL_MAP) -> ::windows::core::Result<()>;
fn GetInprocInspectionInterface(&self) -> ::windows::core::Result<::windows::core::IUnknown>;
fn GetInprocInspectionIThisThread(&self) -> ::windows::core::Result<::windows::core::IUnknown>;
fn GetThreadContext(&self, threadid: usize, pcontextid: *mut usize) -> ::windows::core::Result<()>;
fn BeginInprocDebugging(&self, fthisthreadonly: super::super::super::Foundation::BOOL, pdwprofilercontext: *mut u32) -> ::windows::core::Result<()>;
fn EndInprocDebugging(&self, dwprofilercontext: u32) -> ::windows::core::Result<()>;
fn GetILToNativeMapping(&self, functionid: usize, cmap: u32, pcmap: *mut u32, map: *mut COR_DEBUG_IL_TO_NATIVE_MAP) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ::windows::core::RuntimeName for ICorProfilerInfo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ICorProfilerInfo_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>() -> ICorProfilerInfo_Vtbl {
unsafe extern "system" fn GetClassFromObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, objectid: usize, pclassid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetClassFromObject(::core::mem::transmute_copy(&objectid), ::core::mem::transmute_copy(&pclassid)).into()
}
unsafe extern "system" fn GetClassFromToken<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, typedef: u32, pclassid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetClassFromToken(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&typedef), ::core::mem::transmute_copy(&pclassid)).into()
}
unsafe extern "system" fn GetCodeInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, pstart: *mut *mut u8, pcsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCodeInfo(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&pstart), ::core::mem::transmute_copy(&pcsize)).into()
}
unsafe extern "system" fn GetEventMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwevents: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventMask(::core::mem::transmute_copy(&pdwevents)).into()
}
unsafe extern "system" fn GetFunctionFromIP<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ip: *mut u8, pfunctionid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionFromIP(::core::mem::transmute_copy(&ip), ::core::mem::transmute_copy(&pfunctionid)).into()
}
unsafe extern "system" fn GetFunctionFromToken<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, token: u32, pfunctionid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionFromToken(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&token), ::core::mem::transmute_copy(&pfunctionid)).into()
}
unsafe extern "system" fn GetHandleFromThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, threadid: usize, phthread: *mut super::super::super::Foundation::HANDLE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetHandleFromThread(::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&phthread)).into()
}
unsafe extern "system" fn GetObjectSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, objectid: usize, pcsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetObjectSize(::core::mem::transmute_copy(&objectid), ::core::mem::transmute_copy(&pcsize)).into()
}
unsafe extern "system" fn IsArrayClass<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, pbaseelemtype: *mut super::super::WinRT::Metadata::CorElementType, pbaseclassid: *mut usize, pcrank: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsArrayClass(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&pbaseelemtype), ::core::mem::transmute_copy(&pbaseclassid), ::core::mem::transmute_copy(&pcrank)).into()
}
unsafe extern "system" fn GetThreadInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, threadid: usize, pdwwin32threadid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetThreadInfo(::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&pdwwin32threadid)).into()
}
unsafe extern "system" fn GetCurrentThreadID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pthreadid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentThreadID(::core::mem::transmute_copy(&pthreadid)).into()
}
unsafe extern "system" fn GetClassIDInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, pmoduleid: *mut usize, ptypedeftoken: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetClassIDInfo(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&pmoduleid), ::core::mem::transmute_copy(&ptypedeftoken)).into()
}
unsafe extern "system" fn GetFunctionInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, pclassid: *mut usize, pmoduleid: *mut usize, ptoken: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionInfo(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&pclassid), ::core::mem::transmute_copy(&pmoduleid), ::core::mem::transmute_copy(&ptoken)).into()
}
unsafe extern "system" fn SetEventMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwevents: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventMask(::core::mem::transmute_copy(&dwevents)).into()
}
unsafe extern "system" fn SetEnterLeaveFunctionHooks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfuncenter: *mut FunctionEnter, pfuncleave: *mut FunctionLeave, pfunctailcall: *mut FunctionTailcall) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnterLeaveFunctionHooks(::core::mem::transmute_copy(&pfuncenter), ::core::mem::transmute_copy(&pfuncleave), ::core::mem::transmute_copy(&pfunctailcall)).into()
}
unsafe extern "system" fn SetFunctionIDMapper<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfunc: *mut FunctionIDMapper) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFunctionIDMapper(::core::mem::transmute_copy(&pfunc)).into()
}
unsafe extern "system" fn GetTokenAndMetaDataFromFunction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, riid: *const ::windows::core::GUID, ppimport: *mut *mut ::core::ffi::c_void, ptoken: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTokenAndMetaDataFromFunction(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppimport), ::core::mem::transmute_copy(&ptoken)).into()
}
unsafe extern "system" fn GetModuleInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, ppbaseloadaddress: *mut *mut u8, cchname: u32, pcchname: *mut u32, szname: ::windows::core::PWSTR, passemblyid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleInfo(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&ppbaseloadaddress), ::core::mem::transmute_copy(&cchname), ::core::mem::transmute_copy(&pcchname), ::core::mem::transmute_copy(&szname), ::core::mem::transmute_copy(&passemblyid)).into()
}
unsafe extern "system" fn GetModuleMetaData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, dwopenflags: u32, riid: *const ::windows::core::GUID, ppout: *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.GetModuleMetaData(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&dwopenflags), ::core::mem::transmute_copy(&riid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppout, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetILFunctionBody<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, methodid: u32, ppmethodheader: *mut *mut u8, pcbmethodsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetILFunctionBody(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&methodid), ::core::mem::transmute_copy(&ppmethodheader), ::core::mem::transmute_copy(&pcbmethodsize)).into()
}
unsafe extern "system" fn GetILFunctionBodyAllocator<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, ppmalloc: *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.GetILFunctionBodyAllocator(::core::mem::transmute_copy(&moduleid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmalloc, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetILFunctionBody<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, methodid: u32, pbnewilmethodheader: *mut u8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetILFunctionBody(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&methodid), ::core::mem::transmute_copy(&pbnewilmethodheader)).into()
}
unsafe extern "system" fn GetAppDomainInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appdomainid: usize, cchname: u32, pcchname: *mut u32, szname: ::windows::core::PWSTR, pprocessid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAppDomainInfo(::core::mem::transmute_copy(&appdomainid), ::core::mem::transmute_copy(&cchname), ::core::mem::transmute_copy(&pcchname), ::core::mem::transmute_copy(&szname), ::core::mem::transmute_copy(&pprocessid)).into()
}
unsafe extern "system" fn GetAssemblyInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, assemblyid: usize, cchname: u32, pcchname: *mut u32, szname: ::windows::core::PWSTR, pappdomainid: *mut usize, pmoduleid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAssemblyInfo(::core::mem::transmute_copy(&assemblyid), ::core::mem::transmute_copy(&cchname), ::core::mem::transmute_copy(&pcchname), ::core::mem::transmute_copy(&szname), ::core::mem::transmute_copy(&pappdomainid), ::core::mem::transmute_copy(&pmoduleid)).into()
}
unsafe extern "system" fn SetFunctionReJIT<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFunctionReJIT(::core::mem::transmute_copy(&functionid)).into()
}
unsafe extern "system" fn ForceGC<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_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.ForceGC().into()
}
unsafe extern "system" fn SetILInstrumentedCodeMap<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, fstartjit: super::super::super::Foundation::BOOL, cilmapentries: u32, rgilmapentries: *mut COR_IL_MAP) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetILInstrumentedCodeMap(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&fstartjit), ::core::mem::transmute_copy(&cilmapentries), ::core::mem::transmute_copy(&rgilmapentries)).into()
}
unsafe extern "system" fn GetInprocInspectionInterface<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppicd: *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.GetInprocInspectionInterface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppicd, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInprocInspectionIThisThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppicd: *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.GetInprocInspectionIThisThread() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppicd, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, threadid: usize, pcontextid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetThreadContext(::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&pcontextid)).into()
}
unsafe extern "system" fn BeginInprocDebugging<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fthisthreadonly: super::super::super::Foundation::BOOL, pdwprofilercontext: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BeginInprocDebugging(::core::mem::transmute_copy(&fthisthreadonly), ::core::mem::transmute_copy(&pdwprofilercontext)).into()
}
unsafe extern "system" fn EndInprocDebugging<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwprofilercontext: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndInprocDebugging(::core::mem::transmute_copy(&dwprofilercontext)).into()
}
unsafe extern "system" fn GetILToNativeMapping<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, cmap: u32, pcmap: *mut u32, map: *mut COR_DEBUG_IL_TO_NATIVE_MAP) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetILToNativeMapping(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&cmap), ::core::mem::transmute_copy(&pcmap), ::core::mem::transmute_copy(&map)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetClassFromObject: GetClassFromObject::<Identity, Impl, OFFSET>,
GetClassFromToken: GetClassFromToken::<Identity, Impl, OFFSET>,
GetCodeInfo: GetCodeInfo::<Identity, Impl, OFFSET>,
GetEventMask: GetEventMask::<Identity, Impl, OFFSET>,
GetFunctionFromIP: GetFunctionFromIP::<Identity, Impl, OFFSET>,
GetFunctionFromToken: GetFunctionFromToken::<Identity, Impl, OFFSET>,
GetHandleFromThread: GetHandleFromThread::<Identity, Impl, OFFSET>,
GetObjectSize: GetObjectSize::<Identity, Impl, OFFSET>,
IsArrayClass: IsArrayClass::<Identity, Impl, OFFSET>,
GetThreadInfo: GetThreadInfo::<Identity, Impl, OFFSET>,
GetCurrentThreadID: GetCurrentThreadID::<Identity, Impl, OFFSET>,
GetClassIDInfo: GetClassIDInfo::<Identity, Impl, OFFSET>,
GetFunctionInfo: GetFunctionInfo::<Identity, Impl, OFFSET>,
SetEventMask: SetEventMask::<Identity, Impl, OFFSET>,
SetEnterLeaveFunctionHooks: SetEnterLeaveFunctionHooks::<Identity, Impl, OFFSET>,
SetFunctionIDMapper: SetFunctionIDMapper::<Identity, Impl, OFFSET>,
GetTokenAndMetaDataFromFunction: GetTokenAndMetaDataFromFunction::<Identity, Impl, OFFSET>,
GetModuleInfo: GetModuleInfo::<Identity, Impl, OFFSET>,
GetModuleMetaData: GetModuleMetaData::<Identity, Impl, OFFSET>,
GetILFunctionBody: GetILFunctionBody::<Identity, Impl, OFFSET>,
GetILFunctionBodyAllocator: GetILFunctionBodyAllocator::<Identity, Impl, OFFSET>,
SetILFunctionBody: SetILFunctionBody::<Identity, Impl, OFFSET>,
GetAppDomainInfo: GetAppDomainInfo::<Identity, Impl, OFFSET>,
GetAssemblyInfo: GetAssemblyInfo::<Identity, Impl, OFFSET>,
SetFunctionReJIT: SetFunctionReJIT::<Identity, Impl, OFFSET>,
ForceGC: ForceGC::<Identity, Impl, OFFSET>,
SetILInstrumentedCodeMap: SetILInstrumentedCodeMap::<Identity, Impl, OFFSET>,
GetInprocInspectionInterface: GetInprocInspectionInterface::<Identity, Impl, OFFSET>,
GetInprocInspectionIThisThread: GetInprocInspectionIThisThread::<Identity, Impl, OFFSET>,
GetThreadContext: GetThreadContext::<Identity, Impl, OFFSET>,
BeginInprocDebugging: BeginInprocDebugging::<Identity, Impl, OFFSET>,
EndInprocDebugging: EndInprocDebugging::<Identity, Impl, OFFSET>,
GetILToNativeMapping: GetILToNativeMapping::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerInfo as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"Win32_System_WinRT_Metadata\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
pub trait ICorProfilerInfo2_Impl: Sized + ICorProfilerInfo_Impl {
fn DoStackSnapshot(&self, thread: usize, callback: *mut StackSnapshotCallback, infoflags: u32, clientdata: *mut ::core::ffi::c_void, context: *mut u8, contextsize: u32) -> ::windows::core::Result<()>;
fn SetEnterLeaveFunctionHooks2(&self, pfuncenter: *mut FunctionEnter2, pfuncleave: *mut FunctionLeave2, pfunctailcall: *mut FunctionTailcall2) -> ::windows::core::Result<()>;
fn GetFunctionInfo2(&self, funcid: usize, frameinfo: usize, pclassid: *mut usize, pmoduleid: *mut usize, ptoken: *mut u32, ctypeargs: u32, pctypeargs: *mut u32, typeargs: *mut usize) -> ::windows::core::Result<()>;
fn GetStringLayout(&self, pbufferlengthoffset: *mut u32, pstringlengthoffset: *mut u32, pbufferoffset: *mut u32) -> ::windows::core::Result<()>;
fn GetClassLayout(&self, classid: usize, rfieldoffset: *mut super::super::WinRT::Metadata::COR_FIELD_OFFSET, cfieldoffset: u32, pcfieldoffset: *mut u32, pulclasssize: *mut u32) -> ::windows::core::Result<()>;
fn GetClassIDInfo2(&self, classid: usize, pmoduleid: *mut usize, ptypedeftoken: *mut u32, pparentclassid: *mut usize, cnumtypeargs: u32, pcnumtypeargs: *mut u32, typeargs: *mut usize) -> ::windows::core::Result<()>;
fn GetCodeInfo2(&self, functionid: usize, ccodeinfos: u32, pccodeinfos: *mut u32, codeinfos: *mut COR_PRF_CODE_INFO) -> ::windows::core::Result<()>;
fn GetClassFromTokenAndTypeArgs(&self, moduleid: usize, typedef: u32, ctypeargs: u32, typeargs: *mut usize, pclassid: *mut usize) -> ::windows::core::Result<()>;
fn GetFunctionFromTokenAndTypeArgs(&self, moduleid: usize, funcdef: u32, classid: usize, ctypeargs: u32, typeargs: *mut usize, pfunctionid: *mut usize) -> ::windows::core::Result<()>;
fn EnumModuleFrozenObjects(&self, moduleid: usize) -> ::windows::core::Result<ICorProfilerObjectEnum>;
fn GetArrayObjectInfo(&self, objectid: usize, cdimensions: u32, pdimensionsizes: *mut u32, pdimensionlowerbounds: *mut i32, ppdata: *mut *mut u8) -> ::windows::core::Result<()>;
fn GetBoxClassLayout(&self, classid: usize, pbufferoffset: *mut u32) -> ::windows::core::Result<()>;
fn GetThreadAppDomain(&self, threadid: usize, pappdomainid: *mut usize) -> ::windows::core::Result<()>;
fn GetRVAStaticAddress(&self, classid: usize, fieldtoken: u32, ppaddress: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn GetAppDomainStaticAddress(&self, classid: usize, fieldtoken: u32, appdomainid: usize, ppaddress: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn GetThreadStaticAddress(&self, classid: usize, fieldtoken: u32, threadid: usize, ppaddress: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn GetContextStaticAddress(&self, classid: usize, fieldtoken: u32, contextid: usize, ppaddress: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn GetStaticFieldInfo(&self, classid: usize, fieldtoken: u32, pfieldinfo: *mut COR_PRF_STATIC_TYPE) -> ::windows::core::Result<()>;
fn GetGenerationBounds(&self, cobjectranges: u32, pcobjectranges: *mut u32, ranges: *mut COR_PRF_GC_GENERATION_RANGE) -> ::windows::core::Result<()>;
fn GetObjectGeneration(&self, objectid: usize, range: *mut COR_PRF_GC_GENERATION_RANGE) -> ::windows::core::Result<()>;
fn GetNotifiedExceptionClauseInfo(&self, pinfo: *mut COR_PRF_EX_CLAUSE_INFO) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ::windows::core::RuntimeName for ICorProfilerInfo2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ICorProfilerInfo2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>() -> ICorProfilerInfo2_Vtbl {
unsafe extern "system" fn DoStackSnapshot<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, thread: usize, callback: *mut StackSnapshotCallback, infoflags: u32, clientdata: *mut ::core::ffi::c_void, context: *mut u8, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DoStackSnapshot(::core::mem::transmute_copy(&thread), ::core::mem::transmute_copy(&callback), ::core::mem::transmute_copy(&infoflags), ::core::mem::transmute_copy(&clientdata), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn SetEnterLeaveFunctionHooks2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfuncenter: *mut FunctionEnter2, pfuncleave: *mut FunctionLeave2, pfunctailcall: *mut FunctionTailcall2) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnterLeaveFunctionHooks2(::core::mem::transmute_copy(&pfuncenter), ::core::mem::transmute_copy(&pfuncleave), ::core::mem::transmute_copy(&pfunctailcall)).into()
}
unsafe extern "system" fn GetFunctionInfo2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, funcid: usize, frameinfo: usize, pclassid: *mut usize, pmoduleid: *mut usize, ptoken: *mut u32, ctypeargs: u32, pctypeargs: *mut u32, typeargs: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionInfo2(::core::mem::transmute_copy(&funcid), ::core::mem::transmute_copy(&frameinfo), ::core::mem::transmute_copy(&pclassid), ::core::mem::transmute_copy(&pmoduleid), ::core::mem::transmute_copy(&ptoken), ::core::mem::transmute_copy(&ctypeargs), ::core::mem::transmute_copy(&pctypeargs), ::core::mem::transmute_copy(&typeargs)).into()
}
unsafe extern "system" fn GetStringLayout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbufferlengthoffset: *mut u32, pstringlengthoffset: *mut u32, pbufferoffset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStringLayout(::core::mem::transmute_copy(&pbufferlengthoffset), ::core::mem::transmute_copy(&pstringlengthoffset), ::core::mem::transmute_copy(&pbufferoffset)).into()
}
unsafe extern "system" fn GetClassLayout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, rfieldoffset: *mut super::super::WinRT::Metadata::COR_FIELD_OFFSET, cfieldoffset: u32, pcfieldoffset: *mut u32, pulclasssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetClassLayout(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&rfieldoffset), ::core::mem::transmute_copy(&cfieldoffset), ::core::mem::transmute_copy(&pcfieldoffset), ::core::mem::transmute_copy(&pulclasssize)).into()
}
unsafe extern "system" fn GetClassIDInfo2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, pmoduleid: *mut usize, ptypedeftoken: *mut u32, pparentclassid: *mut usize, cnumtypeargs: u32, pcnumtypeargs: *mut u32, typeargs: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetClassIDInfo2(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&pmoduleid), ::core::mem::transmute_copy(&ptypedeftoken), ::core::mem::transmute_copy(&pparentclassid), ::core::mem::transmute_copy(&cnumtypeargs), ::core::mem::transmute_copy(&pcnumtypeargs), ::core::mem::transmute_copy(&typeargs)).into()
}
unsafe extern "system" fn GetCodeInfo2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, ccodeinfos: u32, pccodeinfos: *mut u32, codeinfos: *mut COR_PRF_CODE_INFO) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCodeInfo2(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&ccodeinfos), ::core::mem::transmute_copy(&pccodeinfos), ::core::mem::transmute_copy(&codeinfos)).into()
}
unsafe extern "system" fn GetClassFromTokenAndTypeArgs<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, typedef: u32, ctypeargs: u32, typeargs: *mut usize, pclassid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetClassFromTokenAndTypeArgs(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&typedef), ::core::mem::transmute_copy(&ctypeargs), ::core::mem::transmute_copy(&typeargs), ::core::mem::transmute_copy(&pclassid)).into()
}
unsafe extern "system" fn GetFunctionFromTokenAndTypeArgs<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, funcdef: u32, classid: usize, ctypeargs: u32, typeargs: *mut usize, pfunctionid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionFromTokenAndTypeArgs(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&funcdef), ::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&ctypeargs), ::core::mem::transmute_copy(&typeargs), ::core::mem::transmute_copy(&pfunctionid)).into()
}
unsafe extern "system" fn EnumModuleFrozenObjects<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, 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.EnumModuleFrozenObjects(::core::mem::transmute_copy(&moduleid)) {
::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 GetArrayObjectInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, objectid: usize, cdimensions: u32, pdimensionsizes: *mut u32, pdimensionlowerbounds: *mut i32, ppdata: *mut *mut u8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetArrayObjectInfo(::core::mem::transmute_copy(&objectid), ::core::mem::transmute_copy(&cdimensions), ::core::mem::transmute_copy(&pdimensionsizes), ::core::mem::transmute_copy(&pdimensionlowerbounds), ::core::mem::transmute_copy(&ppdata)).into()
}
unsafe extern "system" fn GetBoxClassLayout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, pbufferoffset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBoxClassLayout(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&pbufferoffset)).into()
}
unsafe extern "system" fn GetThreadAppDomain<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, threadid: usize, pappdomainid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetThreadAppDomain(::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&pappdomainid)).into()
}
unsafe extern "system" fn GetRVAStaticAddress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, fieldtoken: u32, ppaddress: *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.GetRVAStaticAddress(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&fieldtoken), ::core::mem::transmute_copy(&ppaddress)).into()
}
unsafe extern "system" fn GetAppDomainStaticAddress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, fieldtoken: u32, appdomainid: usize, ppaddress: *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.GetAppDomainStaticAddress(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&fieldtoken), ::core::mem::transmute_copy(&appdomainid), ::core::mem::transmute_copy(&ppaddress)).into()
}
unsafe extern "system" fn GetThreadStaticAddress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, fieldtoken: u32, threadid: usize, ppaddress: *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.GetThreadStaticAddress(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&fieldtoken), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&ppaddress)).into()
}
unsafe extern "system" fn GetContextStaticAddress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, fieldtoken: u32, contextid: usize, ppaddress: *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.GetContextStaticAddress(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&fieldtoken), ::core::mem::transmute_copy(&contextid), ::core::mem::transmute_copy(&ppaddress)).into()
}
unsafe extern "system" fn GetStaticFieldInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, fieldtoken: u32, pfieldinfo: *mut COR_PRF_STATIC_TYPE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStaticFieldInfo(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&fieldtoken), ::core::mem::transmute_copy(&pfieldinfo)).into()
}
unsafe extern "system" fn GetGenerationBounds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cobjectranges: u32, pcobjectranges: *mut u32, ranges: *mut COR_PRF_GC_GENERATION_RANGE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetGenerationBounds(::core::mem::transmute_copy(&cobjectranges), ::core::mem::transmute_copy(&pcobjectranges), ::core::mem::transmute_copy(&ranges)).into()
}
unsafe extern "system" fn GetObjectGeneration<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, objectid: usize, range: *mut COR_PRF_GC_GENERATION_RANGE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetObjectGeneration(::core::mem::transmute_copy(&objectid), ::core::mem::transmute_copy(&range)).into()
}
unsafe extern "system" fn GetNotifiedExceptionClauseInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pinfo: *mut COR_PRF_EX_CLAUSE_INFO) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNotifiedExceptionClauseInfo(::core::mem::transmute_copy(&pinfo)).into()
}
Self {
base__: ICorProfilerInfo_Vtbl::new::<Identity, Impl, OFFSET>(),
DoStackSnapshot: DoStackSnapshot::<Identity, Impl, OFFSET>,
SetEnterLeaveFunctionHooks2: SetEnterLeaveFunctionHooks2::<Identity, Impl, OFFSET>,
GetFunctionInfo2: GetFunctionInfo2::<Identity, Impl, OFFSET>,
GetStringLayout: GetStringLayout::<Identity, Impl, OFFSET>,
GetClassLayout: GetClassLayout::<Identity, Impl, OFFSET>,
GetClassIDInfo2: GetClassIDInfo2::<Identity, Impl, OFFSET>,
GetCodeInfo2: GetCodeInfo2::<Identity, Impl, OFFSET>,
GetClassFromTokenAndTypeArgs: GetClassFromTokenAndTypeArgs::<Identity, Impl, OFFSET>,
GetFunctionFromTokenAndTypeArgs: GetFunctionFromTokenAndTypeArgs::<Identity, Impl, OFFSET>,
EnumModuleFrozenObjects: EnumModuleFrozenObjects::<Identity, Impl, OFFSET>,
GetArrayObjectInfo: GetArrayObjectInfo::<Identity, Impl, OFFSET>,
GetBoxClassLayout: GetBoxClassLayout::<Identity, Impl, OFFSET>,
GetThreadAppDomain: GetThreadAppDomain::<Identity, Impl, OFFSET>,
GetRVAStaticAddress: GetRVAStaticAddress::<Identity, Impl, OFFSET>,
GetAppDomainStaticAddress: GetAppDomainStaticAddress::<Identity, Impl, OFFSET>,
GetThreadStaticAddress: GetThreadStaticAddress::<Identity, Impl, OFFSET>,
GetContextStaticAddress: GetContextStaticAddress::<Identity, Impl, OFFSET>,
GetStaticFieldInfo: GetStaticFieldInfo::<Identity, Impl, OFFSET>,
GetGenerationBounds: GetGenerationBounds::<Identity, Impl, OFFSET>,
GetObjectGeneration: GetObjectGeneration::<Identity, Impl, OFFSET>,
GetNotifiedExceptionClauseInfo: GetNotifiedExceptionClauseInfo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerInfo2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"Win32_System_WinRT_Metadata\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
pub trait ICorProfilerInfo3_Impl: Sized + ICorProfilerInfo2_Impl {
fn EnumJITedFunctions(&self) -> ::windows::core::Result<ICorProfilerFunctionEnum>;
fn RequestProfilerDetach(&self, dwexpectedcompletionmilliseconds: u32) -> ::windows::core::Result<()>;
fn SetFunctionIDMapper2(&self, pfunc: *mut FunctionIDMapper2, clientdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn GetStringLayout2(&self, pstringlengthoffset: *mut u32, pbufferoffset: *mut u32) -> ::windows::core::Result<()>;
fn SetEnterLeaveFunctionHooks3(&self, pfuncenter3: *mut FunctionEnter3, pfuncleave3: *mut FunctionLeave3, pfunctailcall3: *mut FunctionTailcall3) -> ::windows::core::Result<()>;
fn SetEnterLeaveFunctionHooks3WithInfo(&self, pfuncenter3withinfo: *mut FunctionEnter3WithInfo, pfuncleave3withinfo: *mut FunctionLeave3WithInfo, pfunctailcall3withinfo: *mut FunctionTailcall3WithInfo) -> ::windows::core::Result<()>;
fn GetFunctionEnter3Info(&self, functionid: usize, eltinfo: usize, pframeinfo: *mut usize, pcbargumentinfo: *mut u32, pargumentinfo: *mut COR_PRF_FUNCTION_ARGUMENT_INFO) -> ::windows::core::Result<()>;
fn GetFunctionLeave3Info(&self, functionid: usize, eltinfo: usize, pframeinfo: *mut usize, pretvalrange: *mut COR_PRF_FUNCTION_ARGUMENT_RANGE) -> ::windows::core::Result<()>;
fn GetFunctionTailcall3Info(&self, functionid: usize, eltinfo: usize, pframeinfo: *mut usize) -> ::windows::core::Result<()>;
fn EnumModules(&self) -> ::windows::core::Result<ICorProfilerModuleEnum>;
fn GetRuntimeInformation(&self, pclrinstanceid: *mut u16, pruntimetype: *mut COR_PRF_RUNTIME_TYPE, pmajorversion: *mut u16, pminorversion: *mut u16, pbuildnumber: *mut u16, pqfeversion: *mut u16, cchversionstring: u32, pcchversionstring: *mut u32, szversionstring: ::windows::core::PWSTR) -> ::windows::core::Result<()>;
fn GetThreadStaticAddress2(&self, classid: usize, fieldtoken: u32, appdomainid: usize, threadid: usize, ppaddress: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn GetAppDomainsContainingModule(&self, moduleid: usize, cappdomainids: u32, pcappdomainids: *mut u32, appdomainids: *mut usize) -> ::windows::core::Result<()>;
fn GetModuleInfo2(&self, moduleid: usize, ppbaseloadaddress: *mut *mut u8, cchname: u32, pcchname: *mut u32, szname: ::windows::core::PWSTR, passemblyid: *mut usize, pdwmoduleflags: *mut u32) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ::windows::core::RuntimeName for ICorProfilerInfo3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ICorProfilerInfo3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>() -> ICorProfilerInfo3_Vtbl {
unsafe extern "system" fn EnumJITedFunctions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_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.EnumJITedFunctions() {
::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 RequestProfilerDetach<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwexpectedcompletionmilliseconds: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RequestProfilerDetach(::core::mem::transmute_copy(&dwexpectedcompletionmilliseconds)).into()
}
unsafe extern "system" fn SetFunctionIDMapper2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfunc: *mut FunctionIDMapper2, clientdata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFunctionIDMapper2(::core::mem::transmute_copy(&pfunc), ::core::mem::transmute_copy(&clientdata)).into()
}
unsafe extern "system" fn GetStringLayout2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstringlengthoffset: *mut u32, pbufferoffset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStringLayout2(::core::mem::transmute_copy(&pstringlengthoffset), ::core::mem::transmute_copy(&pbufferoffset)).into()
}
unsafe extern "system" fn SetEnterLeaveFunctionHooks3<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfuncenter3: *mut FunctionEnter3, pfuncleave3: *mut FunctionLeave3, pfunctailcall3: *mut FunctionTailcall3) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnterLeaveFunctionHooks3(::core::mem::transmute_copy(&pfuncenter3), ::core::mem::transmute_copy(&pfuncleave3), ::core::mem::transmute_copy(&pfunctailcall3)).into()
}
unsafe extern "system" fn SetEnterLeaveFunctionHooks3WithInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfuncenter3withinfo: *mut FunctionEnter3WithInfo, pfuncleave3withinfo: *mut FunctionLeave3WithInfo, pfunctailcall3withinfo: *mut FunctionTailcall3WithInfo) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnterLeaveFunctionHooks3WithInfo(::core::mem::transmute_copy(&pfuncenter3withinfo), ::core::mem::transmute_copy(&pfuncleave3withinfo), ::core::mem::transmute_copy(&pfunctailcall3withinfo)).into()
}
unsafe extern "system" fn GetFunctionEnter3Info<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, eltinfo: usize, pframeinfo: *mut usize, pcbargumentinfo: *mut u32, pargumentinfo: *mut COR_PRF_FUNCTION_ARGUMENT_INFO) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionEnter3Info(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&eltinfo), ::core::mem::transmute_copy(&pframeinfo), ::core::mem::transmute_copy(&pcbargumentinfo), ::core::mem::transmute_copy(&pargumentinfo)).into()
}
unsafe extern "system" fn GetFunctionLeave3Info<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, eltinfo: usize, pframeinfo: *mut usize, pretvalrange: *mut COR_PRF_FUNCTION_ARGUMENT_RANGE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionLeave3Info(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&eltinfo), ::core::mem::transmute_copy(&pframeinfo), ::core::mem::transmute_copy(&pretvalrange)).into()
}
unsafe extern "system" fn GetFunctionTailcall3Info<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, eltinfo: usize, pframeinfo: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionTailcall3Info(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&eltinfo), ::core::mem::transmute_copy(&pframeinfo)).into()
}
unsafe extern "system" fn EnumModules<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_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.EnumModules() {
::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 GetRuntimeInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclrinstanceid: *mut u16, pruntimetype: *mut COR_PRF_RUNTIME_TYPE, pmajorversion: *mut u16, pminorversion: *mut u16, pbuildnumber: *mut u16, pqfeversion: *mut u16, cchversionstring: u32, pcchversionstring: *mut u32, szversionstring: ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRuntimeInformation(::core::mem::transmute_copy(&pclrinstanceid), ::core::mem::transmute_copy(&pruntimetype), ::core::mem::transmute_copy(&pmajorversion), ::core::mem::transmute_copy(&pminorversion), ::core::mem::transmute_copy(&pbuildnumber), ::core::mem::transmute_copy(&pqfeversion), ::core::mem::transmute_copy(&cchversionstring), ::core::mem::transmute_copy(&pcchversionstring), ::core::mem::transmute_copy(&szversionstring)).into()
}
unsafe extern "system" fn GetThreadStaticAddress2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, classid: usize, fieldtoken: u32, appdomainid: usize, threadid: usize, ppaddress: *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.GetThreadStaticAddress2(::core::mem::transmute_copy(&classid), ::core::mem::transmute_copy(&fieldtoken), ::core::mem::transmute_copy(&appdomainid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&ppaddress)).into()
}
unsafe extern "system" fn GetAppDomainsContainingModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, cappdomainids: u32, pcappdomainids: *mut u32, appdomainids: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAppDomainsContainingModule(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&cappdomainids), ::core::mem::transmute_copy(&pcappdomainids), ::core::mem::transmute_copy(&appdomainids)).into()
}
unsafe extern "system" fn GetModuleInfo2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, ppbaseloadaddress: *mut *mut u8, cchname: u32, pcchname: *mut u32, szname: ::windows::core::PWSTR, passemblyid: *mut usize, pdwmoduleflags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleInfo2(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&ppbaseloadaddress), ::core::mem::transmute_copy(&cchname), ::core::mem::transmute_copy(&pcchname), ::core::mem::transmute_copy(&szname), ::core::mem::transmute_copy(&passemblyid), ::core::mem::transmute_copy(&pdwmoduleflags)).into()
}
Self {
base__: ICorProfilerInfo2_Vtbl::new::<Identity, Impl, OFFSET>(),
EnumJITedFunctions: EnumJITedFunctions::<Identity, Impl, OFFSET>,
RequestProfilerDetach: RequestProfilerDetach::<Identity, Impl, OFFSET>,
SetFunctionIDMapper2: SetFunctionIDMapper2::<Identity, Impl, OFFSET>,
GetStringLayout2: GetStringLayout2::<Identity, Impl, OFFSET>,
SetEnterLeaveFunctionHooks3: SetEnterLeaveFunctionHooks3::<Identity, Impl, OFFSET>,
SetEnterLeaveFunctionHooks3WithInfo: SetEnterLeaveFunctionHooks3WithInfo::<Identity, Impl, OFFSET>,
GetFunctionEnter3Info: GetFunctionEnter3Info::<Identity, Impl, OFFSET>,
GetFunctionLeave3Info: GetFunctionLeave3Info::<Identity, Impl, OFFSET>,
GetFunctionTailcall3Info: GetFunctionTailcall3Info::<Identity, Impl, OFFSET>,
EnumModules: EnumModules::<Identity, Impl, OFFSET>,
GetRuntimeInformation: GetRuntimeInformation::<Identity, Impl, OFFSET>,
GetThreadStaticAddress2: GetThreadStaticAddress2::<Identity, Impl, OFFSET>,
GetAppDomainsContainingModule: GetAppDomainsContainingModule::<Identity, Impl, OFFSET>,
GetModuleInfo2: GetModuleInfo2::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerInfo3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"Win32_System_WinRT_Metadata\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
pub trait ICorProfilerInfo4_Impl: Sized + ICorProfilerInfo3_Impl {
fn EnumThreads(&self) -> ::windows::core::Result<ICorProfilerThreadEnum>;
fn InitializeCurrentThread(&self) -> ::windows::core::Result<()>;
fn RequestReJIT(&self, cfunctions: u32, moduleids: *mut usize, methodids: *mut u32) -> ::windows::core::Result<()>;
fn RequestRevert(&self, cfunctions: u32, moduleids: *mut usize, methodids: *mut u32, status: *mut ::windows::core::HRESULT) -> ::windows::core::Result<()>;
fn GetCodeInfo3(&self, functionid: usize, rejitid: usize, ccodeinfos: u32, pccodeinfos: *mut u32, codeinfos: *mut COR_PRF_CODE_INFO) -> ::windows::core::Result<()>;
fn GetFunctionFromIP2(&self, ip: *mut u8, pfunctionid: *mut usize, prejitid: *mut usize) -> ::windows::core::Result<()>;
fn GetReJITIDs(&self, functionid: usize, crejitids: u32, pcrejitids: *mut u32, rejitids: *mut usize) -> ::windows::core::Result<()>;
fn GetILToNativeMapping2(&self, functionid: usize, rejitid: usize, cmap: u32, pcmap: *mut u32, map: *mut COR_DEBUG_IL_TO_NATIVE_MAP) -> ::windows::core::Result<()>;
fn EnumJITedFunctions2(&self) -> ::windows::core::Result<ICorProfilerFunctionEnum>;
fn GetObjectSize2(&self, objectid: usize, pcsize: *mut usize) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ::windows::core::RuntimeName for ICorProfilerInfo4 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ICorProfilerInfo4_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_Impl, const OFFSET: isize>() -> ICorProfilerInfo4_Vtbl {
unsafe extern "system" fn EnumThreads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_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.EnumThreads() {
::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 InitializeCurrentThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_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.InitializeCurrentThread().into()
}
unsafe extern "system" fn RequestReJIT<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cfunctions: u32, moduleids: *mut usize, methodids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RequestReJIT(::core::mem::transmute_copy(&cfunctions), ::core::mem::transmute_copy(&moduleids), ::core::mem::transmute_copy(&methodids)).into()
}
unsafe extern "system" fn RequestRevert<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cfunctions: u32, moduleids: *mut usize, methodids: *mut u32, status: *mut ::windows::core::HRESULT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RequestRevert(::core::mem::transmute_copy(&cfunctions), ::core::mem::transmute_copy(&moduleids), ::core::mem::transmute_copy(&methodids), ::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn GetCodeInfo3<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, rejitid: usize, ccodeinfos: u32, pccodeinfos: *mut u32, codeinfos: *mut COR_PRF_CODE_INFO) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCodeInfo3(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&rejitid), ::core::mem::transmute_copy(&ccodeinfos), ::core::mem::transmute_copy(&pccodeinfos), ::core::mem::transmute_copy(&codeinfos)).into()
}
unsafe extern "system" fn GetFunctionFromIP2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ip: *mut u8, pfunctionid: *mut usize, prejitid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionFromIP2(::core::mem::transmute_copy(&ip), ::core::mem::transmute_copy(&pfunctionid), ::core::mem::transmute_copy(&prejitid)).into()
}
unsafe extern "system" fn GetReJITIDs<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, crejitids: u32, pcrejitids: *mut u32, rejitids: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetReJITIDs(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&crejitids), ::core::mem::transmute_copy(&pcrejitids), ::core::mem::transmute_copy(&rejitids)).into()
}
unsafe extern "system" fn GetILToNativeMapping2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, rejitid: usize, cmap: u32, pcmap: *mut u32, map: *mut COR_DEBUG_IL_TO_NATIVE_MAP) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetILToNativeMapping2(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&rejitid), ::core::mem::transmute_copy(&cmap), ::core::mem::transmute_copy(&pcmap), ::core::mem::transmute_copy(&map)).into()
}
unsafe extern "system" fn EnumJITedFunctions2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_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.EnumJITedFunctions2() {
::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 GetObjectSize2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, objectid: usize, pcsize: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetObjectSize2(::core::mem::transmute_copy(&objectid), ::core::mem::transmute_copy(&pcsize)).into()
}
Self {
base__: ICorProfilerInfo3_Vtbl::new::<Identity, Impl, OFFSET>(),
EnumThreads: EnumThreads::<Identity, Impl, OFFSET>,
InitializeCurrentThread: InitializeCurrentThread::<Identity, Impl, OFFSET>,
RequestReJIT: RequestReJIT::<Identity, Impl, OFFSET>,
RequestRevert: RequestRevert::<Identity, Impl, OFFSET>,
GetCodeInfo3: GetCodeInfo3::<Identity, Impl, OFFSET>,
GetFunctionFromIP2: GetFunctionFromIP2::<Identity, Impl, OFFSET>,
GetReJITIDs: GetReJITIDs::<Identity, Impl, OFFSET>,
GetILToNativeMapping2: GetILToNativeMapping2::<Identity, Impl, OFFSET>,
EnumJITedFunctions2: EnumJITedFunctions2::<Identity, Impl, OFFSET>,
GetObjectSize2: GetObjectSize2::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerInfo4 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"Win32_System_WinRT_Metadata\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
pub trait ICorProfilerInfo5_Impl: Sized + ICorProfilerInfo4_Impl {
fn GetEventMask2(&self, pdweventslow: *mut u32, pdweventshigh: *mut u32) -> ::windows::core::Result<()>;
fn SetEventMask2(&self, dweventslow: u32, dweventshigh: u32) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ::windows::core::RuntimeName for ICorProfilerInfo5 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ICorProfilerInfo5_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo5_Impl, const OFFSET: isize>() -> ICorProfilerInfo5_Vtbl {
unsafe extern "system" fn GetEventMask2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdweventslow: *mut u32, pdweventshigh: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventMask2(::core::mem::transmute_copy(&pdweventslow), ::core::mem::transmute_copy(&pdweventshigh)).into()
}
unsafe extern "system" fn SetEventMask2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dweventslow: u32, dweventshigh: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventMask2(::core::mem::transmute_copy(&dweventslow), ::core::mem::transmute_copy(&dweventshigh)).into()
}
Self {
base__: ICorProfilerInfo4_Vtbl::new::<Identity, Impl, OFFSET>(),
GetEventMask2: GetEventMask2::<Identity, Impl, OFFSET>,
SetEventMask2: SetEventMask2::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerInfo5 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo4 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"Win32_System_WinRT_Metadata\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
pub trait ICorProfilerInfo6_Impl: Sized + ICorProfilerInfo5_Impl {
fn EnumNgenModuleMethodsInliningThisMethod(&self, inlinersmoduleid: usize, inlineemoduleid: usize, inlineemethodid: u32, incompletedata: *mut super::super::super::Foundation::BOOL, ppenum: *mut ::core::option::Option<ICorProfilerMethodEnum>) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ::windows::core::RuntimeName for ICorProfilerInfo6 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ICorProfilerInfo6_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo6_Impl, const OFFSET: isize>() -> ICorProfilerInfo6_Vtbl {
unsafe extern "system" fn EnumNgenModuleMethodsInliningThisMethod<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, inlinersmoduleid: usize, inlineemoduleid: usize, inlineemethodid: u32, incompletedata: *mut super::super::super::Foundation::BOOL, 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.EnumNgenModuleMethodsInliningThisMethod(::core::mem::transmute_copy(&inlinersmoduleid), ::core::mem::transmute_copy(&inlineemoduleid), ::core::mem::transmute_copy(&inlineemethodid), ::core::mem::transmute_copy(&incompletedata), ::core::mem::transmute_copy(&ppenum)).into()
}
Self {
base__: ICorProfilerInfo5_Vtbl::new::<Identity, Impl, OFFSET>(),
EnumNgenModuleMethodsInliningThisMethod: EnumNgenModuleMethodsInliningThisMethod::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerInfo6 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo4 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo5 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"Win32_System_WinRT_Metadata\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
pub trait ICorProfilerInfo7_Impl: Sized + ICorProfilerInfo6_Impl {
fn ApplyMetaData(&self, moduleid: usize) -> ::windows::core::Result<()>;
fn GetInMemorySymbolsLength(&self, moduleid: usize, pcountsymbolbytes: *mut u32) -> ::windows::core::Result<()>;
fn ReadInMemorySymbols(&self, moduleid: usize, symbolsreadoffset: u32, psymbolbytes: *mut u8, countsymbolbytes: u32, pcountsymbolbytesread: *mut u32) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ::windows::core::RuntimeName for ICorProfilerInfo7 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ICorProfilerInfo7_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo7_Impl, const OFFSET: isize>() -> ICorProfilerInfo7_Vtbl {
unsafe extern "system" fn ApplyMetaData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ApplyMetaData(::core::mem::transmute_copy(&moduleid)).into()
}
unsafe extern "system" fn GetInMemorySymbolsLength<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, pcountsymbolbytes: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetInMemorySymbolsLength(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&pcountsymbolbytes)).into()
}
unsafe extern "system" fn ReadInMemorySymbols<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, moduleid: usize, symbolsreadoffset: u32, psymbolbytes: *mut u8, countsymbolbytes: u32, pcountsymbolbytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadInMemorySymbols(::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&symbolsreadoffset), ::core::mem::transmute_copy(&psymbolbytes), ::core::mem::transmute_copy(&countsymbolbytes), ::core::mem::transmute_copy(&pcountsymbolbytesread)).into()
}
Self {
base__: ICorProfilerInfo6_Vtbl::new::<Identity, Impl, OFFSET>(),
ApplyMetaData: ApplyMetaData::<Identity, Impl, OFFSET>,
GetInMemorySymbolsLength: GetInMemorySymbolsLength::<Identity, Impl, OFFSET>,
ReadInMemorySymbols: ReadInMemorySymbols::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerInfo7 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo4 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo5 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo6 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"Win32_Foundation\"`, `\"Win32_System_WinRT_Metadata\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
pub trait ICorProfilerInfo8_Impl: Sized + ICorProfilerInfo7_Impl {
fn IsFunctionDynamic(&self, functionid: usize, isdynamic: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn GetFunctionFromIP3(&self, ip: *mut u8, functionid: *mut usize, prejitid: *mut usize) -> ::windows::core::Result<()>;
fn GetDynamicFunctionInfo(&self, functionid: usize, moduleid: *mut usize, ppvsig: *mut *mut u8, pbsig: *mut u32, cchname: u32, pcchname: *mut u32, wszname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ::windows::core::RuntimeName for ICorProfilerInfo8 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WinRT_Metadata"))]
impl ICorProfilerInfo8_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo8_Impl, const OFFSET: isize>() -> ICorProfilerInfo8_Vtbl {
unsafe extern "system" fn IsFunctionDynamic<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, isdynamic: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsFunctionDynamic(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&isdynamic)).into()
}
unsafe extern "system" fn GetFunctionFromIP3<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ip: *mut u8, functionid: *mut usize, prejitid: *mut usize) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionFromIP3(::core::mem::transmute_copy(&ip), ::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&prejitid)).into()
}
unsafe extern "system" fn GetDynamicFunctionInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerInfo8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionid: usize, moduleid: *mut usize, ppvsig: *mut *mut u8, pbsig: *mut u32, cchname: u32, pcchname: *mut u32, wszname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDynamicFunctionInfo(::core::mem::transmute_copy(&functionid), ::core::mem::transmute_copy(&moduleid), ::core::mem::transmute_copy(&ppvsig), ::core::mem::transmute_copy(&pbsig), ::core::mem::transmute_copy(&cchname), ::core::mem::transmute_copy(&pcchname), ::core::mem::transmute(&wszname)).into()
}
Self {
base__: ICorProfilerInfo7_Vtbl::new::<Identity, Impl, OFFSET>(),
IsFunctionDynamic: IsFunctionDynamic::<Identity, Impl, OFFSET>,
GetFunctionFromIP3: GetFunctionFromIP3::<Identity, Impl, OFFSET>,
GetDynamicFunctionInfo: GetDynamicFunctionInfo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerInfo8 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo2 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo3 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo4 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo5 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo6 as ::windows::core::ComInterface>::IID || iid == &<ICorProfilerInfo7 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"implement\"`*"]
pub trait ICorProfilerMethodEnum_Impl: Sized {
fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
fn Reset(&self) -> ::windows::core::Result<()>;
fn Clone(&self) -> ::windows::core::Result<ICorProfilerMethodEnum>;
fn GetCount(&self, pcelt: *mut u32) -> ::windows::core::Result<()>;
fn Next(&self, celt: u32, elements: *mut COR_PRF_METHOD, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for ICorProfilerMethodEnum {}
impl ICorProfilerMethodEnum_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerMethodEnum_Impl, const OFFSET: isize>() -> ICorProfilerMethodEnum_Vtbl {
unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerMethodEnum_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: ICorProfilerMethodEnum_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: ICorProfilerMethodEnum_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(),
}
}
unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerMethodEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcelt: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCount(::core::mem::transmute_copy(&pcelt)).into()
}
unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerMethodEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, elements: *mut COR_PRF_METHOD, 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(&elements), ::core::mem::transmute_copy(&pceltfetched)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
GetCount: GetCount::<Identity, Impl, OFFSET>,
Next: Next::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerMethodEnum as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"implement\"`*"]
pub trait ICorProfilerModuleEnum_Impl: Sized {
fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
fn Reset(&self) -> ::windows::core::Result<()>;
fn Clone(&self) -> ::windows::core::Result<ICorProfilerModuleEnum>;
fn GetCount(&self, pcelt: *mut u32) -> ::windows::core::Result<()>;
fn Next(&self, celt: u32, ids: *mut usize, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for ICorProfilerModuleEnum {}
impl ICorProfilerModuleEnum_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerModuleEnum_Impl, const OFFSET: isize>() -> ICorProfilerModuleEnum_Vtbl {
unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerModuleEnum_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: ICorProfilerModuleEnum_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: ICorProfilerModuleEnum_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(),
}
}
unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerModuleEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcelt: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCount(::core::mem::transmute_copy(&pcelt)).into()
}
unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerModuleEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, ids: *mut usize, 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(&ids), ::core::mem::transmute_copy(&pceltfetched)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
GetCount: GetCount::<Identity, Impl, OFFSET>,
Next: Next::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerModuleEnum as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"implement\"`*"]
pub trait ICorProfilerObjectEnum_Impl: Sized {
fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
fn Reset(&self) -> ::windows::core::Result<()>;
fn Clone(&self) -> ::windows::core::Result<ICorProfilerObjectEnum>;
fn GetCount(&self, pcelt: *mut u32) -> ::windows::core::Result<()>;
fn Next(&self, celt: u32, objects: *mut usize, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for ICorProfilerObjectEnum {}
impl ICorProfilerObjectEnum_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerObjectEnum_Impl, const OFFSET: isize>() -> ICorProfilerObjectEnum_Vtbl {
unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerObjectEnum_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: ICorProfilerObjectEnum_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: ICorProfilerObjectEnum_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(),
}
}
unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerObjectEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcelt: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCount(::core::mem::transmute_copy(&pcelt)).into()
}
unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerObjectEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, objects: *mut usize, 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(&objects), ::core::mem::transmute_copy(&pceltfetched)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
GetCount: GetCount::<Identity, Impl, OFFSET>,
Next: Next::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerObjectEnum as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"implement\"`*"]
pub trait ICorProfilerThreadEnum_Impl: Sized {
fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
fn Reset(&self) -> ::windows::core::Result<()>;
fn Clone(&self) -> ::windows::core::Result<ICorProfilerThreadEnum>;
fn GetCount(&self, pcelt: *mut u32) -> ::windows::core::Result<()>;
fn Next(&self, celt: u32, ids: *mut usize, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for ICorProfilerThreadEnum {}
impl ICorProfilerThreadEnum_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerThreadEnum_Impl, const OFFSET: isize>() -> ICorProfilerThreadEnum_Vtbl {
unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerThreadEnum_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: ICorProfilerThreadEnum_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: ICorProfilerThreadEnum_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(),
}
}
unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerThreadEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcelt: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCount(::core::mem::transmute_copy(&pcelt)).into()
}
unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICorProfilerThreadEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, ids: *mut usize, 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(&ids), ::core::mem::transmute_copy(&pceltfetched)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
GetCount: GetCount::<Identity, Impl, OFFSET>,
Next: Next::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICorProfilerThreadEnum as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_ClrProfiling\"`, `\"implement\"`*"]
pub trait IMethodMalloc_Impl: Sized {
fn Alloc(&self, cb: u32) -> *mut ::core::ffi::c_void;
}
impl ::windows::core::RuntimeName for IMethodMalloc {}
impl IMethodMalloc_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMethodMalloc_Impl, const OFFSET: isize>() -> IMethodMalloc_Vtbl {
unsafe extern "system" fn Alloc<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMethodMalloc_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cb: u32) -> *mut ::core::ffi::c_void {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Alloc(::core::mem::transmute_copy(&cb))
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Alloc: Alloc::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IMethodMalloc as ::windows::core::ComInterface>::IID
}
}